三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

Excel AとBの組み合わせ全てを展開 PowerQueryを使用して作成する方法 カスタム列追加 テーブル結合 などを説明

エクセルでA,Bデータの組み合わせを全て取得したい時、どうする?
Excel PowerQuery初心者の操作方法・作成方法の動画です。
二つの表を組み合わせて結果を全て取得、固定のカスタム列を追加して作成してみました。

youtu.be
https://youtu.be/0B3aSCOKd2I
目次
00:00 0.あいさつ やりたいこと
00:45 1.データの準備シートにテーブルを二つ準備する
01:09 2.仕掛け、トリック1として、カスタム列に固定の値を追加
01:27 2.1 作成した表にパワークエリーで接続する
03:04 2.2 カスタム列を追加する
05:43 3.テーブルを結合します
07:51 3.1 表示する(出力する)フィールドを選択します
11:34 4.タネあかし、仕掛けの説明
12:27 4.1 普通につなげて、販売明細を作ります。
15:14 4.2 つなげるデータを間違えてみる
18:13 5.よくある質問 組み合わせの問題をやってみる

#ms365 #エクセル #パワークエリ
#Excel #PowerQuery
#組み合わせ #展開 #カスタム列
#クエリー #テーブル結合 #組み合わせ全て
#初心者 #作り方

0.あいさつ
少し、面白そうだったので、チャレンジしてみてハマった話。
( 隙あれば自分語り 自己満足かよ・・・)

知恵袋の質問
detail.chiebukuro.yahoo.co.jp

PowerQuery(パワークエリ)に関する質問になります。
宜しくお願い致します。

テーブルA
山形店
弘前
仙台店

テーブルB
商品A / 150円 / 10個
商品B / 200円 / 20個
商品C / 300円 / 30個


上記2つのテーブルがあったとし、作成したいのが

作成したいテーブル
山形店 / 商品A / 150円 / 10個
山形店 / 商品B / 200円 / 20個
山形店 / 商品C / 300円 / 30個
弘前店 / 商品A / 150円 / 10個
弘前店 / 商品B / 200円 / 20個
弘前店 / 商品C / 300円 / 30個
仙台店 / 商品A / 150円 / 10個
仙台店 / 商品B / 200円 / 20個
仙台店 / 商品C / 300円 / 30個

を作成したいのですが可能でしょうか?

回答にあった

>テーブル1にカスタム列の追加でテーブル2を参照して それを展開すれば
>可能です。

が、気になったので、やってみた。

1.データの準備シートにテーブルを二つ準備する 00:45
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=00m45s

テーブルA
店名
山形店
弘前
仙台店

テーブルB
商品名 / 単価 / 数量
商品A / 150円 / 10個
商品B / 200円 / 20個
商品C / 300円 / 30個

勝手にフィールド名をプラスしたのは内緒です。
って、言ってるじゃん。

2.仕掛け、トリック1として、カスタム列に固定の値を追加 01:09
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=01m09s

左右の結合で使いたいので、
カスタム列に普通はやらない、
固定の値・同じ値
1を追加する追加する。
(計算列・演算フィールドなんだけど、計算しない固定値の1をセットする)

2.1 作成した表にパワークエリーで接続する

作り方、いろいろあると思いますが、
Excel上のデータを表にして、
パワークエリーのテーブルを作成します。
※表=テーブルだから、なんて説明してんだが・・・

図001 表をパワークエリのテーブルにする

データ メニューから
データの取得 (左上のアイコン)
その他のデータソース (から)
テーブル または 範囲 (から)
を選択して、接続する

2.2 カスタム列を追加する 03:04
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=03m04s

列の追加
カスタム列
を選択して(選択すると)

式の入力画面が表示されます。式のフィールドなので計算列・演算フィールドってよく言ってます。
(私だけの方言かもしれないけど、計算列・演算フィールドって言ってます、言い間違ったらごめん)

図002 カスタム列の追加で=1 固定の列を作成

ここで、
ID = 1
と固定の値にする。※なぜだ・・・

2.3 テーブル・接続の名前を変更して閉じる

名前が テーブル1 とか なっているので、
わかりやすい 接続名に変更します。
(と、いいつつ、テーブルA,Bと付けました)

