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

如何分组语义化版本层级?Power Query计数异常求助

解决语义化版本层级计数问题及分组验证

问题分析

你当前使用的公式=Table.AddColumn(get_prefix, "count_digit", each List.Count(Text.Split([Prefix], "."))),会把10.拆分后得到{"10", ""},空字符串被计入计数导致结果为2,但实际层级应为1。核心问题是拆分后产生的末尾空值干扰了计数。

修正后的计数公式

方法1:移除末尾的点再拆分(适配你的版本格式)

通过Text.TrimEnd去掉字符串末尾的所有点,从源头上避免空字符串产生,再拆分计数:

=Table.AddColumn(get_prefix, "count_digit", each List.Count(Text.Split(Text.TrimEnd([Prefix], "."), ".")))

方法2:拆分后过滤空字符串(兼容特殊格式)

如果存在中间有空值的特殊情况(比如2..1),可以拆分后用List.RemoveEmptyItems过滤空值再计数:

=Table.AddColumn(get_prefix, "count_digit", each List.Count(List.RemoveEmptyItems(Text.Split([Prefix], "."))))

分组验证总计与小计

得到正确层级计数后,可按一级版本分组验证结构一致性:

  1. 先添加一级版本列,提取每个版本的第一部分:
=Table.AddColumn(previous_table, "Level_1", each Text.BeforeDelimiter(Text.TrimEnd([Prefix], "."), "."))
  1. 按Level_1分组,统计各层级条目数量:
=Table.Group(previous_table, {"Level_1"}, {
    {"总条目数", each Table.RowCount(_), Int64.Type},
    {"二级条目数", each List.Count(List.Select([count_digit], (x)=>x=2)), Int64.Type},
    {"三级条目数", each List.Count(List.Select([count_digit], (x)=>x=3)), Int64.Type}
})

验证逻辑:每个一级版本的总条目数 = 1(一级版本自身) + 二级条目数 + 三级条目数,以此确认总计与小计是否一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 03:55:29