何を作成したいのかよくわかりませんが、何が機能するかの一般的な例を挙げて、サンプルがエラーに遭遇する理由をいくつか推測できますか?
マッシュアップが次のように始まるとします。
let
Source = Folder.Files("c:\code\css430\Final_Project\.idea")
in
Source
そして、各セルを XML としてロードしたいと考えています。まず、1 つのバイナリ セルをクリックして、UX が自動生成するものを確認します。
let
Source = Folder.Files("c:\code\css430\Final_Project\.idea"),
#"c:\code\css430\Final_Project\ idea\_misc xml" = Source{[#"Folder Path"="c:\code\css430\Final_Project\.idea\",Name="misc.xml"]}[Content],
#"Imported XML" = Xml.Tables(#"c:\code\css430\Final_Project\ idea\_misc xml",null,1252),
#"Changed Type" = Table.TransformColumnTypes(#"Imported XML",{{"Attribute:version", Int64.Type}})
in
#"Changed Type"
興味深い点は、それが列Xml.Tables
で呼び出されたことです。[Content]
新しいステップを削除し、カスタム列を追加しますXml.Tables([Content])
:
let
Source = Folder.Files("c:\code\css430\Final_Project\.idea"),
#"Added Custom" = Table.AddColumn(Source, "Xml", each Xml.Tables([Content]))
in
#"Added Custom"
を呼び出すだけでなく、さらに多くの変換を行いたい場合はXml.Tables
、1 つのセルをクリックした後にステップを追加し、コードをコピーしてステップを削除し、すべての変換をTable.AddColumn
関数に入れます。
すべてが機能するようになったらFilePath
、ハードコードされたファイル パスの代わりに引数をリファクタリングします。
あなたの例でうまくいかないかもしれないいくつかのこと:
次のようなコード:
(FilePath, FileName) =>
let
Source = Folder.Files(FilePath),
Query1 = (FileName) => ...
それぞれが という名前のパラメーターを持つ 2 つの関数を宣言していることを意味します。FileName
これは、後で混乱するだけです。どのパラメーターを使用するかを定義する規則がありますが、異なる名前を付けるのが最善です。
Xml.Tables
の上に呼び出すと、Binary.Combine
ほとんどの場合、問題が発生します。2 つの XML ファイルのテキストをコピーして貼り付けても、新しい XML ファイルにはなりません。フォーマットエラーになります。常に最初に XML を M テーブルに変換してから、それらのテーブルを結合します (例: Table.Combine
)。バイナリ結合は、プレーンテキストと CSV バイナリの結合には問題なく機能しますが、実際にはそれらのタイプのみです。
このコードは、テーブル上の何かに関数をSource[Query1]
使用しているように見えますが、実際にはテーブルの列を見つけることを意味します (エラーが発生します)。変換関数をテーブルに適用したい場合は、おそらくあなたが望むものです。Query1
Source
"Query1"
Table.AddColumn
Table.TransformColumns