私は最近、さまざまなソースからデータを取得するためにPowerQueryに切り替えました。既存のデータを "masterEntries"というテーブルにロードしました。Power Query to Existing Table
「masterEntries」の各ソースの最後のレコードをチェックする関数を呼び出し、新しいレコードのみを取得するクエリです。
let
Source = Excel.CurrentWorkbook(){[Name="formsMaster"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"FormName", type text}, {"Form", type text}, {"LastEntry", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each formEntries([FormName],[LastEntry])),
#"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"EntryId", "Field1", "Field2", "Field3", "Field5", "DateCreated"}, {"EntryId", "Field1", "Field2", "Field3", "Field5", "DateCreated"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Form", "LastEntry"}),
in
#"Removed Columns"
このクエリは、新しいテーブルにデータをロードします。代わりに、私は "masterEntries"にデータを追加したいと思います。
私はVBAではなくPowerQueryでこれを実行しようとしています。 PowerQueryには、2つ以上のクエリ/結果を新しいテーブルに結合できる「クエリの追加機能」があります。
上記のクエリ( "latestEntries")から結果のテーブルを既存のテーブル( "masterEntries")に追加する新しいクエリでも可能です。
PowerQueryでどのように行うことができますか?
EDIT
- 私の元データ( "masterEntries")は、手動でロードしました。 400K以上のレコードを持つ大きなテーブルです。私はそれが助けに行く場合は、クエリを使用して読み込むことができます。
- 「latestEntries」が実行されるたびに、「masterEntries」にあるレコードがチェックされ、異なるソースから新しいエントリのみがフェッチされます。
- パワークエリーのAppend Queryメソッドは単なる接続です。それはレコードを永久に追加しません。つまり、「latestEntries」が新しいレコードセットを取得すると、「masterEntries」は、「latestEntries」の以前の実行にあったレコードを失います。
あなたが第一のデータソースと負荷への接続を作成する必要がありますそれ。その後、2番目の接続を作成する必要があります。編集が終了したら、 'Home'リボンから' Append Queries'に行き、1st connectionを選択してください。次に、データをソートする必要があります。非常に簡単なプロセス、彼らはそれで素晴らしい仕事をしてきました。 – zipa
2番目の接続は、新しいテーブルにデータをロードします。既存のテーブルにデータを追加しません。私は、統合されたデータを持つ新しいテーブルを望んでいません。もしあなたが間違っていたら私を訂正してください。 – eshwar
それはありますが、 'Append Queries'を適用すると、名前が示すとおり正確に実行され、追加された解決策が得られます。 – zipa