我有一张桌子
- 实际库存列
C
- 货物到达栏
D
- 按列自动重新排序
F
我需要计算行数(C+D+F) > 0
。每行只能计算一次,并且只能if (C=0 or D=0 or F=0)
有办法吗?
我已经在 ablebits 上查看了网络上有关 countifs 的最详细教程,但我无法对其进行调整以满足我的需要。
答案1
您首先需要一个新列来进行计算,其中的单元格包含以下公式:
=AND( ((A2+B2+C2)>0), OR( A2=0, B2=0, C2=0) )
注意:为了简单起见,我在这里仅使用了 A、B 和 C 列。
新列将显示真或假。
为了进行计算,您需要以下公式:
=COUNTIF([test],TRUE)
注意:我将数据表转换为 Excel 表,这始终是最佳做法。它打开了表的总计行,并将默认公式更改为上面的公式。我为上一个公式添加的列,我将其标题设为“测试”。这样做可以确保您始终将整个表包含在计算中,因为 Excel 会处理行/列/单元格的动态更新。您还可以将总计放在数据表上方的一行中,这对于大型表非常有用。
更新:
如果您按照我的建议将数据表制作成 Excel 表,那么您也可以将第一列公式更改为:
=AND( (([@stock]+[@in]+[@reorder])>0), OR( [@stock]=0, [@in]=0, [@reorder]=0) )
假设您分别将“库存”、“在”和“重新订购”列为标题。
答案2
这是一个单一公式的解决方案:
=SUMPRODUCT((((C=0)+(D=0)+(F=0))>0)*(C+D+F>0))
请注意,我仅使用列字母来指代您的整个数据范围。它实际上类似于$C$2:$C$500
或Table1[Actual Stock]
或您的实际数据设置所需的任何内容。
答案3
对于您的条件 C=0 或 D=0 或 E=0,我假设要求是至少一项等于零,而不是那项确切地一个项目必须等于零;因此,例如,C=0 和 D=0 就满足要求。如果是这样,有一个简单的解决方案,与 Julian Knight 的方法有些相似。我还会使用辅助列。对于第 1 行,它将包含:
=(C1+D1+F1>0)*(C1*D1*F1=0)
如果两个条件都满足,则返回1
零,否则返回零。将该列复制到所有行。将该列相加以获得计数。