三流君 ken3のmemo置き場

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

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

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

Excel パワークエリで複数の明細行を作成 カスタム列の展開で行を増やしてみた

よい、方法、教えてもらいました。

カスタム列の指定方法

↑なんだぁ、
{ 1..5 } とか 固定でやって、削ってたけど、
素直に
= { 1.. [列名] }
と書いて、展開すれば、できました・・・・

なんか、下記の記事が、とても、恥ずかしいです・・・
= { 1.. [列名] } みなさんも使ってみてね。


Excelのパワークエリを使用して、複数の明細行を作成してみた。

処理のイメージ:入力と出力イメージ

入力:

店名 種類 個数
A店 リンゴ 3
B店 バナナ 4
C店 みかん 2

上記データから、下記の個数分のデータ行を作成する

出力:

店名 種類
A店 リンゴ (3個分縦にデータを展開)
A店 リンゴ
A店 リンゴ
B店 バナナ (4個分縦にデータを展開)
B店 バナナ
B店 バナナ
B店 バナナ
C店 みかん (2個分縦にデータを展開)
C店 みかん

実行過程と操作動画:
www.youtube.com
https://www.youtube.com/watch?v=aay2IaPCWLc
目次 パワークエリの作成手順
00:00 やりたいこと、実行結果
01:40 1.テーブル表をパワークエリに取り込む
02:57 2.クエリに名前を付ける
03:36 3.カスタム列の追加
05:00 3.1 展開を選択する
06:41 4.カスタム条件式を使ってみた
11:09 5.フィルターを使用する列にフィルターをかけて、絞り込む
12:31 6.列の削除 出力結果の調整
16:25 7.不具合チェック 現在の課題を説明する

作成したクエリー
let
ソース = Excel.CurrentWorkbook(){[Name="テーブル1"]}[Content],
変更された型 = Table.TransformColumnTypes(ソース,{{"店名", type text}, {"種類", type

text}, {"個数", Int64.Type}}),
追加されたカスタム = Table.AddColumn(変更された型, "テスト連番展開", each { 1..5 }),
#"展開された テスト連番展開" = Table.ExpandListColumn(追加されたカスタム, "テスト連番展開

"),
追加された条件列 = Table.AddColumn(#"展開された テスト連番展開", "表示判定", each if [個

数] >= [テスト連番展開] then "表示" else "非表示"),
フィルターされた行 = Table.SelectRows(追加された条件列, each ([表示判定] = "表示")),
削除された列 = Table.RemoveColumns(フィルターされた行,{"表示判定", "テスト連番展開", "個

数"})
in
削除された列



01:40 1.テーブル表をパワークエリに取り込む
スライド2

Excelの表をパワークエリに取り込みます。
テーブルを選択してから、
データ から データの取得と変換 を実行する。

02:57 2.クエリに名前を付ける
スライド3

ここでは、明細と名前を付けました。

03:36 3.カスタム列の追加
スライド4

列の追加 カスタム列 で 追加する。
列名の入力
式を入れる
ポイントは、式 = { 1..5 } とテストで、固定の1-5 5個のLISTを作成。

05:00 3.1 展開を選択する
スライド5

新しい行に展開する

スライド6 結果



06:41 4.カスタム条件式を使ってみた
スライド7 列の追加 条件列

スライド8

個数 と 連番を比べて、表示・非表示の文字を作成。
スライド9 結果



11:09 5.フィルターを使用する列にフィルターをかけて、絞り込む
スライド10

列にフィルターをかける
条件は □表示 の文字列に☑を入れる
スライド11 結果



12:31 6.列の削除 出力結果の調整
スライド12 列の削除

式や条件など、出力結果で不要な列を削除して、
出力結果を調整する
スライド13 結果



16:25 7.不具合チェック 現在の課題を説明する
スライド14 不具合と注意事項

テストで展開した、行数が5行なので、
7を指定しても、5行しか、データが作成されない。

おいおい、まずいね・・・
とりあえず、1..1000とか1000個に対応。
※1000行以上データ作成するシステムならだめだね。
展開方法を考えないとなぁ・・・
※違う、行の増やし方があったはずだけど、
今日は、ここら辺で、失礼します。

Ken3 ホームページ 目次

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

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



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