如何在Excel中按指定日期范围生成每日在库物品数量统计报表?
实现方法说明
完全可以实现,结合Excel数据模型(Power Pivot)就能满足带日期范围参数的筛选需求,同时统计指定范围内每日的在库物品数量,具体步骤如下:
步骤1:创建日期维度表
要显示连续日期(包括无库存变动的日期,比如示例中的9/2、9/7),必须先构建一个完整的日期序列:
- 在空白单元格输入起始日期(如
9/1/23),按住Ctrl拖动填充至目标结束日期(如9/7/23) - 选中该日期列,点击Power Pivot > 添加到数据模型
- 在Power Pivot编辑器中,将这个表命名为
日期表,确认日期列格式为标准日期类型
步骤2:关联主数据与日期表
在Power Pivot编辑器的关系图视图中:
- 将你的物品出入库主表的
入库日期、出库日期,分别与日期表的日期列建立关系(后续DAX计算会跨关系筛选数据)
步骤3:编写DAX度量值计算每日库存数
在Power Pivot编辑器中创建新度量值,命名为物品数量,输入以下DAX公式:
物品数量 = VAR 当前日期 = MAX('日期表'[日期]) VAR 在库计数 = CALCULATE( COUNTROWS('主数据表'), '主数据表'[入库日期] <= 当前日期, '主数据表'[出库日期] >= 当前日期 ) RETURN IF(ISBLANK(在库计数), 0, 在库计数)
该公式会统计每个日期当天处于「已入库但未出库」状态的物品数量,同时将空值转为0,确保无库存日期也显示数值。
步骤4:创建带日期参数的透视表
- 返回Excel界面,插入透视表,选择「使用此工作簿的数据模型」
- 配置透视表字段:
- 行区域:拖入
日期表的日期列 - 值区域:拖入刚才创建的
物品数量度量值
- 行区域:拖入
- 添加日期范围筛选:
方式一:用单元格参数- 在空白单元格(如G1、G2)分别设置起始、结束日期的输入框(可通过数据 > 数据验证限制为日期类型)
- 选中透视表,点击分析 > 筛选,为
日期表的日期列设置筛选规则:日期 >= $G$1且日期 <= $G$2
方式二:用切片器 - 插入日期切片器,选择
日期表的日期列 - 右键切片器 > 切片器设置,将筛选模式改为「日期范围」,即可手动拖拽选择起止日期
步骤5:显示无数据日期
默认透视表会隐藏数值为0的行,需开启显示:
- 右键透视表行标签 > 字段设置 > 布局和打印,勾选「显示无数据的项目」
完成以上设置后,就能实现你需要的效果:选择任意日期范围,透视表会返回该范围内每日的物品总数,包括数量为0的日期。
内容的提问来源于stack exchange,提问作者Bruno71
相关产品推荐
相关产品推荐

