如何按多条件跨日期统计数据透视表中的房间数量?
批量统计透视表中每日房间数的区间分布
方法1:直接在透视表里搞定区间分组
- 选中透视表的「房间数」列
- 右键点击「分组」,在弹窗里设置起始值1000、步长1000(终止值按你的数据最大值填写),确定后直接就能看到每个区间对应的日期数量
- 要是需要自定义非固定步长的区间,先在数据源加个辅助列,用
IFS函数给每个房间数打上区间标签:
把这个辅助字段拖进透视表的行/列区域,就能自动统计各区间的日期数=IFS(Rooms<1000,"<1000",Rooms>=1000,Rooms<2000,"1000-1999",Rooms>=2000,Rooms<3000,"2000-2999",Rooms>=3000,"≥3000")
方法2:用SUMPRODUCT批量计算全日期区间
假设透视表日期列在A2:A100,房间数列在B2:B100,要统计的区间写在D2:D4(比如D2是1000-1999),在E2单元格输入下面的公式,下拉就能批量得出所有区间的统计结果:
=SUMPRODUCT((B$2:B$100>=LEFT(D2,FIND("-",D2)-1))*(B$2:B$100<=RIGHT(D2,LEN(D2)-FIND("-",D2))))
碰到像≥3000这种无上限的区间,直接用简化公式:
=SUMPRODUCT((B$2:B$100>=3000)*1)
方法3:新版本Excel用动态数组一键生成
如果使用的是Excel 365/2021版本,输入下面的公式,就能一次性输出所有区间的统计结果:
=LET( rooms,B2:B100, intervals,{"1000-1999","2000-2999","≥3000"}, counts,CHOOSE( MATCH(TRUE,rooms>=CHOOSE({1,2,3},1000,2000,3000),0), SUMPRODUCT((rooms>=1000)*(rooms<2000)), SUMPRODUCT((rooms>=2000)*(rooms<3000)), SUMPRODUCT((rooms>=3000)*1) ), HSTACK(intervals,counts) )
内容的提问来源于stack exchange,提问作者Austin Coleman
相关产品推荐
相关产品推荐

