excel - Excel 仅对列表中的单个或第一个重复值求和
问题描述
我在网上找到了一个 Excel 公式,它给出了所需的结果,但我不完全理解它是如何工作的。这是=SUMPRODUCT(B1:B9/COUNTIF(A1:A9,A1:A9))
并且结果129
适用于以下数据(它在B
数据的列中添加了单个出现,13 + 24 + 92 = 129
这是所需的结果)。
Row A B
1 1 13
2 1 13
3 1 13
4 1 13
5 3 24
6 3 24
7 3 24
8 12 92
9 12 92
我知道COUNTIF(A1:A9,A1:A9)
正在创建一个数组{4;4;4;4;3;3;3;2;2)
,但我不知道范围B1:B9
分子是如何创建结果的。如果分子是数字“1”(即公式改为=SUMPRODUCT(1/COUNTIF(A1:A9,A1:A9))
,结果是3
,我认为是作为总和计算出来的1/4 + 1/4 + 1/4 + 1/4 + 1/3 + 1/3 + 1/3 + 1/2 + 1/2
。那么当B1:B9
公式中的 是如何逐步计算出来的呢?
解决方案
你自己非常接近答案。给定您的示例,您有两个数组:第一个是 B 列中的数字,另一个是 A 列中 countif 中的数字:{13;13;13;13;24;24;24;92;92} 和 {4 ;4;4;4;3;3;3;2;2}
在 sumproduct 公式中,您有除法,因此您将数组除法:{13/4; 13/4;13/4;13/4;24/3;24/3;24/3;92/2;92/2},这些数字的总和是:3,25 + 3,25 + 3,25 + 3,25 + 8 + 8 + 8 + 46 + 46 = 129
还有神奇的数字:-)
推荐阅读
- json - 如何从 Flux 获取 JSON 格式
在 SpringBoot 控制器中? - javascript - 是否可以使此删除按钮和输入表单起作用?
- reactjs - 如何根据键过滤地图返回的数据
- c# - 从种子字符串计算特定长度的哈希字符串
- python - Return the index from ordinal position pandas dataframe
- java - 2 编辑文本获取货币格式(###,###,###)和地雷但是(点击btn地雷时崩溃)
- javascript - 无法在 React.js 中的字符串中导入变量
- sql - 在单次拍摄中为所有值添加单引号
- animation - 使用向量移动球
- python - 使用 Python(和 Pythia)从图像生成标题