[[20201225160830]] 『Power Query カスタム列(複数条件)』(ペペロンチーノ) ページの最後に飛ぶ

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

 

『Power Query カスタム列(複数条件)』(ペペロンチーノ)

初心者です。データ数が多いのでPower BIのPower Queryを使用して以下の処理を行いたいです。

マスター表とリストの[名前]が一致するが[ID]は一致しない場合はカスタム列にNGを入れる。
その他はカスタム列に[ID]をコピーする。

〇マスター
ID 名前
110 田中
130 松井

〇リスト
ID 名前 住所 ポイント
100 山田 東京都 999
105 高島 愛知県 1000
110 田中 静岡県 100
115 松井 福島県 50
120 田中 和歌山県 20
125 鈴木 山形県 130
130 松井 香川県 200

〇リスト(カスタム列追加イメージ)
ID 名前 住所 ポイント カスタム列
100 山田 東京都 999 100
105 高島 愛知県 1000 105
110 田中 静岡県 100 110
115 松井 福島県 50 115
120 田中 和歌山県 20 NG
125 鈴木 山形県 130 125
130 松井 香川県 200 NG

よろしくお願いいたします。

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


130 松井 香川県 200 NG
115 松井 福島県 50 115
おかしくないかしら

(事務員5年) 2020/12/25(金) 17:44


ご指摘ありがとうございます。
下記、正解のイメージです。

〇リスト(カスタム列追加イメージ)
ID 名前 住所 ポイント カスタム列
100 山田 東京都 999 100
105 高島 愛知県 1000 105
110 田中 静岡県 100 110
115 松井 福島県 50 NG
120 田中 和歌山県 20 NG
125 鈴木 山形県 130 125
130 松井 香川県 200 130
(ペペロンチーノ) 2020/12/25(金) 17:55


Power BIは使ったことありませんが

1)マージしてから
2)展開
3)条件列の追加

ではだめですか。

(マナ) 2020/12/25(金) 19:13


アドバイスありがとうございます。

1) マージ(名前+ID)
2) 展開

ここからの条件が浮かびません…

ID 名前 住所 ポイント マスター.ID.1 マスター.名前
100 山田 東京都 999
105 高島 愛知県 1000
110 田中 静岡県 100 110 田中
115 松井 福島県 50
120 田中 和歌山県 20
125 鈴木 山形県 130
130 松井 香川県 200 130 松井

(ペペロンチーノ) 2020/12/25(金) 19:31


エクセルのPower Queryエディターだと
「列の追加」タブに「条件列」というのがあるんですが、
Power BIにはありませんか?

(マナ) 2020/12/25(金) 19:47


条件列はあります。
どのように指定すれば狙いのカスタム列になるでしょうか。
(ペペロンチーノ) 2020/12/25(金) 19:58

こんな感じでできませんか。
値と出力には、「列の選択」にします。

       列名     演算子          値              出力
 条件 [名前]  指定の値に等しい  [マスター.名前]  [ID]

 それ以外の場合
   NG

(マナ) 2020/12/25(金) 20:10


返信が大変遅くなって申し訳ございません。

教えて頂いた内容で試してみました。
必要なところもNGになってしまいます。

〇結果
ID 名前 住所 ポイント カスタム列
100 山田 東京都 999 NG
105 高島 愛知県 1000 NG
110 田中 静岡県 100 110
115 松井 福島県 50 115
120 田中 和歌山県 20 120
125 鈴木 山形県 130 NG
130 松井 香川県 200 130

〇希望する結果
ID 名前 住所 ポイント カスタム列
100 山田 東京都 999 100
105 高島 愛知県 1000 105
110 田中 静岡県 100 110
115 松井 福島県 50 NG
120 田中 和歌山県 20 NG
125 鈴木 山形県 130 125
130 松井 香川県 200 130
(ペペロンチーノ) 2021/01/05(火) 11:03


マスターのサンプルデータも提示してください
そうすれば、こちらでも確認できます。

 >[名前]が一致するが[ID]は一致しない場合はカスタム列にNGを入れる。
 >その他はカスタム列に[ID]をコピーする。

 その他とは?

 1)[ID]が一致するが[名前]は一致しない場合
 2)[ID][名前]ともに一致する場合
 3)[ID][名前]ともに一致しない場合

2)以外はNGでよいなら、[ID]だけの照合でもよいです。
そうすれば、展開後の結果で、
NGになる理由が、わかると思います。

(マナ) 2021/01/05(火) 13:28


条件は[名前]が一致するが[ID]は一致しない場合 NG それ以外はID です。
マスター、リスト、希望する結果を下記の通りです。

〇マスター
ID 名前
110 田中
130 松井

〇リスト
ID 名前 住所 ポイント
100 山田 東京都 999
105 高島 愛知県 1000
110 田中 静岡県 100
115 松井 福島県 50
120 田中 和歌山県 20
125 鈴木 山形県 130
130 松井 香川県 200

〇希望する結果
ID 名前 住所 ポイント カスタム列
100 山田 東京都 999 100
105 高島 愛知県 1000 105
110 田中 静岡県 100 110
115 松井 福島県 50 NG
120 田中 和歌山県 20 NG
125 鈴木 山形県 130 125
130 松井 香川県 200 130

何度も申し訳ございません。
(ペペロンチーノ) 2021/01/05(火) 14:35


マスターに「100 山田」はないのですか。
それとも、マスターにない場合は、

>それ以外

に該当するということでしょうか?

(マナ) 2021/01/05(火) 15:20


マスターに無いのはそれ以外です。
(ペペロンチーノ) 2021/01/05(火) 15:34

>115 松井 福島県 50 NG

これは、なぜNGなのですか?
「それ以外」に該当しないのですか。

(マナ) 2021/01/05(火) 16:31


福島県と香川県に、松井さんがいる可能性はないのでしょうか
という意味です。

(マナ) 2021/01/05(火) 16:40


色々とご検討頂きましてありがとうございます。
マナさんのご指導をヒントに色々と調べてみた結果、自己解決できました。

〇解決方法
 条件列を追加した後に、詳細エディターで条件を編集する。

1. 条件列追加

       列名     演算子          値              出力
条件 [名前]  指定の値に等しい  [マスター.名前]  [ID]

それ以外の場合

   NG

2. 詳細エディターで条件をカスタマイズする。

each if [名前] = [マスター.名前] and [ID] <> [マスター.ID] then "NG" else [ID]

※マナさんのご指摘の可能性はありそうなので、実データで確認してみます。
 長期間にわたり本当にありがとうございました!
(ペペロンチーノ) 2021/01/05(火) 17:05


こんな感じではだめですか
マスターにないものは、未登録と表示

 1)ID]を照合列として、マージ
 2)展開
 3)条件列の追加

                 列名     演算子          値              出力
 条件            [名前]  指定の値に等しい  [マスター.名前]  [ID]
 条件(上記…) [ID]    指定の値に等しい   null            未登録

 それ以外の場合
   不一致

(マナ) 2021/01/05(火) 18:56


凄く参考になります。
このアイデアを元に色々と工夫してみます。

マナさん何度もありがとうございました!

(ペペロンチーノ) 2021/01/06(水) 09:33


コメント返信:

[ 一覧(最新更新順) ]


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