在电源查询自定义列中引用上面的单元格

时间:2017-01-24 18:30:12

标签: excel excel-formula powerquery

我正在努力将Excel流程转换为电源查询自定义列,其当前的工作方式是通过引用上面的单元格来写入当前单元格。

Excel公式= IF(G2<>“”,IF(I2<>“,I2,”“),H1) 在本例中,将在H2中输入。它基本上说当我的单元格左边和右边的值时,我会将单元格的值写到右边,直到我看到左边的一个单元格没有与单元格上的单元格合作。是的,然后回到null。这可以运行几千行,可以触发几十次以修补小孔。 最终结果基本上看起来像这样,中间列是我的新数据(为了视觉原因,我使用零而不是“”或null):

  
      
  1. 0 0 0 - 写入空白
  2.   
  3. 0 0 0 - 写入空白
  4.   
  5. x 1 1 - 向右写入值
  6.   
  7. 0 1 0 - 写入
  8. 以上的值   
  9. 0 1 0 - 写入
  10. 以上的值   
  11. x 0 0 - 写入空白
  12.   
  13. 0 0 0 - 写入空白
  14.   

现在我必须在执行查询链之前编写公式,我想将此步骤合并到自定义列中,但我还没有找到解决方案。我是m代码和电源查询以及堆栈溢出的新手,但到目前为止,我已经能够执行除了这个之外我需要的每个步骤。

2 个答案:

答案 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。