You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Power BI中如何将Google Sheet的月度费用列与日历表建立关联

Power BI中如何将Google Sheet的月度费用列与日历表建立关联

嗨,我来帮你搞定这个问题!咱先理清楚核心矛盾:你的Google Sheet数据现在是宽表格式(每个月单独占一列),而Power BI里的日历表是标准的日期维度表(每行对应一个具体日期),直接关联肯定行不通,得先把费用数据转成更适合Power BI分析的长表格式,下面给你两种可行方案,挑适合你的来:

方案一:在Power BI内转换现有数据(推荐,不用动原表)

  1. 导入Google Sheet数据后,进入Power Query编辑器
  2. 选中所有非月度的列(比如软件名称、供应商这类A到X列的内容),然后点击顶部转换选项卡的「逆透视其他列」功能
    • 这一步会把原来的月度列(比如Jan-24、Feb-24这类)自动转成两列:属性(存月份标识)和(存对应月度的费用)
  3. 属性列转成Power BI能识别的日期格式:
    • 新增一个自定义列,公式可以根据你月份列的实际格式调整,比如如果月份列是「Jan 2024」这种样式,就用:
      Date.FromText([属性], [Format="MMM yyyy"])
      
    • 或者直接生成每个月的第一天作为关联用的日期,比如:
      Date.StartOfMonth(Date.FromText([属性], [Format="MMM yyyy"]))
      
  4. 回到数据视图,给你的日历表新增一个「月度起始日」列,DAX公式如下:
    "月度起始日", DATE([Calendar Year], [Month Number], 1)
    
  5. 最后在模型视图里,把费用表的「月度起始日」和日历表的「月度起始日」建立多对一的关系(因为一个月度日期对应日历表的30/31天数据)

方案二:先在Google Sheet里调整数据格式(适合长期维护)

如果后续还要频繁更新Google Sheet的数据,不如直接把原表改成长表格式

  • 重新整理成每行对应一条记录:软件名称 + 月份 + 月度费用
  • 比如原来的「软件A」+「Jan-24列的费用」变成单独一行,「软件A」+「Feb-24列的费用」再变成一行
  • 这样导入Power BI后,直接给月份列转成日期格式,就能和日历表的日期列(或月度起始日列)建立关联,省去Power Query的转换步骤

小提醒

  • 不管用哪种方案,一定要确保日期格式统一,比如费用表的月度日期和日历表的日期都得是Power BI的「日期/时间」数据类型,不然关联会出问题
  • 转成长表后,你后续做月度趋势分析、费用同比环比都会方便很多,Power BI的绝大多数可视化组件(比如折线图、矩阵)都更适配长表结构

备注:内容来源于stack exchange,提问作者Francesco Mantovani

火山引擎 最新活动