You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel中对重复患者仅取最后实例的「Dizziness」数值求和方法咨询

解决重复患者仅取最后一条记录的Dizziness数值求和问题

针对你的需求——对C2:H6区域内的「Dizziness」数值求和,且重复患者仅保留最后一条记录计算,我提供两种实用方案,适配不同Excel版本:

方案1:兼容所有Excel版本的SUMPRODUCT公式

假设你的数据结构是:

  • A列(A2:A6)为患者姓名
  • C列(C2:C6)为症状名称(标记「Dizziness」)
  • D列(D2:D6)为对应症状的数值

你可以使用以下公式:

=SUMPRODUCT((ROW(A2:A6)=MAXIFS(ROW(A2:A6),A2:A6,A2:A6))*(C2:C6="Dizziness")*D2:D6)

公式逻辑拆解:

  • MAXIFS(ROW(A2:A6),A2:A6,A2:A6):为每个患者姓名找到其最后一条记录所在的行号(最大行号)
  • ROW(A2:A6)=...:判断当前行是否为该患者的最后一条记录,返回布尔值后自动转换为1(符合)或0(不符合)
  • (C2:C6="Dizziness"):筛选出症状为「Dizziness」的记录,同样转换为1/0
  • 三者相乘后求和,最终得到仅包含每个患者最后一条Dizziness记录的数值总和

如果你的「Dizziness」数值直接在C2:H6区域内(比如该区域单元格值为数值,对应的症状标记在其他列),只需调整公式中的列引用即可。

方案2:Excel 365/2021 专属动态数组方案

如果你使用的是支持动态数组的Excel版本,这个公式会更简洁直观:

=SUM(XLOOKUP(UNIQUE(A2:A6),A2:A6,D2:D6,"",0,-1))

公式逻辑拆解:

  • UNIQUE(A2:A6):提取所有不重复的患者姓名
  • XLOOKUP(...,0,-1):从数据区域从后往前查找每个唯一姓名对应的最后一条记录的Dizziness数值
  • SUM:将这些筛选后的数值直接求和,一步得到结果

验证示例

假设你的数据如下:

患者姓名日期症状数值
Test22024-01-01Dizziness5
Test22024-01-02Dizziness7
Test22024-01-03Dizziness10
Test32024-01-01Dizziness3
Test32024-01-02Dizziness5

使用上述任意公式,都会得到预期结果15(Test2最后一条的10 + Test3最后一条的5),完美排除了重复患者的非最后记录。

内容的提问来源于stack exchange,提问作者James324

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:20:18