PowerQuery:添加多个列

时间:2016-07-07 17:07:39

标签: powerbi powerquery

小介绍。

最近的任务:添加15个具有相同值的列。

解决方案:我没有连续使用Table.AddColumn,而是应用了以下方法。

= Table.RemoveColumns(
    Table.SplitColumn(
        Table.AddColumn(TableFromPreviousStep, "q", each "1")
        , "q"
        , Splitter.SplitTextByDelimiter(" ")
    , {"temp","q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8", "q9", "q10", "q11", "q12", "qY+1", "qY+2", "qY+3"} 
    , 1)
, {"temp"})

解释:首先,我将带有任何默认文本值的名为“q”的临时列添加到表中。然后将此列拆分为空格作为分隔符(这就是它需要文本的原因),但由于没有空格,因此返回尽可能多的列,因为它们的名称数量。第一列保留原始值,应在后续步骤中删除。所有其他新列的默认值均为1.

问题: 我当前的任务是创建多个具有值的列,由相同的公式计算。我尝试与上面相同的方法,但我没有使用任何公式作为默认值。我得到的最好的是包含公式的结果列。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您可以使用List.Accumulate向表中添加任意数量的列。如果您有一个包含Source列的表q,则可以使用以下公式创建15个具有相同值的列:

List.Accumulate({1..15}, Source, (state, current) => Table.AddColumn(state, "q" & Number.ToText(current), each [q]))

累积将循环遍历列表中的每个数字,将“q number ”列添加到使用Table.AddColumn构建的表中。这适用于任何值和任意数量的行。