gpt4 book ai didi

excel - 函数内的向量化(SUMIF 中的条件参数)

转载 作者:行者123 更新时间:2023-12-04 20:12:34 25 4
gpt4 key购买 nike

这在 C++、Python、R 等中是微不足道的。但是 Excel 让我大吃一惊。网络上一遍又一遍地重复着无数个本质上相同的简单示例。我找不到任何东西来解决 SUMIF/COUNTIF 的这个应用程序。

我有一个项目列表,带有一个类别位标志来标记每个项目:

 ...... A ............. B .... C
1 |Item ........... # ... Flag
2 | Apples ....... 20 ... 1
3 | Oranges .... 30 ... 3
4 | Lemon ........40 ... 7
5 | School Bus .. 5 ... 4

在这里,使用 EXCEL 函数 BITAND:
-- BITAND( < flag >, 1) is non-zero for fruit, 
-- BITAND( < flag >, 2) is non-zero for citrus,
-- BITAND( < flag >, 4) is non-zero for yellow,

我需要做类似的事情:
Total Citrus = SUMIF(C2:C5, BITAND(C2:C5, 2) > 0, B2:B5)

这不起作用,因为条件(第二个参数)只能在简单的条件(例如“> 5”)中使用对列表元素的隐式引用

变体可能如下所示:
Total Citrus = SUM( IF(BITAND(C2:C5, 2) > 0, B2:B5) )

这几乎可行,但条件仅针对单元格 C2 进行测试,然后对总列表求和,或者不求和。

当然,我可以使用三个不同的列并用 1 和 0 填充它,但是根据我的实际情况进行缩放时会很糟糕。

最佳答案

您已使用 BITAND function² 创建了一个数组公式¹ .这些需要使用 Ctrl+Shift+Enter↵ 而不是简单的 Enter↵ 来完成。一旦输入正确,Excel 将在公式周围添加大括号(例如 { } )。你不要自己输入这些。

在 E7 中,

=SUM(IF(SIGN(BITAND($C$2:$C$5, VLOOKUP(D7, $G$2:$H$5, 2, FALSE))), $B$2:$B$5))

输入正确后,根据需要填写。

BITAND_array

¹ 数组公式需要使用 Ctrl+Shift+Enter↵ 完成。一旦正确输入第一个单元格,它们就可以像任何其他公式一样被填充或向下或向右复制。尝试将全列引用减少到更接近代表实际数据范围的范围。数组公式以对数方式消耗计算周期,因此最好将引用范围缩小到最小值。见 Guidelines and examples of array formulas了解更多信息。

² BITAND function²随 Excel 2013 引入。它在早期版本中不可用。

关于excel - 函数内的向量化(SUMIF 中的条件参数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com