dDate日期维度表

1.DAX公式

bash 复制代码
dDate = 
ADDCOLUMNS(
    CALENDAR(MIN('销售出库单'[业务日期]), TODAY()),
    /* ---年/季/月/日/当前日/自定义财年/最新业务日期 --- */
    "Year",                    YEAR([Date]),
    "Quartername",             "Q" & QUARTER([Date]),
    "Month",                   FORMAT([Date], "mmmm"),
    "Month Number",            MONTH([Date]),
    "Month Number one",        FORMAT(MONTH([Date]), "0") & "月",
    "日期",                    YEAR([Date]) & "-" & FORMAT([Date], "MM"),
    "Quarternumber",           ROUNDUP(MONTH([Date]) / 3, 0),
    "Yearquartersort",         YEAR([Date]) * 10 + ROUNDUP(MONTH([Date]) / 3, 0),
    "Year-Quarter",            YEAR([Date]) & "-" & "Q" & QUARTER([Date]),
    "Year-Month",              YEAR([Date]) & "-" & FORMAT([Date], "mmm"),
    "Yearmonthsort",           YEAR([Date]) * 100 + MONTH([Date]),
    "Day",                     DAY([Date]),
    "Year-Month-Day",          YEAR([Date]) & "/" & FORMAT([Date], "MM") & "/" & DAY([Date]),
    "CurrentFlag",             IF([Date] = TODAY(), 1, 0),
    "CustomYear",              IF(AND([Date] >= DATE(YEAR([Date]), 8, 1), [Date] <= DATE(YEAR([Date]) + 1, 8, 1)), YEAR([Date]), YEAR([Date]) - 1),

    /* ---------- 新增周维度(周一 = 当周第一天,中国 2025-04-W1 格式) ---------- */
    "WeekNumber",              WEEKNUM([Date], 21),  // ISO 周号
    "MonthWeekIndex",          ROUNDDOWN((DAY([Date]) - 1) / 7, 0) + 1,  // 当月第几周 1-5
    "Year-Month-Week",         YEAR([Date]) & "-" & FORMAT([Date], "MM") & "-W" & ROUNDDOWN((DAY([Date]) - 1) / 7, 0) + 1,
    "YearMonthWeekSort",       YEAR([Date]) * 1000 + MONTH([Date]) * 10 + ROUNDDOWN((DAY([Date]) - 1) / 7, 0) + 1,
    "WeekStart",               [Date] - WEEKDAY([Date], 2) + 1,  // 当周周一
    "WeekEnd",                 [Date] - WEEKDAY([Date], 2) + 7,  // 当周周日

    /* --- 动态计算今日和昨日日期标志 --- */
    "TodayFlag", 
    IF([Date] = TODAY(), "今日", 
       IF([Date] = TODAY() - 1, "昨日", BLANK()))
)
  • 以事实表 '销售出库单'[业务日期] 的最小值 → 今天,生成连续日历。

  • 用 ADDCOLUMNS 一次性把后续报表里要用的所有时间维度字段都"打"上去,避免以后反复写计算列。

  • 所有字段都是计算列,不是度量值;表刷新时一次性算完,后续切片、筛选、排序直接拖字段即可。

  • 自定义财年

    CustomYear = 如果日期在当年 8-1 到次年 7-31 之间,则财年=当年,否则=上年。

    → 8 月 1 日作为财年起点,常见于零售/教育行业。

  • 报表里需要"周"维度时,直接拖 Year-Month-Week 或 WeekStart/WeekEnd 即可;排序用 YearMonthWeekSort。

2.日期切片器

  • 单日筛选

" TodayFlag " 为文本类型字段,直接拖放切片器字段值,视觉对象垂直列表可全部显示,打开单项选择则实现单选筛选数据,打开 "全选" 选项则切片器有全选选项。

  • 日期范围筛选

" Date " 字段类型需要设置为日期格式,点击Date字段,将数据类型修改为日期时间,格式选择自己喜好类型。切片器设置选项样式为介于,在日期表中MIN日期与MAX日期的范围选择,图中隐藏日期滑块,打开滑块可以滑动选择日期。

3. 模型视图关联

日期维度表Date字段与 " 业务单据表 " 形成模型视图关联,交叉筛选方向选择双向,可以应用安全筛选器。这样就可以实现日期维度表整个看板的数据筛选。

相关推荐
李昊哲小课4 小时前
matplotlib_tutorial
数据分析·matplotlib·数据可视化
柳杉16 小时前
从动漫水面到赛博飞船:这位开发者的Three.js作品太惊艳了
前端·javascript·数据可视化
Triv20251 天前
太阳能船远程信息处理:CAN数据记录 + Grafana仪表板实战案例
grafana·数据可视化·influxdb·嵌入式系统·can总线·数据采集与监控·智能船舶
lzq6032 天前
如何利用AI生成可视化图表(统计图、流程图、思维导图……)免代码一键绘制图表
人工智能·aigc·数据可视化
柳杉3 天前
两款惊艳的 WebGL 开源项目推荐
前端·javascript·数据可视化
weixin_505154463 天前
博维数孪创新引领,3D作业指导助力制造业升级
大数据·人工智能·3d·数字孪生·数据可视化·产品交互展示
dd_669963 天前
游戏上市公司合同系统实施案例(三):从需求分层到全生命周期管理
游戏·信息可视化·数据可视化
数据小玩子3 天前
精准归因:如何量化分析光伏电站的每一分发电损失?
大数据·人工智能·数据可视化·助睿数智·光伏电站运营
Highcharts.js4 天前
数据可视化不仅属于金融、互联网|农业数据可视化设计:Farmable与Highcharts的前端设计
前端·信息可视化·数据可视化·highcharts·农业可视化
山海鲸实战案例分享6 天前
【数字孪生实战案例】如何通过自定义区域颜色,让地图组件中的特定区域突出显示?~山海鲸可视化
数字孪生·数据可视化·零代码·中国地图·实战案例·山海鲸可视化·自定义区域颜色