2つの接続をまず、作ります。
(※ここまでで、疲れたよ・・・続きは明日だね。と、心の声と視聴者の声を無視して)

3.テーブルを結合します 05:43
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=05m43s

つなげたいデータがそろったので、

図003 テーブルの結合 マージを行う

データ メニューから
データの取得 (左上のアイコン)
クエリの結合
マージ
を選択します。

図004 固定のID:1を左外部で結合する

テーブルA
のカスタム列 ID(固定の値1)

テーブルB
のカスタム列 ID(これも固定の値1)

左外部 (左側1件と右n件の結合?イメージかな※と言っても、今回は細工でn×nにするんだけど)

で、結合します。

テーブルBが展開になっていることを確認します。
↑デフォルトが展開だと思いますが、確認する

3.1 表示する(出力する)フィールドを選択します 07:51
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=07m51s

おっと、その前に、表示する出力するフィールドを選択します。

図005 展開後、表示列の調整

お疲れ様です。
これで、
それっぽくできたかなぁ。

アレンジして使ってみてください。
では、またぁ。

4.タネあかし、仕掛けの説明 11:34
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=11m34s

別にトリック、タネ、があるわけじゃないんだけど、

社員マスター
担当者ID 社員名 所属グループID 備考
1 相川 1 1課リーダー
2 伊藤 1
3 宇野 1
4 遠藤 2 遊軍巡回セールス担当


販売データ
明細ID 日付 販売者 品名 単価 数量 備考
1 2月25日 2 リンゴ 90 10
2 2月25日 1 みかん 50 150 さすがリーダー
3 2月25日 1 バナナ 30 50 と備考欄で
4 2月26日 1 リンゴ 100 200 ゴマすってみた
5 2月27日 3 みかん 55 15
6 2月27日 4 バナナ 33 20


と、ありがちな、データを用意しました。

4.1 普通につなげて、販売明細を作ります。 12:27
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=12m27s

担当者別に販売データの表が見たかったので、
社員マスターの担当者ID

販売データの販売者(売った人のID)
をつなげて、表を作ります。

だるいな、パワークエリにする方法は、
知ってるので(※ほかのわかりやすい動画見るので)、
仕組みだけ教えてよ

↑なんて、声を無視して(いつもの準備不足なだけなんだけど)

4.2 つなげるデータを間違えてみる 15:14
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=15m14s

通常運転はできたので、
次は、つなげるデータを間違えてみます。

社員マスターの担当者ID ← を間違えて、
所属グループID で結合すると・・

販売データの販売者(売った人のID)

あら不思議、データが増えた・・・?

↑このミスを応用した感じかなぁ。

5.よくある質問 組み合わせの問題をやってみる 18:13
https://www.youtube.com/watch?v=0B3aSCOKd2I&t=18m13s

図006 よく見かける質問 組み合わせ全て チャレンジしてみた

毒を食らえば皿まで、、、
ここまで、ひっぱったので、
最後に(※ホントに最後です)

組み合わせを全て出力したい・・・なんて、質問があると思います

データ1
A
B
C

データ2


これを
A-あ
A-い
A-う
B-あ
B-い
B-う
C-あ
C-い
C-う

とか応用できると思います。

パワークエリ作成の参考となれば幸いです。。。
(SQLとかクエリとか、結合・展開、、奥が深いですね・・・)

※下記、冒頭の動画と一緒です。本文が長くなっているので、
末尾にも目次と動画のリンクを置きました
Excel パワークエリでAとBの組み合わせ 全て を展開する方法 カスタム列を追加してテーブルを結合してみた PowerQuery初心者の操作方法 - YouTube
目次
00:00 0.あいさつ やりたいこと
00:45 1.データの準備シートにテーブルを二つ準備する
01:09 2.仕掛け、トリック1として、カスタム列に固定の値を追加
01:27 2.1 作成した表にパワークエリーで接続する
03:04 2.2 カスタム列を追加する
05:43 3.テーブルを結合します
07:51 3.1 表示する(出力する)フィールドを選択します
11:34 4.タネあかし、仕掛けの説明
12:27 4.1 普通につなげて、販売明細を作ります。
15:14 4.2 つなげるデータを間違えてみる
18:13 5.よくある質問 組み合わせの問題をやってみる

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)