Power Query中排序数据的条件增量列实现方案问询
在Excel中实现条件增量列(ConditionalIncremental)
方法1:Power Query(推荐,支持批量刷新)
适合数据量较大或需要重复更新的场景,步骤如下:
- 选中你的数据区域,点击数据选项卡 → 从表格/区域(确保勾选"我的表格有标题"),进入Power Query编辑器。
- 替换编辑器中的默认代码为以下内容(注意将
表1替换为你的实际表名):
let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 添加索引 = Table.AddIndexColumn(源, "索引", 0, 1, Int64.Type), 生成增量列 = List.Accumulate(添加索引[boolean], {1}, (累加状态, 当前值) => 累加状态 & {if 当前值 = true then List.Last(累加状态) + 1 else List.Last(累加状态)} ), 合并到原表 = Table.FromColumns(Table.ToColumns(添加索引) & {生成增量列}, Table.ColumnNames(添加索引) & {"ConditionalIncremental"}), 清理索引列 = Table.RemoveColumns(合并到原表,{"索引"}) in 清理索引列
- 点击关闭并上载,即可得到目标结果表。
逻辑说明:通过List.Accumulate遍历boolean列,初始值设为{1},逐行判断:若当前boolean值为true,则在上一行增量值基础上加1;否则直接继承上一行的增量值。
方法2:Excel公式(适合小数据集快速处理)
假设boolean列在B列,ConditionalIncremental列从C2单元格开始(C1为表头),在C2输入以下公式:
=IF(ISBLANK(B2),1,IF(B2=TRUE,C1+1,C1))
输入完成后下拉填充至所有数据行即可。
逻辑说明:首行boolean为Null时返回初始值1;后续行若boolean为true则取上一行的增量值+1,否则保持上一行的值。
内容的提问来源于stack exchange,提问作者David G
相关产品推荐
相关产品推荐

