仅在首次出现值时才对匹配多个条件的行进行计数

时间:2019-04-30 13:04:53

标签: excel-formula

我有一个表PEOPLE,其中包含ID和AGE列以及与此问题无关的其他列。我可以有两个具有相同ID的行(如果修改了不相关的列中的一个的数据,我将复制该行以保留历史记录。不幸的是,我无法修改此行为并将年龄放入另一个表中。) / p>

我想要实现的是仅在ID首次出现时才按年龄计数人数。我尝试按以下方式进行操作(我使用countifs是因为我正在检查多列,但此处仅AGE与之相关):

=COUNTIFS(PEOPLE[AGE];AGE_DISTRIBUTION[AGE])

AGE_DISTRIBUTION[AGE]包含年龄值。

只要我没有重复的ID,此方法就可以正常工作,但是,当我重复行时,公式会计算这些重复项。如何避免这种情况(即仅计算每个ID的首次出现次数)

结果是这样的:

人员表:

| ID | Age | ... |
|  1 |  32 | ... |
|  2 |  42 | ... |
|  1 |  32 | ... |

AGE_DISTRIBUTION表:

| Age | Count |
| ... | ...   |
|  32 | 2     |  <-- here I should have 1 and not 2
| ... | ...   |
|  42 | 1     |
| ... | ...   |

预先感谢您的帮助。

旁注:我不能使用数据透视表。

1 个答案:

答案 0 :(得分:0)

我不太确定这是否是您的意思,但是:

enter image description here

使用的公式转换为:

{=SUM(--(FREQUENCY(IF(Table1[AGE]=[@AGE],Table1[ID]),Table1[ID])>0))}

请注意,这是一个数组公式,应通过 Ctrl Shift Enter

输入

支出后:

enter image description here