如何组合这两个公式并将0转换为BLANK
响应:
=INDEX($A:$A,SMALL(IF($B:$B<=$G$3,ROW($B:$B)),ROW(2:2)))
=INDEX($A:$A,SMALL(IF($C:$C<=$H$3,ROW($B:$B)),ROW(2:2)))
我有两个列,我试图引用为两个单独的输入值的可能结果吐出多个值。例如:
A B C
SCAC Linear Feet Weight
PITD 20 10000
ESTE 10 15000
SAIA 25 20000
ABFS 20 25000
输入值
Linear Feet Weight
20 20000
如果输入的字段大于或等于我希望它返回符合条件的所有值
对不起,伙计们,我只是从我的老板那里得到一句话,他希望INPUT值是/或匹配LINEAR FEET或WEIGHT ......是否有任何想法可以适应这个新问题?
返回
SCAC Code
PITD
SAIA
ABFS
答案 0 :(得分:1)
您只需添加第二个条件:
=INDEX($A:$A,SMALL(IF(($B:$B<=$G$3)*($C:$C<=$H$3),ROW($B:$B)),ROW(2:2)))
这是一个数组公式,需要使用Ctrl-Shift-Enter确认。
*
与AND
类似OR
使用+
。
<强> 警告 强>
数组公式不应使用完整列引用,而只应引用数据集:
=INDEX($A:$A,SMALL(IF(($B1:$B100<=$G$3)*($C1:$C100<=$H$3),ROW($B1:$B100)),ROW(2:2)))
数组公式将迭代所有要求的范围,因此原始数据将超过200万次计算。
如果你想要两全其美,动态数据集(所以你不需要在添加新数据时更改公式)并且只迭代带有数据的单元格,我们可以使用INDEX / MATCH来定位和设置带数据的最后一个单元格。
我们将使用MATCH在列A中找到值为MATCH("ZZZ",A:A)
的最后一行,然后使用每列的INDEX来限制数组:
=INDEX($A:$A,SMALL(IF(($B$1:INDEX($B:$B,MATCH("ZZZ",$A:$A))<=$G$3)*($C$1:INDEX($C:$C,MATCH("ZZZ",$A:$A))<=$H$3),ROW($B$1:INDEX($B:$B,MATCH("ZZZ",$A:$A)))),ROW(2:2)))
这将在添加数据时增加数据集,并在删除数据时收缩数据集。