精华内容
下载资源
问答
  • excel 函数判断身份证是否正确,注意使用时身份证号只能在A列中。
  • 当单元格中输入计算公式时,可以用IFERROR做个容错的判断,例如FIND函数查找字符串,当查不到结果就会报错,此时就可以结全IFERROR函数使用。举例如下:=IFERROR(FIND("和平街道",E2),0)上述公式解析:当FIND("和平...


    当单元格中输入计算公式时,可以用IFERROR做个容错的判断,例如FIND函数查找字符串,当查不到结果就会报错,此时就可以结全IFERROR函数使用。

    举例如下:

    =IFERROR(FIND("和平街道",E2),0)

    上述公式解析:当FIND("和平街道",E2) 查找到时,返回正常结果;查找不到时,返回0(此值可以根据实际需要而指定)

    v2-aa89e537e27054e16080ec0c485d994d_b.jpg

    语法
    IFERROR(value, value_if_error)

    • value 必需。 检查是否存在错误的参数。
    • Value_if_error 必需。 公式的计算结果错误时返回的值。 计算以下错误类型:#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、 #NAME? 或 #NULL!。

    说明

    • 如果 Value 或 Value_if_error 是空单元格,则 IFERROR 将其视为空字符串值 ("")。
    • 如果 Value 是数组公式,则 IFERROR 为 value 中指定区域的每个单元格返回一个结果数组。 请参阅下面的第二个示例。

    示例

    配额销售数量
    21035
    550
    23
    公式说明结果
    =IFERROR(A2/B2,"计算中有错误")检查第一个参数中公式的错误(210 除以 35),未找到错误,返回公式结果6
    =IFERROR(A3/B3,"计算中有错误")检查第一个参数中公式的错误(55 除以 0),找到被 0 除错误,返回 value_if_error计算中有错误
    =IFERROR(A4/B4,"计算中有错误")检查第一个参数中公式的错误("" 除以 23),未找到错误,返回公式结果。0

    展开全文
  • 回调函数

    千次阅读 多人点赞 2019-09-09 17:36:28
    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定...

    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。

    其实回调就是一种利用函数指针进行函数调用的过程.

    为什么要用回调呢?比如我要写一个子模块给你用,来接收远程socket发来的命令.当我接收到命令后,需要调用你的主模块的函数, 来进行相应的处理.但是我不知道你要用哪个函数来处理这个命令,我也不知道你的主模块是什么.cpp或者.h,或者说,我根本不用关心你在主模块里怎么处理它,也不应该关心用什么函数处理它......怎么办呢?使用回调!

    —— lone wolf

    使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地址调用回调函数,这时你可以利用这个机会在回调函数中处理消息或完成一定的操作。

    —— 某专家

    回调函数,就是由你自己写的。你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函数里完成你要做的事。

    —— 绿叶

    回调函数是应用程序提供给Windows系统DLL或其它DLL调用的函数,一般用于截获消息、获取系统信息或处理异步事件。应用程序把回调函数的地址指针告诉DLL,而DLL在适当的时候会调用该函数。回调函数必须遵守事先规定好的参数格式和传递方式,否则DLL一调用它就会引起程序或系统的崩溃。通常情况下,回调函数采用标准WindowsAPI的调用方式,即__stdcall,当然,DLL编制者可以自己定义调用方式,但客户程序也必须遵守相同的规定。在__stdcall方式下,函数的参数按从右到左的顺序压入堆栈,除了明确指明是指针或引用外,参数都按值传递,函数返回之前自己负责把参数从堆栈中弹出。

    —— jufengfeng

    看了这么多的资料,我只将每位的定义总结一下就一句话:使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己写的一个函数(这个函数就是回调函数)的地址作为参数传递给那个函数。回调其实就是提供使用某模块的一种方法。回调函数就好比是一个中断处理函数。

     

    3. 回调函数的作用?应该在什么情况下使用?

    用过STL的人都知道,在STL中众多算法和程序都用到回调函数,这实现了一种策略。只要任何符合我的标准的函数和计算都可以用我这个公式。你可以实现各种各样的回调函数,只要符合我的格式就能用。就上面的程序来说,你只要函数格式符合cllback第二个参数的格式不论你给别人做饭、铺床叠被都可以正常工作。这就是回调的作用,把回调实现留给别人。这是一个用法。
    有一位朋友用分层的概念来解释了回调机制:callback函数为B层,main函数和print函数为A层,A层调用了B层的回调函数callmeback,而B层的回调函数调用了A层的实现函数print。说白了B层就是一个接口。

    有一位朋友用分层的概念来解释了回调机制:callback函数为B层,main函数和print函数为A层,A层调用了B层的回调函数callmeback,而B层的回调函数调用了A层的实现函数print。说白了B层就是一个接口。
    最后要注意的是:回调函数要么是全局函数,要么是静态函数!

    
    #include <stdio.h>
    //回调函数
    int ADD(int (*callback)(int,int), int a, int b){
    	return (*callback)(a,b);//此处回调add函数...
    }
    //普通函数
    int add(int a, int b){
    	return a + b;
    }
     
    int main(void){
    	printf("%d\n",add(1,2));
    	printf("%d\n",ADD(add,1,2));
    	return 0;
    }

     

    C回调函数

    C++回调函数扩展自C回调函数,要想理解C++回调函数,先要理解C回调函数。我们通过一个实例来讲解C回调函数的使用方法。

    //callbackTest.c
    //1.定义函数onHeight(回调函数)
    //@onHeight 函数名
    //@height   参数
    //@contex   上下文
    void onHeight(double height, void* contex)
    {
    	sprint("current height is %lf",height);
    }
    
    //2.定义onHeight函数的原型
    //@CallbackFun 指向函数的指针类型
    //@height      回调参数,当有多个参数时,可以定义一个结构体
    //@contex      回调上下文,在C中一般传入nullptr,在C++中可传入对象指针
    typedef void (*CallbackFun)(double height, void* contex);
    
    //3.定义注册回调函数
    //@registHeightCallback 注册函数名
    //@callback             回调函数原型
    //@contex               回调上下文
    void registHeightCallback(CallbackFun callback, void* contex)
    {
    	double h=100;
    	callback(h,nullptr);
    }
    
    //4.main函数
    void main()
    {
    	//注册onHeight函数,即通过registHeightCallback的参数将onHeight函数指针
    	//传入给registHeightCallback函数,在registHeightCallback函数中调用
    	//callback就相当于调用onHeight函数。
    	registHeightCallback(onHeight,nullptr);
    }

    程序的运行结果是:
    current height is 100
    很多时候,注册的时候并不调用回调函数,而是在其他函数中调用,那我们可以定义一个CallbackFun全局指针变量,在注册的时候将函数指针赋给它,在要调用的调用它。如

    //定义全局指针变量
    CallbackFun* m_pCallback;
    //定义注册回调函数
    void registHeightCallback(CallbackFun callback, void* contex)
    {
    	m_pCallback = callback;
    }
    //定义调用函数
    void printHeightFun(double height)
    {
    	m_pCallback(height,nullptr);
    }
    //main函数
    void main()
    {
    	//注册回调函数onHeight
    	registHeightCallback(onHeight,nullptr);
    	//打印height
    	double h=99;
    	printHeightFun(99);
    }

     程序的运行结果是:
    current height is 99

    C++回调函数

    C++回调函数扩展自C,与C略有不同的是,C++可以使用全局函数和静态函数作为回调函数。考虑到全局函数会破坏封装性,所以一般都用静态成员函数。故除了理解函数指针,还要理解静态成员函数,具体一点是在静态成员函数中访问非静态成员函数的方法,因为我们很可能需要获取静态成员函数中的数据。

    使用场景描述

    比如说你使用了别人提供的sdk,这个sdk可能来自供应商,也有可能来自你的同事,他就提供给你一个注册回调函接口,比如就下面这个,你可以通过回调函数获取到height(某种传感器的实时返回的数据),你要怎么做?

    C++回调函数定义

    //CallbackFun类型
    //@CallbackFun 指向函数的指针类型
    //@height      回调参数,当有多个参数时,可以定义一个结构体
    //@contex      回调上下文,在C中一般传入nullptr,在C++中可传入对象指针
    typedef void (*CallbackFun)(double height, void* contex);
    
    //注册回调函数接口
    //@registHeightCallback 注册函数名
    //@callback             回调函数原型
    //@contex               回调上下文
    void registHeightCallback(CallbackFun callback, void* contex)

    首先,你要定义一个静态成员函数并注册。

    //sensorTest.cpp
    //接收数据类class Sensor
    class Sensor{
    public:
    	Sensor(){}
    	~Sensor(){}
    	//定义回调函数onHeight
    	static void onHeight(double height, void* contex)
    	{
    		cout << "current height is  " << height << endl;
    	}
    	//定义注册回调函数
    	void registCallback()
    	{
    		registHeightCallback(onHeight, this);
    	}
    }
    
    //main 函数
    void main()
    {
    	Sensor sens;
    	sens.registCallback();
    }

    运行程序,我们发现控制台一直在打印
    current height is **
    说明我们的回调函数正确实现了。到这一步不难,只要掌握基本的回调函数概念都能实现。
    现在我们有这样一种情况,我们有另外一个类,要在这个类里面实时打印获取的数据,要怎么做呢?

    静态成员函数访问非静态成员函数的方法

    我们知道静态成员函数中是只能出现静态变量和静态函数的,但是有些时候真的需要访问非静态成员函数或变量,比如我上面说的那种情况。让我们先来实现对同一个类中的非静态成员函数的访问。
    修改class Sensor如下

    //接收数据类class Sensor
    class Sensor{
    public:
    	Sensor(){}
    	~Sensor(){}
    	//定义回调函数onHeight
    	static void onHeight(double height, void* contex)
    	{
    		//cout << "current height is  " << height << endl;
    		Sensor* sen = (Sensor*)contex;
    		if(sen)  //注意判断sen是否有效
    			sen->getHeight(height);
    	}
    	//定义注册回调函数
    	void registCallback()
    	{
    		registHeightCallback(onHeight, this);
    	}
    	//新增的成员函数
    	void getHeight(double height)
    	{
    		cout << "current height is  " << height << endl;
    	}
    }

    如此修改之后,得到与修改前一样的效果(实时打印height),关键点在于注册回调函数的时候将Sensor对象的指针传给了contex,在回调函数中又将contex转换为Sensor对象指针,所以能调用普通函数。
    同理,如果注册时传入某一个对象的指针,就可以在回调函数中对该对象进行操作,这就是我们可以在一个对象中回调另一个对象的思想。

    回调对象

    现在开始解决之前提出的问题,本质是不变的,回调是指针传递,可以是函数指针,也可以是对象指针。

    //先定义一个类class DataPrint
    //打印数据类class DataPrint
    class DataPrint{
    public:
    	DataPrint(){}
    	~DataPrint(){}
    	void printHeight(double height)
    	{
    		cout << "print height is " << height << endl;
    	}
    }
    
    //要在类Sensor中增加DataPrint的指针和一个DataPrint指针赋值函数,class Sensor修改为
    //接收数据类class Sensor
    class Sensor{
    public:
    	Sensor(){}
    	~Sensor(){}
    	//定义回调函数onHeight
    	static void onHeight(double height, void* contex)
    	{
    		DataPrint* dp = (DataPrint*)contex;
    		if(dp)  //注意判断dp是否有效
    			dp->printHeight(height);
    	}
    	//定义注册回调函数
    	void registCallback()
    	{
    		registHeightCallback(onHeight, m_pDataPrint );
    	}
    	//新增的成员函数
    	void getHeight(double height)
    	{
    		//cout << "current height is  " << height << endl;
    	}
    	void setDataPrint(DataPrint* dp)
    	{
    		m_pDataPrint = dp;
    	}
    private:
    	DataPrint* m_pDataPrint;
    }
    
    //main主函数
    void main()
    {
    	DataPrint* dp=new DataPrint();
    	Sensor* sens=new Sensor();
    	//注意这两句的顺序不能颠倒
    	sens->setDataPrint(dp);
    	sens->registCallback();
    }

     这样就能实现在另一个类中取得回调函数的数据,如果无法保证DataPrint的实例化一定在Sensor之前,我们可以这样做

    //先定义一个类class DataPrint
    //打印数据类class DataPrint
    class DataPrint{
    public:
    	DataPrint(){}
    	~DataPrint(){}
    	void printHeight(double height)
    	{
    		cout << "print height is " << height << endl;
    	}
    }
    
    //要在类Sensor中增加DataPrint的指针和一个DataPrint指针赋值函数,class Sensor修改为
    //接收数据类class Sensor
    class Sensor{
    public:
    	Sensor(){}
    	~Sensor(){}
    	//定义回调函数onHeight
    	static void onHeight(double height, void* contex)
    	{
    		Sensor* sen= (Sensor*)contex;
    		if(sen)  //注意判断sen是否有效
    			sen->getHeight(height);
    	}
    	//定义注册回调函数
    	void registCallback()
    	{
    		registHeightCallback(onHeight, m_pDataPrint );
    	}
    	//新增的成员函数
    	void getHeight(double height)
    	{
    		if(m_pDataPrint )
    			m_pDataPrint ->printHeight(height);
    	}
    	void setDataPrint(DataPrint* dp)
    	{
    		m_pDataPrint = dp;
    	}
    private:
    	DataPrint* m_pDataPrint;
    }
    
    //main主函数
    void main()
    {
    	DataPrint* dp=new DataPrint();
    	Sensor* sens=new Sensor();
    	//注意这两句的顺序可以颠倒
    	sens->setDataPrint(dp);
    	sens->registCallback();
    }

    两个的区别是一个直接注册指定类的对象指针,另一个注册当前类的对象指针,间接调用另一个类的对象指针。

    更复杂的讨论

    刚才讨论的问题稍微复杂一点了,不过应该也容易理解,但是我们在实际项目中遇到的情况可能比这个复杂。比如在有层次的软件工程中,回调函数在底层,显示数据的类在上层,我们要如何把底层的数据显示到上层去?容易想到的是上层调用底层,如开个timer刷新,但这是不对的,你无法做到实时调用,你需要的是一个异步的机制,即底层一发生上层就能接收到。
    怎么做呢?还是一样的道理,把上层的类的对象指针传给底层,这时底层需要包含上层的头文件,但这是不对的,上层已经包含了底层的头文件,它们不能互相包含,如何解决这个问题?那就要用到C++继承的特性,首先在底层定义一个基类,然后在上层继承它,在上层实例化这个继承类后,将其指针设置给底层,底层对该指针的操作就是对继承类对象的操作,以此实现数据的传递。

    参考:

    [1] https://www.jianshu.com/p/26784d962f58

    [2] https://blog.csdn.net/weixin_40237626/article/details/82801409

    [3] https://blog.csdn.net/sinat_38183777/article/details/83958887

    [4] https://blog.csdn.net/yidu_fanchen/article/details/80513359

    展开全文
  • 主要为大家分享了两段php验证身份证号码是否正确函数,感兴趣的小伙伴们可以参考一下
  • Excel函数公式大全以及用法

    万次阅读 多人点赞 2018-09-07 10:25:23
    首先得说明下excel如何输入函数公式的方法方法是:单击a4单元格(a4单元格的位置是第A列,第4行交叉的那个单元格,也即是我们彩色实例的那个位置),在键盘上输入 =a1+a2+a3 ,然后按键盘的enter键(回车键)即可...
    1. 首先得说明下excel如何输入函数公式的方法方法是:单击a4单元格(a4单元格的位置是第A列,第4行交叉的那个单元格,也即是我们彩色实例的那个位置),在键盘上输入 =a1+a2+a3 ,然后按键盘的enter键(回车键)即可完成使用公式计算(结果3485.96)

    2. 要想正确输入excel公式,必须要谨记以下要点:1、公式必须以 = 开始。不管是单纯的公式还是更高级的函数使用,都需要以 = 为开始标记,否则,所有的公式只是字符,而不能完成计算功能;2、准确使用单元格。公式中用到的数据单元格名称要看清楚,A、B、C、D是列号,1、2、3、4、5、6是行号;3、正确使用函数。所有公式中的函数都是以英文小括号 ( ) 成对出现,不能少了左边或者右边,使用函数时可以自己输入也可使用插入函数的方法,但不可拼写错误;4、公式以键盘 enter 键的输入结束。以=开始,以enter键输入结束是公式最基本的要求,千万不能在公式输入完毕后没有按enter键的情况下点击鼠标,公式将会遭到破坏。

    3. Excel表格中输入公式后,修改公式的方法如下:法1、找到需要修改公式的单元格双击即可进入编辑状态(修改状态),直接修改公式即可,需要注意的是,修改完毕后,一定要按回车键才能成功;法2、单击需要修改公式的单元格,按键盘F2键,可以快捷的修改excel公式,这是对快速修改excel的另一种方法,同样,你也要按回车键;法3、单击选中需要修改公式的单元格,在excel表格数据区域上方的公式编辑栏修改,结束按回车键;

    4. Excel函数公式大全1、ABS Excel函数   函数名称:ABS   主要功能:求出相应数字的绝对值。   使用格式:ABS(number)   参数说明:number代表需要求绝对值的数值或引用的单元格。   应用举例:如果在B2单元格中输入公式:=ABS(A2),则在A2单元格中无论输入正数(如100)还是负数(如-100),B2中均显示出正数(如100)。   特别提醒:如果number参数不是数值,而是一些字符(如A等),则B2中返回错误值“#VALUE!”。  2、AND Excel函数   函数名称:AND   主要功能:返回逻辑值:如果所有参数值均为逻辑“真(TRUE)”,则返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。   使用格式:AND(logical1,logical2, ...)   参数说明:Logical1,Logical2,Logical3……:表示待测试的条件值或表达式,最多这30个。   应用举例:在C5单元格输入公式:=AND(A5>=60,B5>=60),确认。如果C5中返回TRUE,说明A5和B5中的数值均大于等于60,如果返回FALSE,说明A5和B5中的数值至少有一个小于60。   特别提醒:如果指定的逻辑条件参数中包含非逻辑值时,则函数返回错误值“#VALUE!”或“#NAME”。  

    5. 3、AVERAGE Excel函数   函数名称:AVERAGE   主要功能:求出所有参数的算术平均值。   使用格式:AVERAGE(number1,number2,……)   参数说明:number1,number2,……:需要求平均值的数值或引用单元格(区域),参数不超过30个。   应用举例:在B8单元格中输入公式:=AVERAGE(B7:D7,F7:H7,7,8),确认后,即可求出B7至D7区域、F7至H7区域中的数值和7、8的平均值。   特别提醒:如果引用区域中包含“0”值单元格,则计算在内;如果引用区域中包含空白或字符单元格,则不计算在内。    4、COLUMN Excel函数   函数名称:COLUMN   主要功能:显示所引用单元格的列标号值。   使用格式:COLUMN(reference)   参数说明:reference为引用的单元格。   应用举例:在C11单元格中输入公式:=COLUMN(B11),确认后显示为2(即B列)。   特别提醒:如果在B11单元格中输入公式:=COLUMN(),也显示出2;与之相对应的还有一个返回行标号值的函数——ROW(reference)。    5、CONCATENATE函数   函数名称:CONCATENATE   主要功能:将多个字符文本或单元格中的数据连接在一起,显示在一个单元格中。   使用格式:CONCATENATE(Text1,Text……)   参数说明:Text1、Text2……为需要连接的字符文本或引用的单元格。   应用举例:在C14单元格中输入公式:=CONCATENATE(A14,"@",B14,".com"),确认后,即可将A14单元格中字符、@、B14单元格中的字符和.com连接成一个整体,显示在C14单元格中。   特别提醒:如果参数不是引用的单元格,且为文本格式的,请给参数加上英文状态下的双引号,如果将上述公式改为:=A14&"@"&B14&".com",也能达到相同的目的。    6、COUNTIF函数   函数名称:COUNTIF   主要功能:统计某个单元格区域中符合指定条件的单元格数目。   使用格式:COUNTIF(Range,Criteria)   参数说明:Range代表要统计的单元格区域;Criteria表示指定的条件表达式。     应用举例:在C17单元格中输入公式:=COUNTIF(B1:B13,">=80"),确认后,即可统计出B1至B13单元格区域中,数值大于等于80的单元格数目。   特别提醒:允许引用的单元格区域中有空白单元格出现。  

    6. 7、DATE函数   函数名称:DATE   主要功能:给出指定数值的日期。   使用格式:DATE(year,month,day)   参数说明:year为指定的年份数值(小于9999);month为指定的月份数值(可以大于12);day为指定的天数。   应用举例:在C20单元格中输入公式:=DATE(2003,13,35),确认后,显示出2004-2-4。   特别提醒:由于上述公式中,月份为13,多了一个月,顺延至2004年1月;天数为35,比2004年1月的实际天数又多了4天,故又顺延至2004年2月4日。    8、函数名称:DATEDIF  主要功能:计算返回两个日期参数的差值。  使用格式:=DATEDIF(date1,date2,"y")、=DATEDIF(date1,date2,"m")、=DATEDIF(date1,date2,"d")  参数说明:date1代表前面一个日期,date2代表后面一个日期;y(m、d)要求返回两个日期相差的年(月、天)数。  应用举例:在C23单元格中输入公式:=DATEDIF(A23,TODAY(),"y"),确认后返回系统当前日期[用TODAY()表示)与A23单元格中日期的差值,并返回相差的年数。  特别提醒:这是Excel中的一个隐藏函数,在函数向导中是找不到的,可以直接输入使用,对于计算年龄、工龄等非常有效。  9、DAY Excel函数  函数名称:DAY  主要功能:求出指定日期或引用单元格中的日期的天数。  使用格式:DAY(serial_number)  参数说明:serial_number代表指定的日期或引用的单元格。  应用举例:输入公式:=DAY("2003-12-18"),确认后,显示出18。  特别提醒:如果是给定的日期,请包含在英文双引号中。    10、DCOUNT Excel函数  函数名称:DCOUNT  主要功能:返回数据库或列表的列中满足指定条件并且包含数字的单元格数目。  使用格式:DCOUNT(database,field,criteria)  参数说明:Database表示需要统计的单元格区域;Field表示函数所使用的数据列(在第一行必须要有标志项);Criteria包含条件的单元格区域。  应用举例:如图1所示,在F4单元格中输入公式:=DCOUNT(A1:D11,"语文",F1:G2),确认后即可求出“语文”列中,成绩大于等于70,而小于80的数值单元格数目(相当于分数段人数)。

      特别提醒:如果将上述公式修改为:=DCOUNT(A1:D11,,F1:G2),也可以达到相同目的。

      Excel函数公式大全

    7. 11、FREQUENCY函数  函数名称:FREQUENCY  主要功能:以一列垂直数组返回某个区域中数据的频率分布。  使用格式:FREQUENCY(data_array,bins_array)  参数说明:Data_array表示用来计算频率的一组数据或单元格区域;Bins_array表示为前面数组进行分隔一列数值。  应用举例:如图2所示,同时选中B32至B36单元格区域,输入公式:=FREQUENCY(B2:B31,D2:D36),输入完成后按下“Ctrl+Shift+Enter”组合键进行确认,即可求出B2至B31区域中,按D2至D36区域进行分隔的各段数值的出现频率数目(相当于统计各分数段人数)。

      特别提醒:上述输入的是一个数组公式,输入完成后,需要通过按“Ctrl+Shift+Enter”组合键进行确认,确认后公式两端出现一对大括号({}),此大括号不能直接输入。

      Excel函数公式大全

    8. 12、IF函数  函数名称:IF主要功能:根据对指定条件的逻辑判断的真假结果,返回相对应的内容。  使用格式:=IF(Logical,Value_if_true,Value_if_false)  参数说明:Logical代表逻辑判断表达式;Value_if_true表示当判断条件为逻辑“真(TRUE)”时的显示内容,如果忽略返回“TRUE”;Value_if_false表示当判断条件为逻辑“假(FALSE)”时的显示内容,如果忽略返回“FALSE”。  应用举例:在C29单元格中输入公式:=IF(C26>=18,"符合要求","不符合要求"),确信以后,如果C26单元格中的数值大于或等于18,则C29单元格显示“符合要求”字样,反之显示“不符合要求”字样。  特别提醒:本文中类似“在C29单元格中输入公式”中指定的单元格,读者在使用时,并不需要受其约束,此处只是配合本文所附的实例需要而给出的相应单元格,具体请大家参考所附的实例文件。    13、INDEX Excel函数  函数名称:INDEX  主要功能:返回列表或数组中的元素值,此元素由行序号和列序号的索引值进行确定。  使用格式:INDEX(array,row_num,column_num)  参数说明:Array代表单元格区域或数组常量;Row_num表示指定的行序号(如果省略row_num,则必须有 column_num);Column_num表示指定的列序号(如果省略column_num,则必须有 row_num)。  应用举例:如图3所示,在F8单元格中输入公式:=INDEX(A1:D11,4,3),确认后则显示出A1至D11单元格区域中,第4行和第3列交叉处的单元格(即C4)中的内容。

      Excel函数公式大全

    9. 特别提醒:此处的行序号参数(row_num)和列序号参数(column_num)是相对于所引用的单元格区域而言的,不是Excel工作表中的行或列序号。    14、INT Excel函数  函数名称:INT  主要功能:将数值向下取整为最接近的整数。  使用格式:INT(number)  参数说明:number表示需要取整的数值或包含数值的引用单元格。  应用举例:输入公式:=INT(18.89),确认后显示出18。  特别提醒:在取整时,不进行四舍五入;如果输入的公式为=INT(-18.89),则返回结果为-19。    15、ISERROR Excel函数  函数名称:ISERROR  主要功能:用于测试函数式返回的数值是否有错。如果有错,该函数返回TRUE,反之返回FALSE。  使用格式:ISERROR(value)  参数说明:Value表示需要测试的值或表达式。  应用举例:输入公式:=ISERROR(A35/B35),确认以后,如果B35单元格为空或“0”,则A35/B35出现错误,此时前述函数返回TRUE结果,反之返回FALSE。  特别提醒:此函数通常与IF函数配套使用,如果将上述公式修改为:=IF(ISERROR(A35/B35),"",A35/B35),如果B35为空或“0”,则相应的单元格显示为空,反之显示A35/B35的结果。    16、LEFT Excel函数  函数名称:LEFT  主要功能:从一个文本字符串的第一个字符开始,截取指定数目的字符。  使用格式:LEFT(text,num_chars)  参数说明:text代表要截字符的字符串;num_chars代表给定的截取数目。  应用举例:假定A38单元格中保存了“我喜欢天极网”的字符串,我们在C38单元格中输入公式:=LEFT(A38,3),确认后即显示出“我喜欢”的字符。  特别提醒:此函数名的英文意思为“左”,即从左边截取,Excel很多函数都取其英文的意思。    17、LEN Excel函数 函数名称:LEN  主要功能:统计文本字符串中字符数目。  使用格式:LEN(text)  参数说明:text表示要统计的文本字符串。  应用举例:假定A41单元格中保存了“我今年28岁”的字符串,我们在C40单元格中输入公式:=LEN(A40),确认后即显示出统计结果“6”。  特别提醒:LEN要统计时,无论中全角字符,还是半角字符,每个字符均计为“1”;与之相对应的一个函数——LENB,在统计时半角字符计为“1”,全角字符计为“2”。    18、MATCH Excel函数  函数名称:MATCH  主要功能:返回在指定方式下与指定数值匹配的数组中元素的相应位置。  使用格式:MATCH(lookup_value,lookup_array,match_type)  参数说明:Lookup_value代表需要在数据表中查找的数值;  Lookup_array表示可能包含所要查找的数值的连续单元格区域;  Match_type表示查找方式的值(-1、0或1)。  如果match_type为-1,查找大于或等于 lookup_value的最小数值,Lookup_array 必须按降序排列;  如果match_type为1,查找小于或等于 lookup_value 的最大数值,Lookup_array 必须按升序排列;  如果match_type为0,查找等于lookup_value 的第一个数值,Lookup_array 可以按任何顺序排列;如果省略match_type,则默认为1。  应用举例:如图4所示,在F2单元格中输入公式:=MATCH(E2,B1:B11,0),确认后则返回查找的结果“9”。特别提醒:Lookup_array只能为一列或一行。   

    展开全文
  • 函数通常结合 VLOOKUP函数使用,判断是否查找到结果,如果没有找到,IFNA可以捕获错误值 #N/A,根据实际需要,转为指定的值。例如下述应用:公式说明结果=IFNA(VLOOKUP("西安",$A$5:$B$10,0),"待查")IFNA 检验 ...

    此函数通常结合 VLOOKUP函数使用,判断是否查找到结果,如果没有找到,IFNA可以捕获错误值 #N/A,根据实际需要,转为指定的值。

    例如下述应用:

    公式说明结果
    =IFNA(VLOOKUP("西安",$A$5:$B$10,0),"待查")IFNA 检验 VLOOKUP 函数的结果。 因为在查找区域中找不到“西安”,VLOOKUP 将返回错误值 #N/A。 IFNA
    在单元格中返回字符串“待查”,而不是标准 #N/A 错误值。
    待查
    区域 ID编号
    北京105
    上海142
    广州175
    深圳251
    成都266

    语法

    IFNA(value, value_if_na)

    • Value 必需。 用于检查错误值 #N/A 的参数。
    • Value_if_na 必需。 公式计算结果为错误值 #N/A 时要返回的值。

    说明

    • 如果 Value 或 Value_if_na 是空单元格,则 IFNA 将其视为空字符串值 ("")。
    • 如果 Value 是数组公式,则 IFNA 为 Value 中指定区域的每个单元格以数组形式返回结果。








    展开全文
  • 一、 判断谓词逻辑公式真假 ( 语义 ) 、 二、 谓词逻辑 "解释" 、 三、 谓词逻辑 "解释" 示例 、 四、 谓词逻辑公式类型 、
  • 全面理解似然函数与贝叶斯公式

    万次阅读 多人点赞 2018-07-30 20:11:42
    &nbsp;&nbsp;&nbsp;&nbsp;...学了这么多年贝叶斯公式,不是很了解贝叶斯公式,但是今天师兄去聊似然函数的时候,聊到了贝叶斯公式,感觉可以去解释人生当中做的一些判断。下面...
  • 测验1:Python基本语法元素 知识点概要: 普遍认为Python语言诞生于1991年 ...字符串的正向递增反向递减序号体系:正向是从左到右,0到n-1,反向是从右到左,-1到-n,举例str = "csdn" # str[0]就表示字符串c...
  • 填空题:1、2 例题及上机实践:2~5 案例研究:21点扑克牌游戏 第七章 错误和异常处理 几个例题 案例研究:使用调试器调试Python程序 第八章 函数和函数式编程 一些知识点总结几个例题 选择题:1~5 思考题:4~11 ...
  • 排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码一位数字校验码。 2、地址码(前六位数) 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 3...
  • 网上看到一篇很实用的帖子关于常见损失函数和评价指标,收藏下来 本文转载于https://zhuanlan.zhihu.com/p/91511706 -----------------------------------------------------------------------------------------...
  • 理解傅里叶变换算法

    千次阅读 2018-12-31 18:36:54
    理解傅里叶变换算法 傅里叶变换(Fourier transform)是一种线性积分变换,因其基本思想首先由法国学者傅里叶系统地...连续傅里叶变换将平方可积的函数f(t)表示成复指数函数的积分或级数形式。 这是将频率域...
  • 似然函数与贝叶斯公式

    千次阅读 2018-01-08 15:08:57
    学了这么多年贝叶斯公式,不是很了解贝叶斯公式,但是今天师兄去聊似然函数的时候,聊到了贝叶斯公式,感觉可以去解释人生当中做的一些判断。下面是这篇博客的要讲的三个问题  1.频率学派贝叶斯学派的区别? ...
  • 作者:董文辉本文长度为4500字,建议阅读10+分钟本文为你总结常见损失函数和评价指标。目录一、损失函数1.1 回归问题1.2 分类问题二、评价指标2.1 回归问题2.2 分类问题参考资...
  • 可查询各大银行的卡号验证是否有较,还可以查询该银行卡号的开户行,方便大家快速用表格识别银行的有效性开户行,各大银行都可查询到!!
  • 我是看到了大佬的博客还能这样解析,我们来解析一下思路并扩展一下,传送门:java实现公式解析 1. Stack的介绍 栈(stack)在计算机科学中是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照...
  • 前端面试题

    万次阅读 多人点赞 2019-08-08 11:49:01
    前端面试题汇总 一、HTMLCSS 21 你做的页面在哪些流览器测试过?...它Standards模式有什么区别 21 div+css的布局较table布局有什么优点? 22 img的alt与title有何异同? strong与em的异同? 22 你能...
  • 测试开发笔记

    万次阅读 多人点赞 2019-11-14 17:11:58
    界面检查法 1明确被修改的功能 简单 2修改功能的上下游功能 3调用修改功能的功能 修改功能调用了的功能 4修改功能游相同输入输出的功能 5在测试中执行上诉关联的用例 代码检查法 1明确被修改的函数和代码 准确,...
  • 匹配结果不正确主要是以下2个方面入手: ...[官方帮助文档]Microsoft Excel 中 VLOOKUP 函数的语法用法 语法 VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]) ...
  • excel处理数据正确为1,错误为0

    千次阅读 2018-11-13 11:56:10
    excel处理数据正确为1,错误为0 1.需要cmd下载 pip install numpy 的模板 2.注意文件的路径问题不要出错 3.还有文件的编码格式 ------encoding = 'gbk' import pandas as pd import numpy as np #读取excel...
  • Java判断身份证号码是否正确

    万次阅读 2018-08-07 18:04:30
    * 判断身份证号码是否正确。 * * @param code * 身份证号码。 * @return 如果身份证号码正确,则返回true,否则返回false。 */ public static boolean isIdentityCode(String code) { ...
  • 原子是合式公式; 若A是合式公式,则( )也是合式公式; 若A,B是合式公式,则 也是合式公式; 若A是合式公式, 是A中的变量符号,则 也是合式公式; 只有限次地使用1~4所生成的符号串才是合式公式。 ...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
    本章介绍C#语言的基础知识,希望具有C语言的读者能够基本掌握C#语言,并以此为基础,能够进一步学习用C#语言编写window应用程序Web应用程序。当然仅靠一章的内容就完全掌握C#语言是不可能的,如需进一步学习C#语言...
  • Java笔试面试题整理第八波

    万次阅读 多人点赞 2016-06-14 11:07:41
    对于F,B一样的错误,虽然Object是任何类型的父类(需要跟A区别开来,A是用没用泛型的比较,这里是都用了泛型之后的比较),但是用了泛型后,父子关系要有通配符来体现。同样List也不能转化为List。 3、...
  • LDPC编译码原理

    万次阅读 多人点赞 2019-08-01 20:45:32
    当连续两次迭代翻转函数判断同一个比特位为最易出错的比特时,BF 算法会陷入死循环,大大降低了译码性能。 置信传播算法(BP) 置信传播(Belief Propagation)译码算法是消息传递(Message Passing)算法在 LDPC...
  • 使用Excel的函数批量判断身份证号码是否有效
  • 深入理解SVM

    千次阅读 多人点赞 2017-03-15 12:45:22
    SVM核心思想一最大间隔 SVM核心思想二决策公式 SVM核心思想三目标函数 SVM核心思想四优化理论 SVM核心思想五损失函数 SVM核心思想六核方法 SVM核心思想七SMO
  • PointNet学习笔记(一)—— 论文

    千次阅读 多人点赞 2018-10-10 16:40:48
    总之,具有单层的前馈网络足以表示任何函数,但是网络层可能大得不可实现,并且可能无法正确地学习泛化。在很多情况下,使用更深的模型能够减少表示期望函数所需的单元的数量,并且可以减少泛化误差。 这里文章...
  • oracle 函数 验证身份证号是否正确

    千次阅读 2013-11-08 14:27:22
    自己测试了一把,如果有纰漏之处,欢迎指正。 create or replace function f_check_id_number(p_number varchar2) return number is  type tbl_t is table of number;... my_tbl tbl_t := tbl_t(7, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,483
精华内容 21,393
关键字:

判断正确和错误的函数公式