希望有人能帮助解决这个问题:
左侧的数字(电话号码)可以是单个数字,也可以是重复数字。每行的第二列都有一个与该电话号码关联的数字。
我需要第二列中与第一列中每个唯一值对应的值的总和。目前,我选择自动求和,手动进行选择并获取总和值。
我的列表通常有 2500 行,因此这可能需要一些时间。有没有办法自动完成此操作?
答案1
三种解决方案:
(我假设您的数据在单元格中A1:B22
。)
1.条件格式
- 设置
C1
为=B1
。
(如果您的数据不是从第 1 列开始,并且第一个数据行之前的行中没有数字,则可以对整个列使用下一个公式。) - 设置
C2
为=IF(A1=A2, C1+B2, B2)
并向下拖动/填充到C22
。
这会将列设置C
为匹配数字的累计总数;
即C1
= 50、C2
= 220、C3
= 320、C4
= 900、C5
= 500 等。 - 选择结果(即单元格
C1:C22
),然后执行“条件格式”→“新建规则”。选择“使用公式确定要格式化的单元格”,输入公式=A1=A2
,并将单元格格式化为不可见。(常见的做法是将字体颜色设置为白色或应用自定义数字格式;;;
。)
如果以上内容不清楚:这会在范围内的每个单元格中放置一个数字,但会隐藏您不想要的数字。
2. 辅助列
- 选择一个不妨碍的列;例如, column
Z
。它的定义与我们上面定义的 column 相同C
。 - 设置
C1
为=IF(A1=A2, "", Z1)
并向下拖动/填充至C22
。
3. 一体机
- 设置
C1
为=IF(A1=A2, "", SUMIF(A$1:A$22, A1, B$1:$B22))
并向下拖动/填充至C22
。
请注意,如果电话号码排序不正确,并且没有分成不同的组,这些方法会产生不同的结果。方法标签如下:
- 条件格式
- 辅助栏
- 一体
考虑这些数据:
phone value method1 method2 method3
︙ ︙ ︙ ︙ ︙
95 800 1500 1500 1500
42 1 ← First block of data for phone # 42
42 2 3 3 99 ← Note that methods 1 and 2 yield 1 + 2 = 3
17 4 ↖ but method 3 yields 1 + 2 + 32 + 64 = 99
17 8
17 16 28 28 28
42 32 ← Second block of data for phone # 42
42 64 96 96 99 ← Note that methods 1 and 2 yield 32 + 64 = 96
83 1000 ↖ but method 3 yields 1 + 2 + 32 + 64 = 99
83 2000 (again)
83 4000 7000 7000 7000
︙ ︙
答案2
答案3
长度不应该是问题 - 这是我职业生涯中不得不多次做的非常常见的活动。我使用 SUMIF 函数如下:
- 抓住整个第一列并将其放入新的工作表 (col A) 中,然后按 AZ 排序。
- 在单元格 B2 中输入
=IF(A1=A2,1,0)
并自动填充公式。 - 过滤掉所有“1”值并删除这些行 - 剩下唯一的数字(电话号码)
- 删除 B 列值并对每个唯一 (电话) 号码使用 SUMIF。范围固定为第 1 列、第 1 张表。条件是 A 列中的每个号码 (电话号码)。Sum_range 是第 2 列、第 1 张表。
可能有一种方法可以将其制作成您自己的宏。