如何统计多列重复值行数?动画电影类型计数异常求助
统计多列中类型的总出现次数
你的原公式问题在于COUNTROWS + FILTER只会统计包含至少一个Action的电影行数(同一部电影不管有多少个Action都只算1次),而非所有列中Action的总出现次数。以下是两种解决方法:
方法一:逐行统计并累加(直接写DAX)
使用SUMX逐行计算每一行中7个Genre列里"Action"的出现次数,再累加所有行的结果:
Action总次数 = SUMX( Animation_Movies, INT(Animation_Movies[Genre.1] = "Action") + INT(Animation_Movies[Genre.2] = "Action") + INT(Animation_Movies[Genre.3] = "Action") + INT(Animation_Movies[Genre.4] = "Action") + INT(Animation_Movies[Genre.5] = "Action") + INT(Animation_Movies[Genre.6] = "Action") + INT(Animation_Movies[Genre.7] = "Action") )
- 原理:
INT()会将布尔值TRUE/FALSE转换为1/0,每匹配一个列就加1,SUMX最终汇总所有行的计数。
方法二:逆透视数据(更推荐,适合多类型统计)
如果需要统计多种类型的次数,先在Power Query中对Genre列做逆透视处理,后续统计会更灵活:
- 选中
Genre.1至Genre.7的所有列 - 点击转换 → 逆透视列 → 逆透视其他列
- 将生成的
Value列重命名为Genre,加载回数据模型 - 用简单的DAX统计Action的总次数:
Action总次数 = CALCULATE(COUNT(Animation_Movies[Genre]), Animation_Movies[Genre] = "Action")
- 优势:无需为每个类型单独写DAX公式,后续统计其他类型时只需修改条件即可,数据结构更符合分析需求。
内容的提问来源于stack exchange,提问作者Pitchaporn Keenaphn
相关产品推荐
相关产品推荐

