首页 > 解决方案 > 仅当值第一次出现时才计算匹配多个条件的行

问题描述

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

我想要实现的是仅当 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     |
| ... | ...   |

预先感谢您的帮助。

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

标签: excel-formula

解决方案


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

在此处输入图像描述

使用的公式转换为:

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

请注意,这是一个数组公式,应通过CtrlShiftEnter

在消费时:

在此处输入图像描述


推荐阅读