本类文章的标签为 ‘数组公式’


Excel中区分大小写的查找

1 颗星2 颗星3 颗星4 颗星5 颗星 (2 人投票, 平均: 5.00 out of 5)
Loading ... Loading ...

在Excel中,需要查找表中的数值时,通常使用Lookup系列的查找函数,但是这些函数不区分大小写。例如下图所示的查找问题,我们需要得到的结果是6,但是VLOOKUP函数给我的结果却是5。
findcasevalue0
Microsoft Excel MVP Peo Sjoblom给出了一个解决方法,使用了数组公式:

{=INDEX(B1:B6,MATCH(1,–EXACT(A1:A6,D1),0))}

结果如下图所示。
findcasevalue1
注解:

  • INDEX函数返回表或区域中值或值的引用。
  • MATCH函数返回在指定方式下与指定数值匹配的数组中元素的位置。
  • EXACT函数测试两个字符串是否完全相同,如果完全相同则返回TRUE,否则返回FALSE。能够区分大小写。

补充:
还可以使用下面的公式:

=LOOKUP(1,1/EXACT(A1:A6,D1),B1:B6)

相关文章

使用IF函数和SUM函数组成的数组公式进行条件统计

1 颗星2 颗星3 颗星4 颗星5 颗星 (目前还没有人投票)
Loading ... Loading ...

统计某值在单元格区域中出现的次数
例如下图所示,统计指定区域中“迟到”的次数:
arrayformulasample1
使用了数组公式:

{=SUM(IF(B1=B5:B29,1,0))}

其中,单元格B1中是要统计的值,单元格区域B5:B29是统计区域,将要统计的值与统计区域中的单元格逐一比较,相同为1,否则为0,最后相加得到统计结果。
当然,也可以使用COUNTIF函数:

=COUNTIF(B5:B29,B1)

将上例再进一步扩展,如果迟到一次扣10分,那么在这段时间里累计扣分为多少呢?同样使用IF函数和SUM函数组成的数组公式得到结果:

{=SUM(IF(B1=B5:B29,C5:C29,0))}

如下图所示:
arrayformulasample2
统计两个区域中不相同的单元格数
如下图所示,要求统计单元格区域A4:B8和单元格区域D4:E8中不相同的单元格数。
arrayformulasample3
公式如下:

{=SUM(IF(A4:B8<>D4:E8,1,0))}

应用时,两个单元格区域的大小必须相同。在公式中,将两个区域对应的单元格相互比较,如果不相同为1,相同则为0,最后相加得到结果。
小结
从上面的例子可以看出,对于这类要求,可以使用通用的数组公式:

{=SUM(IF(条件,1,0))}

该公式,用于计算条件为True时的次数,其中条件通常是一个逻辑公式。可以将同一个值与单元格区域中的各单元格值进行比较,也可以比较两个相同的区域。

相关文章

使用数组公式保护工作表结构

1 颗星2 颗星3 颗星4 颗星5 颗星 (目前还没有人投票)
Loading ... Loading ...

这里在BaconBits中看到的一个小技巧,非常有意思,特辑录于此。
下面,使用简单的数组公式来阻止添加/删除工作表行/列。
步骤1:选择不希望添加或删除行的行区域,输入=”",按Shift+Ctrl+Enter组合键。

步骤2:选择不希望添加或删除列的列区域,输入=”",按Shift+Ctrl+Enter组合键。

步骤3:隐藏数组公式。
此时,当用户试图在被保护区域添加或删除列或行时,将出现一条警告消息。

如果不希望应用工作表保护而仍然希望避免修改工作表结构,那么该技巧是有用的。

相关文章