将Excel公式转换为Power Query:为Yardi导出总账添加账号列
将Excel公式转换为Power Query自定义列的实现方案
核心逻辑还原
你的Excel公式逻辑是:
若当前行B列为空,则Account No列留空;若B列非空,检查上一行L列的首字符是否为数字——是则用上一行L列的值,否则用上一行A列的值。
Power Query实现步骤
添加索引列
在Power Query编辑器中选中数据表,点击「添加列」→「索引列」→「从1开始」。这一步是为了精准引用上一行的数据。添加自定义列
点击「添加列」→「自定义列」,在编辑器中输入以下M语言代码:let currentRow = _, prevIndex = currentRow[索引] - 1, prevRow = if prevIndex >= 1 then Table.Rows(源){prevIndex - 1} else null, // 若用列名定位更稳妥(避免列顺序变动出错),直接替换成prevRow[L]、prevRow[A] prevL = if prevRow <> null then prevRow{10} else null, // L列对应索引10(从0开始计数) prevA = if prevRow <> null then prevRow{0} else null, // A列对应索引0 isPrevLFirstCharNumber = if prevL <> null and Text.Length(prevL) > 0 then Value.Is(Value.FromText(Text.Start(prevL, 1)), type number) else false in if currentRow[B] = null or currentRow[B] = "" then "" else if isPrevLFirstCharNumber then prevL else prevA
注意事项
- 优先用列名替代索引定位:比如把
prevRow{10}改成prevRow[L],prevRow{0}改成prevRow[A],避免后续列顺序调整导致逻辑失效。 - 若索引列设为从0开始,需将
prevIndex >= 1改为prevIndex >= 0,prevIndex - 1改为prevIndex。
内容的提问来源于stack exchange,提问作者Damcif
相关产品推荐
相关产品推荐

