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

如何在PowerBI中统计两指定文本行之间的列行数?

在PowerBI Desktop中统计两个固定文本行之间的行数

方法一:使用DAX(适用于单组起始/结束文本)

  1. 添加索引列锁定行顺序
    PowerBI表格默认不保证行顺序,先在Power Query编辑器中给目标表格添加索引列:

    • 打开Power Query编辑器,选中目标表格
    • 点击「添加列」>「索引列」>「从1开始」
    • 关闭并应用更改
  2. 创建计算列获取起始/结束位置
    假设表格名为文本表,目标字符串列名为内容列,起始文本为"开始标记",结束文本为"结束标记",添加两个计算列:

    起始索引 = CALCULATE(MIN('文本表'[Index]), FILTER('文本表', '文本表'[内容列] = "开始标记"))
    结束索引 = CALCULATE(MIN('文本表'[Index]), FILTER('文本表', '文本表'[内容列] = "结束标记"))
    

    若需要取最后出现的起始/结束文本,将MIN替换为MAX即可。

  3. 编写度量值统计行数
    创建度量值计算两行之间的行数(不含起始和结束行本身,若需要包含则去掉-1):

    中间行数 = 
    VAR StartIdx = MAX('文本表'[起始索引])
    VAR EndIdx = MAX('文本表'[结束索引])
    RETURN
        IF(EndIdx > StartIdx, EndIdx - StartIdx - 1, 0)
    

方法二:Power Query处理多组起始/结束文本

如果表格中存在多组起始-结束文本对,用Power Query分组统计更高效:

  1. 添加索引与标记列
    在Power Query中添加索引列后,添加两个自定义列标记起始和结束行:

    IsStart = [内容列] = "开始标记"
    IsEnd = [内容列] = "结束标记"
    
  2. 生成分组ID
    添加自定义列,通过累加给每组起始-结束对分配唯一ID:

    GroupID = List.Accumulate({0..Table.RowCount(#"添加的自定义列")-1}, 0, (state, current) => state + if #"添加的自定义列"{current}[IsStart] then 1 else 0)
    
  3. 分组统计行数

    • 点击「转换」>「分组依据」,选择GroupID作为分组列
    • 新增聚合列,操作选择「行计数」,命名为中间行数
    • 最后可根据需求调整,减去起始和结束行的数量(每组减2)

注意事项

  • 确保起始和结束文本在表格中存在,否则度量值会返回0;可添加ISBLANK判断处理空值情况
  • 若起始索引大于等于结束索引,返回0避免负数结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:52:11