我正在努力将Excel流程转换为电源查询自定义列,其当前的工作方式是通过引用上面的单元格来写入当前单元格。
Excel公式= IF(G2<>“”,IF(I2<>“,I2,”“),H1) 在本例中,将在H2中输入。它基本上说当我的单元格左边和右边的值时,我会将单元格的值写到右边,直到我看到左边的一个单元格没有与单元格上的单元格合作。是的,然后回到null。这可以运行几千行,可以触发几十次以修补小孔。 最终结果基本上看起来像这样,中间列是我的新数据(为了视觉原因,我使用零而不是“”或null):
- 0 0 0 - 写入空白
- 0 0 0 - 写入空白
- x 1 1 - 向右写入值
- 0 1 0 - 写入
以上的值- 0 1 0 - 写入
以上的值- x 0 0 - 写入空白
- 0 0 0 - 写入空白
醇>
现在我必须在执行查询链之前编写公式,我想将此步骤合并到自定义列中,但我还没有找到解决方案。我是m代码和电源查询以及堆栈溢出的新手,但到目前为止,我已经能够执行除了这个之外我需要的每个步骤。
答案 0 :(得分:4)
我的建议是一种不同的方法:
下面的查询基于Table1,其中包含G,H和I列,它们创建了前两个步骤。
删除下一列H.
如果G和I都是<>,则添加新的列H,最初具有来自I的值。 null,否则如果G = null则为空(稍后将为null)。
接下来,新列H被填满。
下一步“”替换为null。
最后列重新排序。
编辑:通过UI完成的所有步骤;选择“添加自定义列”
后,在公式框中输入新列的公式(不带“每个”)user@mongo:/# cat /etc/mongod.conf
net:
bindIp: 127.0.0.1
port: 27017
答案 1 :(得分:0)
您可以添加索引列,然后访问当前索引减去1的单元格。例如,如果添加了索引列Index
并将其命名为步骤Table
,则可以访问该值在上一行的Column
列中,您可以在自定义公式中使用此表达式:
if [Index] > 0 then Table[Column]{[Index] - 1} else some_default_value
some_default_value
将是您想要的第一行单元格。在您的情况下,这可能是null
。我们需要if语句,因为表中没有行-1。