如何统计Microsoft Form当日歌曲票数:同一用户仅计首次投票
需求背景
我们使用Microsoft Form收集投票,所有数据同步关联至Excel文件中,当前需要统计当日每首歌曲的有效票数,统计规则为:同一用户多次投票时仅统计其首次提交的投票结果。
原有公式问题说明
你之前使用的是丹麦语版Excel的多条件计数函数,原有公式如下:=ANTAL.OMF(Table1[Jeg stemmer på];E3;Table1[Starttid];">="&IDAG();Table1[Finde Duplicate];1)
对应中文Excel的原生公式为:=COUNTIFS(Table1[投票歌曲],E3,Table1[提交时间],">="&TODAY(),Table1[去重标记],1)
该公式未覆盖「同一用户同一歌曲当日仅统计首次投票」的判断逻辑,你预先设置的Table1[Finde Duplicate](去重标记)字段大概率没有限定当日、同歌曲的筛选范围,因此输出结果不符合预期。
实现方案
方案一:辅助列法(兼容所有Excel版本)
操作步骤如下:
- 确认你的同步表Table1包含用户唯一标识字段:可以是表单自动记录的提交者邮箱、用户ID,匿名投票可使用「提交时间戳+用户提交的固定信息组合」作为替代,此处假设该字段名为
Table1[用户唯一ID] - 在Table1中新增一列,列名设为
是否有效票,输入公式:
=IF(COUNTIFS(Table1[用户唯一ID],[@用户唯一ID],Table1[投票歌曲],[@投票歌曲],Table1[提交时间],"<="&[@提交时间],Table1[提交时间],">="&TODAY())=1,1,0)
公式逻辑:判断当前行是否是该用户当日对对应歌曲提交的第一条投票记录,是则标记为1,否则标记为0
- 最后在统计区域的票数单元格输入以下公式即可得到正确结果:
=COUNTIFS(Table1[投票歌曲],E3,Table1[提交时间],">="&TODAY(),Table1[是否有效票],1)
方案二:无辅助列动态数组法(适用于Excel 2021/365及以上版本)
无需新增辅助列,直接在统计单元格输入以下公式即可:
=SUMPRODUCT(--(UNIQUE(FILTER(Table1[用户唯一ID],(Table1[投票歌曲]=E3)*(Table1[提交时间]>=TODAY()),""))<>""))
公式逻辑:先筛选出当日投票给E3对应歌曲的所有用户ID,去重后统计有效ID的数量,即为该歌曲的当日有效票数。
注意事项
- 需确保
Table1[提交时间]字段格式为日期时间格式,而非文本格式,否则日期筛选会失效 - 如果使用组合值作为用户唯一标识,需确保组合后的值不会出现不同用户重复的情况
内容的提问来源于stack exchange,提问作者Mathias Halén
相关产品推荐
相关产品推荐

