2016-07-07 43 views
0

少し紹介。PowerQuery:複数の列を追加する

最近のタスク:同じ値を持つ15個の列を追加します。

Solution: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

質問のデフォルト値を持っている: 私の現在のタスクが同じ式により算出した値を持ついくつかの列を、作成しています。私は上記と同じアプローチを試みますが、私はデフォルト値として何らかの公式を使用しません。私が得意とするのは、数式を含む結果の列です。

何か助けていただければ幸いです。

答えて

2

List.Accumulateを使用して、テーブルにいくつでも列を追加できます。あなたが列qとテーブルSourceを持っている場合は、この式と同じ値で15列を作成することができます

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

蓄積するリスト内のそれぞれの数をループ、列を追加する「Q 数を "をTable.AddColumnで構築していたテーブルに追加します。これは任意の値と任意の数の行で動作します。

+0

ありがとう、アレハンドロ!私が理解しているように、式(例の各[q])はすべての新しい列で同じですか? – Eugene

+0

そして、リスト全体をテキストに変換するにはどうすればいいですか(非数値の列名を持つ別のリストと結合したいのですが)? – Eugene

+0

[q]はその列の値です。したがって、各行の各列は同じ値を持ちますが、行間の値は異なる場合があります。リストをテキストに変換するには、リストの各値をテキスト値にするか、リストをテキスト値として表現しますか?前者の場合は、 'Text.From'を使います。 –

関連する問題