【发布时间】:2017-01-29 19:36:09
【问题描述】:
我一直在研究我的情况,无论是在这个网站上还是在其他网站上,这是最接近我的问题/解决方案的:
Find all values greater or equal than a certain value
但是,在我的情况下使用该解决方案并不能得到正确的结果。我有一个包含 83 个名字的列表,每个名字都会受到惩罚。在一个单独的选项卡上,我想显示所有具有任何惩罚 (>0) 的名称的输出。
我只有四种可能的惩罚,所以如果我需要在公式中引用它们(匹配或查找),那也可以。缩短和虚拟化数据,这是我所拥有的一个示例:
+----------+---------+
| Name | Penalty |
+----------+---------+
| Name 1 | 0 |
| Name 2 | 0 |
| Name 3 | 5 |
| Name 4 | 0 |
| Name 5 | 0 |
| Name 6 | 10 |
| Name 7 | 0 |
| Name 8 | 0 |
| Name 9 | 0 |
| Name 10 | 20 |
+----------+---------+
使用这个公式,然后CSE 并向下拖动:
=INDEX($R$4:$R$13,SMALL(IF($S$4:$S$13>0,ROW($S$4:$S$13)),ROW(1:1)))
它给了我这些结果:
+---------+
| Name 6 |
| Name 9 |
| #REF! |
| #NUM! |
| #NUM! |
| #NUM! |
| #NUM! |
| #NUM! |
| #NUM! |
| #NUM! |
+---------+
我将通过使用 IFERROR 并将其设为空白来处理错误,但仍然无法找到罚分 >0 的正确姓名
编辑:更改最后一个“ROW”部分给了我不同的答案,所以我认为我的问题就在那里,但我仍然不知道如何处理它。这应该是“SMALL”函数的“k”值。
非常感谢任何帮助。谢谢!
【问题讨论】:
-
只需将
INDEX中的$R$4:$R$13更改为$R:$R。这是因为您的 Small 从ROW($S$4:$S$13)获取值,因此第一个条目将是 4,但INDEX($R$4:$R$13,4)将是 R7 而不是 R4。但是使用INDEX($R:$R,4)会输出正确的R4 ;) -
这个解决方案奏效了!谢谢!