精华内容
下载资源
问答
  • 我们都知道每个公司都自己员工档案信息数据库,如果需要查询某一个员工具体信息档案,是不是一个一个去查找呢?如果员工少,例如只有十几二十名还好,如果面对成千上万名员工,按此方法去查找,岂不浪费时间...

    我们都知道每个公司都有自己的员工档案信息数据库,如果需要查询某一个员工的具体信息档案,是不是一个一个的去查找呢?如果员工少,例如只有十几二十名还好,如果面对成千上万名员工,按此方法去查找,岂不浪费时间、人力成本?当然我们肯定有更好的办法。

    87b5fb3a43f3693ab83bc241fb15eb8a.png

    就是我们今天要讲的Excel常用函数之一 VLOOKUP函数。

    它是一个纵向查找函数,它与LOOKUP函数和HLOOKUP函数属于一类函数。(LOOKUP、HLOOKUP 在此了解一下就行)是一个按列查找函数,与之对应的则是HLOOKUP函数。

    b7458f94e2ac2e359870ad9dfc326ee8.png

    如图,我们先看一下列表,姓名栏D11输入姓名“王新芳”,我们需要查找“王新芳”的信息档案。

    我们看一下性别栏显示为“”,公式编辑栏显示为“=VLOOKUP($D$11,$D:$K,2,0)”。

    也就是说只要在D14单元格输入函数“=VLOOKUP($D$11,$D:$K,2,0)”,就能查找出“性别”是什么。

    下面我们具体来看看此函数的具体语法构成,参数意义。

    语法结构如下:

    VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

    参数意义如下表:

    e01b23fd407fe7357fb1ba45fe2ab1a0.png

    参数说明:

    Lookup_value为需要在数据表第一列中进行查找的数值。Lookup_value 可以为数值、引用或文本字符串。当vlookup函数第一参数省略查找值时,表示用0查找。

    Table_array为需要在其中查找数据的数据表。使用对区域或区域名称的引用。

    col_index_num为table_array 中查找数据的数据列序号。col_index_num 为 1 时,返回 table_array 第一列的数值,col_index_num 为 2 时,返回 table_array 第二列的数值,以此类推。如果 col_index_num 小于1,函数 VLOOKUP 返回错误值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值#REF!。

    Range_lookup为一逻辑值,指明函数 VLOOKUP 查找时是精确匹配,还是近似匹配。如果为FALSE或0,则返回精确匹配,如果找不到,则返回错误值 #N/A。如果 range_lookup 为TRUE或1,函数 VLOOKUP 将查找近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。应注意VLOOKUP函数在进行近似匹配时的查找规则是从第一个数据开始匹配,没有匹配到一样的值就继续与下一个值进行匹配,直到遇到大于查找值的值,此时返回上一个数据(近似匹配时应对查找值所在列进行升序排列)。如果range_lookup 省略,则默认为1。

    我们还是以具体函数“VLOOKUP($D$11,$D:$K,2,0)”为例,讲讲各个参数的含义。

    第一参数

    $D$11:我们需要查找的数值,在这里就是查找“王新芳”这名员工的信息档案。

    第二参数

    $D:$K:所有员工信息所对应的区域(“王新芳"的信息包含在内)。

    第三参数

    2:因为“性别”所在列位于查找的员工“姓名”所在列后面第2列。也就是返回$D:$K所在区域的第2列。

    第四参数

    0:精确匹配。

    以上,童鞋们都学会了吗?不懂的话欢迎留言来问。

    展开全文
  • C++友元函数

    2018-11-09 12:01:34
    (怎么记得好像一个东西也是这么玩,好吧,原来是静态变量和静态函数,不过不同是,静态东西,它们还是属于这个类,而且定义静态成员时候是要加作用范围),它实际上是可以理解为是插入类内部一个间谍...

    类的友元函数申明在类内部定义在外部。(怎么记得好像有一个东西也是这么玩的,好吧,原来是静态变量和静态函数,不过不同的是,静态的东西,它们还是属于这个类的,而且定义静态成员的时候是要加作用范围),它实际上是可以理解为是插入类内部的一个间谍,可以获取类内部的protected和private的信息,emmm,难怪好多人不建议用它,说是破坏了C++的封装性。

    尽管友元是在类里面申明的,但是它并不是类里面的成员

    友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类,在这种情况下,整个类及其所有成员都是友元。

    如果要声明函数为一个类的友元,需要在类定义中该函数原型前使用关键字 friend,如下所示:

    class Box
    {
       double width;
    public:
       double length;
       friend void printWidth( Box box );
       void setWidth( double wid );
    };

    声明类 ClassTwo 的所有成员函数作为类 ClassOne 的友元,需要在类 ClassOne 的定义中放置如下声明:

    friend class ClassTwo;

    这个姑且不做详细讨论,因为几乎不用,用到的最多就是友元函数:

    #include <iostream>
     
    using namespace std;
     
    class Box
    {
       double width;
    public:
       friend void printWidth( Box box );
       void setWidth( double wid );
    };
    
    // 成员函数定义
    void Box::setWidth( double wid )
    {
        width = wid;
    }
    
    // 请注意:printWidth() 不是任何类的成员函数
    void printWidth( Box box )
    {
       /* 因为 printWidth() 是 Box 的友元,它可以直接访问该类的任何成员 */
       cout << "Width of box : " << box.width <<endl;
    }
     
    // 程序的主函数
    int main( )
    {
       Box box;
     
       // 使用成员函数设置宽度
       box.setWidth(10.0);
       
       // 使用友元函数输出宽度
       printWidth( box );
     
       return 0;
    }
    

    当上面的代码被编译和执行时,它会产生下列结果:

    Width of box : 10
    

    因为友元函数没有this指针,则参数要有三种情况: 

    1.要访问非static成员时,需要对象做参数;

    2.要访问static成员或全局变量时,则不需要对象做参数;

    3.如果做参数的对象是全局对象,则不需要对象做参数.可以直接调用友元函数,不需要通过对象或指针

    不过一般非静态成员,都按照下面的套路写的:

    class INTEGER
    {
        friend void Print(const INTEGER& obj);//声明友元函数
    };
    
    void Print(const INTEGER& obj)
    {
        //函数体
    }
    
    void main()
    {
        INTEGER obj;
        Print(obj);//直接调用
    }

    以上。

    友元就这么结束了,不知道大家有没有理解,不理解的话欢迎讨论互相学习,一起进步。

    这篇文章主要参考以下链接,自己写的例子感觉没他的好,就直接用了啊。

    参考:http://www.runoob.com/cplusplus/cpp-friend-functions.html

    展开全文
  • 我们来讲函数的调用机制, 在c++中函数分为,实函数和虚函数,他们的调用机制不同。 先来看看类的编译信息, 对于一个类他的编译信息中含有 1.实函数,2.虚函数,这些静态调用是用, 由于虚函数动态调用的特征...

    函数是属于类的,不是属于对象。

    我们来讲函数的调用机制,

    在c++中函数分为,实函数和虚函数,他们的调用机制不同。

    先来看看类的编译信息,

    对于一个类他的编译信息中含有 1.实函数,2.虚函数,这些静态调用是用,

    由于虚函数有动态调用的特征,所以虚函数存在一个虚函数表里,被所有的对象共享。

    既然虚函数信息既在类信息中,也在虚函数表中,那么虚函数调用是如何区分的了?

    1.静态调用,当虚函数书静态调用是,直接用编译类的信息中的虚函数信息

    2.动态调用,当虚函数是动态调用是,需要调用虚函数表中的函数信息,这也是c++多态的基本机制。


    <2>继承体制下虚函数表

    对于虚函数表中的函数,在单继承体制中,子类的虚函数会把基类的虚函数表拷贝过来,同时子类中的虚函数会覆盖拷贝过来基类同函数签名的虚函数。

    但是并不是表示你在子对象中无法使用基类中被覆盖的函数,因为类编译信息中保存了基类函数所有信息,只要应用类编译信息,就可以调用基类中的所有函数,静态调用。
    下面我们来验证,打印虚函数表中的所有函数信息;
    如何打印虚函数表中的信息,
    在对象中,最开始的四个字节(win 32)是vfptr,指向虚函数表的指针,通过它可以访问虚函数
    B b;
    int ** vfTalbe=(int **)(&b);
    vfTable[0][0],就是第一个函数的地址,
    vfTable[0][1],就是第二个函数地址;


    代码验证如下

    #include<iostream>
    using namespace std;
    typedef void (*fun)();
    
    class Base
    {
    public :
    	virtual void ff()
    	{
    		cout<<"Base :: ff "<<endl;
    	}
    
    	virtual void gg()
    	{
    		cout<<"Base :: gg"<<endl;
    	}
    };
    
    class Drived :public Base
    {
    public :
    	virtual void gg()
    	{
    		cout<<"Drived :: gg"<<endl;
    	}
    
    	virtual void hh()
    	{
    		cout<<"drived :: hh"<<endl;
    	}
    };
    
    int main()
    {
    	int ** vfTable;
    	fun ff;
    
    	cout<<"---------Base--------"<<endl;
    	Base b;
    	vfTable=(int **)(&b);
    	ff=(fun)vfTable[0][0];
    	ff();
    	ff=(fun)vfTable[0][1];
    	ff();
    
    	cout<<"---------Drived--------"<<endl;
    	Drived d;
    	vfTable=(int **)(&d);
    	ff=(fun)vfTable[0][0];
    	ff();
    	ff=(fun)vfTable[0][1];
    	ff();
    	ff=(fun)vfTable[0][2];
    	ff();
    
    	cout<<"--------静态调用----------"<<endl;
    	cout<<"继承类对象静态调用基类中被覆盖的虚函数"<<endl;
    	d.Base::gg();
    	system("pause");
    	return 1;
    }

    运行结果



    结果解释
    继承类 Drived 
    拷贝了继承的虚函数
    Base::ff()
    Base:: gg();
    由于继承类含有同函数签名的函数 Drived:: gg();
    所有在虚函数表中,继承类的函数会覆盖掉基类的函数 Base::gg();
    所以输出 dDived;;gg,而不是Base :: gg();

    覆盖了只是在虚函数表中覆盖 ,但是不会在变量类信息中覆盖,
    所以仍然可以通过静态调用来使用函数 base::gg();
    Drived d;
    d.Base::g();


    展开全文
  • 静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员,完成对静态数据成员的封装。 1、静态成员函数属于整个类所有,没有this指针。 2、静态成员函数只能直接访问静态成员变量和静态成员函数。 3...

    在类定义中,前面有static说明的成员函数称为静态成员函数。静态成员函数使用方式和静态变量一样,同样在对象没有创建前,即可通过类名调用。静态成员函数主要是为了访问静态变量。
    静态成员函数的意义,不在于信息共享,数据沟通,而在于管理静态数据成员,完成对静态数据成员的封装。
    1、静态成员函数属于整个类所有,没有this指针。
    2、静态成员函数只能直接访问静态成员变量和静态成员函数。
    3、可以通过类名直接访问的公有静态成员函数。
    4、可以通过对象名访问类的公有静态成员函数。
    5、定义静态成员函数,直接使用static关键字修饰即可。

    展开全文
  • 两个均质圆盘A和B,密度分别为A:JA<JBB:JA=JBC:JA>JBD:无法确定触变型流体随着切应力的增加,凝胶结构的分子间价键破裂,粘度增加A:错B:对下列属于利润表提供的信息的有()。A:实现的营业收入B:企业的利润或亏损...
  • 本文主要介绍CTR场景中的对数损失函数和交叉熵损失函数,以及对数损失函数的取值范围,如果觉得对你帮助,文末「分享」「点赞」「在看」来一波,点击「阅读原文」获取精彩比例PDF下载链接。 极大似然估计 在...
  • 由于为优化算法提供的信息很少,因此很难找到函数的全局最小值。 根据Rosenbrock函数的特点,专门提出了一种改进的差分进化算法,该算法采用自适应缩放因子F和交叉速率CR并带消除机制,可以有效避免算法的过早...
  • 父类里声明的属性,会生成默认生成一个私有的成员变量.即不能被子类访问,那么子类通过继承得到了父类的属性,只能通过setter 和 getter 方法区访问...什么叫做oc之中没有绝对的私有函数的? 函数和方法到底是怎么调用的?
  • 银行客户经理手上会许多办理了不同业务客户,假设业务A,业务B,业务C,业务D等等,行长查看该客户经理绩效时,想查看在该银行客户经理手上除了业务A其他客户信息时,叫该客户经理调出其他客户...
  • 大家好,我们平时在使用Javascript时候,经常会需要给用户提供一些反馈信息,完成这个功能很多种方法。...单,而且不可控制,再有它属于浏览器级别的函数,是由各个浏览器自己实现,所以在不同浏览器...
  • 其中个变量data指向一个类OMXMasterCoreGlobalData,此类包含了所有组件的信息,如 组件名 ,支持格式,属于哪个core,已实例化个数,接口指针等。 函数流程:   2 函数_Try_OMX_MasterInit 参数int...
  • 【Oracle】Over函数的用法

    千次阅读 2019-02-25 17:34:52
    一、问题,如果一张表中n个数据,分别属于a个小组,现在我们要求每个组里某个【字段】最大值,最小值,和,差等,该怎么操作? 举个具体点例子,一个表名为demooracle数据库表,字段如ID【id】,名字...
  • 大家好,我们平时在使用Javascript时候,经常会需要给用户提供一些反馈信息,完成这个功能很多种方法。但在平时开发中我们用...单,而且不可控制,再有它属于浏览器级别的函数,是由各个浏览器自己实现,所以...
  • 输入输出函数

    2012-08-12 17:23:34
    像我们开始学习时候就printf()函数等等,这些打印输入函数属于IO函数库。下面是我学习时认为重要做个笔记: 1.错误报告: perror(); 定义于stdlib头文件,用于在程序中出现错误时把错误信息传递给用户...
  • Hive - 内建函数

    2018-06-15 22:05:55
      Hive中带一些函数,方便Hive SQL做出一些聚合、转换、分割...查看一个函数的信息,比如查看SUM函数的信息,在Hive CLI中“desc function sum;”,如果说要详细信息:“show function extended sum;”。 一、...
  • DLL函数查看器3.7

    2017-05-24 10:45:36
    函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL 是一个包含可由多个...
  • 可见,重载和虚函数的重写,并在调用时用父类装箱子类对象,是实现多态的一种重要的编程方式。 接口: 接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。 接口可由方法、属性、事件和索引...
  • 函数对象与lambda表达式类似之处,lambda表达式实质上属于一种特殊的函数对象。具体特殊在哪里,后文会谈到,可以先知晓这点。接下来先分别了解下函数表达式与lambda表达式吧。 一、函数对象  从实现上来说,...
  • 在Linux内核,用一个inode节点对象描述一个要操作文件/设备文件,包括权限 ,设备号等信息,就是描述一个要操作文凭属性,一个文件可以打开很多次, 但都是共用一个inode对象来描述属性,文件描述符属于一个...
  • 中断函数中不能使用printf原因

    千次阅读 2018-08-16 11:06:00
    本质在于printf是将信息输出到标准输出设备(STDOUT)中, 整个标准输出设备是一个全局变量,由于semTake操作,那么就会发生阻塞,vxworks属于硬实时操作系统,不能在规定时间内完成操作即会死机或复位。...
  • C++友元函数与友元类

    2021-02-14 22:40:48
    友元函数时砸类声明中关键字friend修饰声明非成员函数(其不属于类),在它的函数体中能够通过对象访问private和protected成员。 .作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。 .访问对象中...
  • 大家都一个疑问,我知道这个 BAPI 函数究竟属于哪个业务对象呢?今天我们就来揭密。 BAPI 函数跟业务对象关系存储在表 SWOTLV 中,对于一个业务对象,除了函数外,还存储了一些其它信息,我们...
  • 一、线程3种模型,分别是N:1用户线程模型,1:1核心线程模型和N:M混合线程模型,posix thread属于1:1模型。(一)、N:1用户线程模型“线程实现”建立在“进程控制”机制之上,由用户空间程序库来管理。OS内核完全...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 493
精华内容 197
关键字:

属于信息函数的有