zl程序教程

您现在的位置是:首页 >  工具

当前栏目

Excel公式练习:根据条件获取唯一的第n个值(续)

Excel 获取 条件 练习 根据 唯一 公式
2023-06-13 09:15:13 时间

引言:本文的练习整理自chandoo.org。多一些练习,想想自己会怎么解决这个问题,看看别人又是怎样解决的,这样能够快速提高Excel公式编写水平。

本次的练习是:在《Excel公式练习:根据条件获取唯一的第n个值》中,编写了一个公式用于显示数据(Data)列中与当前选定查找项目匹配的项目(Item)列的第n个最大的唯一值。然而,如果n是6,而我们只有3个唯一值,那么编写的公式应该返回0。

这里,你的任务是修改这些公式,以便在上面所说的情况下,返回最小的非零唯一值。

示例数据如下图1所示。

图1

其中,将单元格区域A2:A13命名为“i”,将单元格区域B2:B13命名为“d”,将单元格D2命名为“n”,将单元格E2命名为“l”。

单元格D2、E2中的数据可以输入,公式根据其数据返回相应的结果。根据不同的输入数据,公式的结果应该如下图2所示。

图2

规则:

1.公式中不能使用整列引用。

2.不能使用中间公式。

3.不能使用VBA。

4.无论数据放置在工作表中的任何地方,公式都能正常运行。

5.除了规定的名称“i”“d”“n”“l”外,不能有其它硬编码引用。

请写下你的公式。

解决方案

公式1:数组公式。

=MAX(MIN(IF(i=l,d)),LARGE(IFERROR((FREQUENCY((i=l)*d,d)>0)*d,),n))

公式2:数组公式。

=MIN(IFERROR(LARGE(IF(IFERROR((FREQUENCY((i=l)*d,d)>0)*d,)>0,d),ROW(OFFSET(A1,,,n))),FALSE()))

公式3:数组公式。

=MIN(IFERROR(LARGE(IF(FREQUENCY(IF(i=l,d),d),d),ROW(OFFSET(A1,,,n))),""))

……

上面列出的大多数公式都没有进行详细的解析,有兴趣的朋友可以参照前面文章给出的方法逐个研究。