将Excel公式转换为Power Query中的M代码

时间:2019-07-12 20:19:59

标签: excel m

我正在尝试将此Excel公式转换为Power Query Code。而且我找不到一种轻松将值与上一行进行比较的方法。

D3=IF(EXACT(O3,O2),IF(AND(RIGHT($R3,3)="KA1", LEFT($W3,3)="YSC"), TRIM(MID($W3,4,14)), IF(D2<>"Bendix Code to Customer", D2, "")),"")

1 个答案:

答案 0 :(得分:0)

  • 我认为M / Power Query语言默认情况下区分大小写,因此If(EXACT(a,b),会转换为类似if a = b then的内容
  • IF(AND(RIGHT($R3,3)="KA1", LEFT($W3,3)="YSC"),转换为类似if Text.EndsWith(a, "KA1") and Text.StartsWith(b, "YSC") then
  • TRIM(MID($W3,4,14))可以翻译为Text.Trim(Text.Middle(a, 4, 14))
  • IF(D2<>"Bendix Code to Customer", D2, "")可以翻译为:
    • if a <> "Bendix Code to Customer" then a else "",如果您要区分大小写
    • if Comparer.OrdinalIgnoreCase(a, "Bendix Code to Customer") = 0 then a else ""如果要区分大小写(或者总是可以只用Text.Upper/Lower来区分大小写,然后使用<>
  • 将当前行与紧接在上方的行进行比较在Power Query中有点尴尬。一种常见的方法是在联接操作期间使用辅助索引列作为联接键将表与其自身联接。

我认为以上内容可以为您提供一个起点,但是由于您的问题不够详细,您需要自己解决问题。