根据条件返回值数组

时间:2020-05-15 19:52:40

标签: excel

我正在尝试创建一个Excel公式以基于逻辑返回值数组。

我知道SUMIFS之类的Excel函数接受范围和条件的参数,但我不想返回范围的和,而是希望根据条件返回一个(单元溢出)值数组。

这个answer有帮助,但是我不希望对返回数组进行排序。我需要将数组索引与过滤后的索引相同。

示例单元格

Name     Type        Shares      Price
STA      Buy         12          5.7
STA      Buy         15          3.8
STA      Buy         100         5.4
STA      Sell       -50          5.8
GA       Buy         55          3.55

当前公式:

# works but sorted least to greatest, want to return non sorted
=SMALL(IF((NameRange="STA")*(TypeRange="Buy"),PriceRange),ROW(INDIRECT("1:"&COUNTIFS(NameRange,"STA", TypeRange,"Buy"))))

这将返回:

3.80
5.40
5.70

我正尝试按照匹配的原始显示顺序返回未排序的内容:

5.7
3.8
5.4

1 个答案:

答案 0 :(得分:1)

如果您有权访问 Microsoft 365 ,则可以使用FILTER来生成输出:

=FILTER(D2:D6,(A2:A6=H3)*(B2:B6=H4))

enter image description here


您还可以通过将以上公式嵌套在TEXTJOIN(", ", TRUE, [FORMULA ABOVE])中来返回5.7, 3.8, 5.4

,以逗号分隔的字符串形式返回值