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

如何将列值用作计算列变量实现跨表条件计数?

在Power Query中为PassCount表添加统计符合条件行数的计算列

场景说明

现有两个表:

Grades表

Grade
88
91
97
92
84

PassCount表

Value
80
85
90
95

需求:为PassCount表添加名为Count的计算列,统计Grades表中Grade列值大于当前行Value的行数,预期结果如下:

ValueCount
805
854
903
951

问题分析

你尝试的两种写法存在以下问题:

  • 第一种写法中[PassValue]并非当前行的列名(实际列名为Value),且未在筛选上下文里正确捕获当前行的值
  • 第二种写法直接引用整个PassCount[PassValue]列,导致循环引用——因为计算列属于PassCount表本身,不能直接引用整个表的列进行逐行计算

解决方案

方法一:使用变量捕获当前行值(清晰易读)

在PassCount表中添加自定义列,使用以下M语言代码:

Count = 
    let
        // 捕获当前行的Value值到变量中
        CurrentThreshold = [Value],
        // 筛选Grades中Grade大于当前阈值的行
        FilteredRows = Table.SelectRows(Grades, each [Grade] > CurrentThreshold)
    in
        // 返回筛选后的行数
        Table.RowCount(FilteredRows)

方法二:使用List函数简化写法(更高效)

直接用列表操作完成统计,代码更简洁:

Count = List.Count(List.Select(Grades[Grade], each _ > [Value]))

或者用List.GreaterThan函数实现相同效果:

Count = List.Count(List.GreaterThan(Grades[Grade], [Value]))

以上两种方法都能正确引用当前行的Value作为筛选阈值,避免循环引用和未找到列的问题,最终得到预期的统计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 08:00:14