[[20230125215242]] 『パワークエリで2つの列の条件でデータ抽出したい』(みーこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『パワークエリで2つの列の条件でデータ抽出したい』(みーこ)

各ファイルのA列のデータは重複している場合があります。
パワークエリの重複削除機能を使用すると先の方のデータを残して重複側が削除されますが、B列に情報がある場合はそのデータを残してA列とB列のデータを一覧にしたい。
パワークエリの操作に何かを加えることで「希望」のような表の抽出は可能でしょうか?
各ファイル日々抽出されますが行は増減します。
ファイルA・ファイルB・ファイルC・・・・と沢山のファイルがあります。
各ファイル同じフォルダには入れていますが、実データは各ファイルとも多くの行があります。

 ファイルA  ファイルB  ファイルC
 A列 B列  A列 B列  A列 B列
 あ    1       あ  1       う  3
 い  2    う    3    え  5
 う      え    5    か  7
 え      お        き  8
 お      か      く

 「現状」の一覧 「希望」の一覧
 A列 B列  A列 B列  
 あ  1   あ  1
 い    2    い  2
 う      う    3
 え      え    5
 お      お
 か       か    7
 き 8    き    8
 く       く

「現状」はパワークエリの重複削除機能を使用することで再現できましたが、「希望」通りのデータにすることはできないでしょうか?

 現状で行った方法:データタブ→データ取得→ファイルから→フォルダーから→(該当のフォルダー)→結合→A列選択して重複の削除→閉じて読み込む
で現状の一覧にすることはできました

VBAでコードを書くことができないレベルです。

パワークエリに何かの操作を加えることでできないでしょうか?
ご教授の程よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows10 >


 ・A列を第一キーに昇順に、B列を第二キーに降順にソートしてから、
 ・いったん Table.Bufferの処理を挟み(*)
 ・A列を選択したうえで「重複の削除」を実行すればよいと思われます。

 (*)これをしないと、残る行を正確にコントロールできないようです。
    Table.Distinctのヘルプを参照してください。 

 サンプル例です。(データの取得の部分は、既に実行しているものをそのまま使って下さい。これは手抜きの例です)
 let
     ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
     変更された型 = Table.TransformColumnTypes(ソース,{{"商品", type text}, {"金額", Int64.Type}}),
     並べ替えられた行 = Table.Sort(変更された型,{{"商品", Order.Ascending}, {"金額", Order.Descending}}),
     tbl=Table.Buffer(並べ替えられた行),
     削除された重複 = Table.Distinct(tbl, {"商品"})
 in
     削除された重複
  
(γ) 2023/01/26(木) 04:07:27

 別案です
 データタブ→データ取得→ファイルから→フォルダーから→(該当のフォルダー)→結合→A列で選択してグループ化(操作は、B列の最大値)→閉じて読み込む

 グループ化すると列の順序が変わることがあるので、読み込んだあとで、A列でソートしてください。
 テーブルのオプション テーブルデザインタブの外部のテーブルデータ タブのプロパティで
 列の並べ替えを・・・を保持するにチェックを入れておくと、
 データを読み込んだタイミングでソートしてくれます 
(´・ω・`) 2023/01/26(木) 06:51:18

ありがとうございました。
できました
(みーこ) 2023/01/27(金) 09:15:50

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.