PowerBI中提取两个静态字符串行之间的数据行
在PowerBI中提取两个静态行之间的数据
下面提供两种常用的实现方式,根据你的需求选择:
方法一:用DAX计算列筛选
- 假设你的两个静态行内容分别是
"起始标记"和"结束标记"(替换成你实际的静态字符串),先创建两个变量获取它们的索引值:StartIndex = CALCULATE(MAX('你的表名'[Index]), '你的表名'[values] = "起始标记") EndIndex = CALCULATE(MAX('你的表名'[Index]), '你的表名'[values] = "结束标记") - 添加一个计算列,标记出处于两个静态行之间的行:
目标行标记 = IF('你的表名'[Index] > [StartIndex] && '你的表名'[Index] < [EndIndex], TRUE(), FALSE()) - 在报表视图中,用这个
目标行标记列筛选出值为TRUE的行,就是你需要的中间数据。
方法二:用Power Query预处理数据
这种方式适合在数据加载阶段就完成提取,后续直接使用处理后的表:
- 进入Power Query编辑器,加载你的原始表。
- 找到两个静态行的位置(如果原表没有索引列,可先添加
添加列→索引列):let 源 = 你的数据源, 开始位置 = List.PositionOf(源[values], "起始标记"), 结束位置 = List.PositionOf(源[values], "结束标记"), 提取中间行 = Table.Range(源, 开始位置 + 1, 结束位置 - 开始位置 - 1) in 提取中间行 - 替换代码中的
"起始标记"和"结束标记"为你实际的静态字符串,确认逻辑无误后,点击关闭并应用,处理后的表就会加载到PowerBI中。
注意事项
- 如果数据集中可能出现多个相同的静态标记,可调整函数:比如用
List.PositionOf(List.Reverse(源[values]), "结束标记")取最后一个结束标记的位置,或者用List.PositionOf(源[values], "起始标记", Occurrence.First)指定取第一个起始标记。
内容的提问来源于stack exchange,提问作者newBeeCoder
相关产品推荐
相关产品推荐

