浅析INDEX函数嵌套IF函数在工程投标报价汇总中的应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅析INDEX函数嵌套IF函数在工程投标报
价汇总中的应用
数据的查找函数主要有VLOOKUP、LOOKUP、MATCH、INDEX 等几个,这几个函数可能大家日常见到得比较多,需要使用的场合也非常多,他们是非常实用的函数。

利用它们可以设置按条件查找,并返回指定的数据。

下面重点介绍INDEX函数嵌套IF函数在工程投标报价汇总的应用:
请先看以下案列:
图(一)
上图(一)中的A-C列是某工程项目投标报价汇总表,现要求指定在E2单元格中有效投标报价为“0”(注:工程项目不同,有限投标报价为“0”的公司个数也不同),一次性提取出所有有效投标报
价为“0”的公司名称并显示在F列(如下图(二)所示)。

图(二)
主要步骤:
第一步骤:选中F1单元格,在编辑栏输入公式:=INDEX(B:B,SMALL (IF(C$2:C$12=E$2,ROW($2:$12),2^20),ROW(A1)))&"";
第二步骤:按住Shift+ctrl组合键,再按回车,向下填充公式至F12
单元格(如下图(三)所示)。

图(三)
上述INDEX函数嵌套IF函数函数公式看起来又长又复杂,其实也不难,小伙伴不用担心,笔者详细解析如下:
①首先看IF函数部分:IF(C$2:C$12=E$2,ROW($2:$12),2^20)
先复习IF函数的相关知识:
IF函数用于根据指定的条件来判断其"真"(TRUE)、"假"(FALSE),根据逻辑计算的真假值,从而返回相应的内容。

可以使用函数 IF 对数值和公式进行条件检测。

【函数语法】IF(logical_test,value_if_true,value_if_false) = IF(①条件表达式,②条件为TRUE时的返回值,③条件为FALSE时的返回值)
在本案列中,IF函数要判断的条件是C$2:C$12=E$2,假如 C列的有效投标报价等于E2单元格中指定的“0”,返回2-12行对应的行号
ROW($2:$12),否则返回2^20的结果1048576(注:EXCEL2010最大行数2^20=1048576行),最终得到一个数据组的计算结果:{1048576;1048576;4; 1048576;104857;7; 1048576;1048576;104 8576;11;1048576 } 详见下图(四)
图(四)
②然后在看SMALL(IF(C$2:C$12=E$2,ROW($2:$12), 2^20),ROW(A
1)))&""
SMALL函数是返回数据组中的第K个最小值。

【函数语法】SMALL(array,k)
= SMALL(① array为找到第 k 个最小值的数组或数字型数据区域,②k 为返回的数据在数组或数据区域里的位置(从小到大)。

本例中,SMALL函数用IF函数的计算结果作为第一参数,要在这个数组中提取第n个最小值,这里的n由谁来指定呢?就是公式最后部分的ROW(A1)。

ROW函数用于返回引用的行号
【函数语法】ROW(reference)
Reference:需要得到其行号的单元格或单元格区域。

ROW(A1)的作用是返回A1单元格的行号,结果是1。

向下填充公式时,参数会依次变成ROW(A2)、ROW(A3)、……ROW(An),也就是得到从1、2……n序号。

最终的目的是给SMALL函数一个动态的参数,依次从数组中提取出第1至n个最小值。

根据上图四,SAMLL函数先提取出数据组中的第1个最小值,结果是4。

最后该轮到大BOSS→INDEX函数隆重登场了!
INDEX函数是返回表或区域中的值或值的引用。

函数INDEX有两种形式:数组形式和引用形式。

数组形式通常返回数值或数值数组;引用形式通常返回引用。

【函数语法】INDEX(①要查找的区域,②指定行,③指定列) 上述4就是位置信息,INDEX函数从B列中返回第4个单元格的内容,结果就是第一个符合条件的公司名称为“重庆市某公司”
向下填充公式到F3单元格,ROW(A1)变成了ROW(A2),返回A2的行号2,SMALL函数再从数组中提取第2个最小值,结果是 7。

INDEX 函数最终再返回B列中的第7个单元格中的公司名称为“长沙市某公司”。

最后符合条件的行号都提取完毕后,继续向下填充公式, SMALL 函数的结果是104857,最终INDEX函数返回B列第104857个单元格
中的内容。

一般情况下,一个工程投标报价汇总表没有这么多数据,也就意味着 104857是空白单元格,INDEX函数引用空白单元格时,会返回0值,在公式的最后加上一个&"",可以让0不再显示。

相关文档
最新文档