You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI DAX中通过While循环创建计算列的技术问询

问题描述

现有如下表格:

IndexGroup
1Group1
2Group1
3Group2
4Group2
5Group3
6Group3
7Group4
8Group4

需要创建名为Group的计算列,要求遍历Index列,每2行切换一次GroupX值,且使用能适配表格动态维度的While循环实现,替换原有固定区间的Switch语句(原Switch语句如下):

  1. 先为表格添加名为Index的索引列;
  2. 添加名为EXPORT_GROUP的计算列(需将TblName替换为实际表名):
EXPORT_GROUP = switch (true(),
AND(TblName[Index]>=0, TblName[Index]<=20000), "Group1",
AND(TblName[Index]>=20001, TblName[Index]<=40000), "Group2",
"Group3")
解决方案

使用DAX的WHILE循环实现动态分组的计算列表达式如下(将TblName替换为你的实际表名):

Group = 
VAR CurrentIndex = TblName[Index]
VAR RowsPerGroup = 2  // 可修改为动态值,比如CEILING(COUNTROWS(TblName)/期望分组数, 1)以适配动态维度
VAR CalculatedGroup = 
    VAR Counter = 1
    VAR RemainingIndex = CurrentIndex
    RETURN
        WHILE (
            RemainingIndex > RowsPerGroup,
            Counter = Counter + 1,
            RemainingIndex = RemainingIndex - RowsPerGroup
        )
        RETURN Counter
RETURN
    "Group" & CalculatedGroup

说明:

  • RowsPerGroup定义每组包含的行数,这里设置为2,若要适配表格动态维度,可将其改为动态计算值,例如如果要将表格平均分成5组,可写成RowsPerGroup = CEILING(COUNTROWS(TblName)/5, 1)
  • 循环逻辑:通过不断减少剩余索引值,直到其小于等于每组行数,此时的计数器值即为当前行所属的分组编号,最后拼接成GroupX格式的分组名称

内容的提问来源于stack exchange,提问作者Veronica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 23:40:09