PowerBI中按SegmentID分区添加MCI_Flag与WCI_Flag列求助
解决方法:添加MCI_Flag和WCI_Flag列
下面提供两种适合新手的实现方式,分别用DAX计算列和Power Query(M语言)操作:
方法一:DAX计算列(直接在数据模型中添加)
- 在Power BI Desktop中切换到数据视图,选中你的目标表格(比如命名为
BookingTable) - 点击顶部菜单栏的新建列,输入以下DAX公式创建
MCI_Flag:
MCI_Flag = IF(CALCULATE(COUNTROWS(BookingTable), ALLEXCEPT(BookingTable, BookingTable[SegmentID]), BookingTable[SSRCode] = "MCI") > 0, 1, 0)
逻辑说明:ALLEXCEPT保留当前行的SegmentID上下文,计算该分区内是否存在SSRCode为"MCI"的行,存在则标记1,否则0。
3. 用同样方式创建WCI_Flag:
WCI_Flag = IF(CALCULATE(COUNTROWS(BookingTable), ALLEXCEPT(BookingTable, BookingTable[SegmentID]), BookingTable[SSRCode] = "WCI") > 0, 1, 0)
方法二:Power Query(M语言)操作(数据加载前处理)
- 点击菜单栏的转换数据进入Power Query编辑器,选中目标表格
- 点击分组依据,设置:
- 分组依据:
SegmentID - 新列名:
GroupedRows - 操作:
所有行
- 分组依据:
- 点击添加列→自定义列,创建
MCI_Flag:
if List.Contains([GroupedRows][SSRCode], "MCI") then 1 else 0
- 同样创建
WCI_Flag:
if List.Contains([GroupedRows][SSRCode], "WCI") then 1 else 0
- 点击
GroupedRows列右侧的展开按钮,选择保留原列(BookingID、PassengerID、BaggageID、SSRCode) - 调整列顺序后,点击关闭并应用即可得到预期结果
内容的提问来源于stack exchange,提问作者Crazy
相关产品推荐
相关产品推荐

