如何在Power BI中通过公式扩展硬编码表格并按指定规则生成行值?
在Power BI中扩展按5%递减的表格方法
这里提供两种常用实现方式,可根据操作习惯选择:
方法一:使用DAX创建计算表
假设你手动创建的初始表名为初始表,包含序号和百分比值两列,可通过DAX公式生成扩展后的表格:
- 点击
建模选项卡 →新建表 - 输入以下DAX代码(可按需调整
目标总行数):
扩展表 = VAR 目标总行数 = 15 // 替换为你需要的总行数 VAR 初始数据 = SELECTCOLUMNS(初始表, "序号", [序号], "百分比值", [百分比值]) VAR 后续行数据 = ADDCOLUMNS( SEQUENCE(目标总行数 - COUNTROWS(初始表), COUNTROWS(初始表)+1, 1), "百分比值", LOOKUPVALUE(初始表[百分比值], 初始表[序号], [Value]-1) * 0.95 ) RETURN UNION(初始数据, 后续行数据)
- 生成后,可将
百分比值列格式设置为百分比,保留两位小数。
方法二:使用Power Query编辑器生成
若偏好可视化操作,Power Query的方式更灵活:
- 点击
数据选项卡 → 找到你的初始表,点击编辑查询进入Power Query编辑器 - 点击
转换选项卡 →添加列→索引列,选择从0开始 - 点击
主页选项卡 →高级编辑器,替换原有代码为以下内容(可调整停止条件[当前值] > 0.001,即值小于0.1%时停止生成):
let 源 = 初始表, 添加索引 = Table.AddIndexColumn(源, "索引", 0, 1, Int64.Type), 初始值列表 = List.FirstN(添加索引[百分比值], 2), 生成递减值 = List.Generate( () => [当前值 = 初始值列表{1}, 当前索引 = 2], each [当前值] > 0.001, // 可自行修改停止条件 each [当前值 = [当前值] * 0.95, 当前索引 = [当前索引] + 1], each [当前值] ), 合并所有值 = 初始值列表 & 生成递减值, 转换为表格 = Table.FromList(合并所有值, Splitter.SplitByNothing(), {"百分比值"}), 添加序号列 = Table.AddIndexColumn(转换为表格, "序号", 1, 1, Int64.Type) in 添加序号列
- 点击
关闭并应用,即可在数据模型中得到扩展后的表格。
内容的提问来源于stack exchange,提问作者Frank
相关产品推荐
相关产品推荐

