Excel - 将两个公式合并为一个

时间:2017-03-02 15:10:54

标签: excel

如何组合这两个公式并将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

1 个答案:

答案 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)))

这将在添加数据时增加数据集,并在删除数据时收缩数据集。