[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ピボットテーブル』(初心者)
ピボットについて質問です。
製品ごとの売上表があります。
元ファイルがPDFファイルでむりやりコピペして貼り付けて編集しています
4月 5月 6月 製品A 製品B
7月 8月 9月 製品A 製品B
というファイルがあるのですが、
4月 5月 6月 7月 8月 9月 製品A 製品B
という形で整形したいです。
毎月更新があるのと、製品数が多く手作業でやるには…という感じです。
何かいい方法はありますか?
< 使用 Excel:Office365、使用 OS:unknown >
ピボットテーブルはどう関係してくるんですか?
ピボットテーブルにあうようなデータ構造は、 製品 売上月 売上高 製品A 4月 100 製品A 5月 200 ・・・・ ・・・・ のようなものではないんですか?
(γ) 2021/09/30(木) 09:10
PowerQueryがいいのかなと思います。 ピボットテーブルを使ったことなあるならご存じでしょうか、 1列目にも製品名とか列タイトルつけておいてください。 2つのテーブルをそれぞれ、クエリとして読み込み、「列のピボット解除」する 「クエリの追加」で2つのクエリを1つにする 「列のピボット」でお望みの書式になるとおもいます。 (´・ω・`) 2021/09/30(木) 09:14
手作業って例えば↓こんな感じの手順ですかね? (イメージ増幅中...)
元データ __|___A____|___B____|___C____|___D____ 1| |4月 |5月 |6月 2|製品A | 100| 20| 70 3|製品B | 10| 90| 70 4| | | | 5| |7月 |8月 |9月 6|製品A | 90| 50| 30 7|製品B | 90| 80| 40 8| | | | 9| |4月 |5月 |6月 10|製品C | 90| 80| 30 11|製品D | 50| 30| 60 12| | | | 13| |7月 |8月 |9月 14|製品C | 20| 70| 80 15|製品D | 70| 100| 90
A列をコピーして各月の間に挿入 __|___A____|___B____|___C____|___D____|___E____|___F____ 1| |4月 | |5月 | |6月 2|製品A | 100|製品A | 20|製品A | 70 3|製品B | 10|製品B | 90|製品B | 70 4| | | | | | 5| |7月 | |8月 | |9月 6|製品A | 90|製品A | 50|製品A | 30 7|製品B | 90|製品B | 80|製品B | 40 8| | | | | | 9| |4月 | |5月 | |6月 10|製品C | 90|製品C | 80|製品C | 30 11|製品D | 50|製品D | 30|製品D | 60 12| | | | | | 13| |7月 | |8月 | |9月 14|製品C | 20|製品C | 70|製品C | 80 15|製品D | 70|製品D | 100|製品D | 90
[C1:F15]をカットしてA:B列の下にペースト __|___A____|___B____|___C____|___D____ 1| |4月 | | 2|製品A | 100| | 3|製品B | 10| | 4| | | | 5| |7月 | | 6|製品A | 90| | 7|製品B | 90| | 8| | | | 9| |4月 | | 10|製品C | 90| | 11|製品D | 50| | 12| | | | 13| |7月 | | 14|製品C | 20| | 15|製品D | 70| | 16| | | | 17| |5月 | |6月 18|製品A | 20|製品A | 70 19|製品B | 90|製品B | 70 20| | | | 21| |8月 | |9月 22|製品A | 50|製品A | 30 23|製品B | 80|製品B | 40 24| | | | 25| |5月 | |6月 26|製品C | 80|製品C | 30 27|製品D | 30|製品D | 60 28| | | | 29| |8月 | |9月 30|製品C | 70|製品C | 80 31|製品D | 100|製品D | 90
同様に6月9月のデータもA:B列の下にカットしてペーストし、 __|___A____|___B____|___C____ 1| |4月 |4月 =B1 2|製品A | 100|4月 =IF(COUNTIF(B2,"*月"),B2,C1) 3|製品B | 10|4月 としてC2セルをデータ下端までフィルダウン 4| | |4月 その後、C列をコピー&値貼り付けで定数化 5| |7月 |7月 6|製品A | 90|7月 7|製品B | 90|7月 8| | |7月 9| |4月 |4月 10|製品C | 90|4月 11|製品D | 50|4月 12| | |4月 13| |7月 |7月 14|製品C | 20|7月 15|製品D | 70|7月 16| | |7月 17| |5月 |5月 18|製品A | 20|5月 19|製品B | 90|5月 20| | |5月 21| |8月 |8月 22|製品A | 50|8月 23|製品B | 80|8月 24| | |8月
オートフィルタでA列の空白を抽出して 抽出した行を削除してフィルタ解除する __|___A____|___B____|___C____ 1| |4月 |月 2|製品A | 100|4月 3|製品B | 10|4月 4|製品A | 90|7月 5|製品B | 90|7月 6|製品C | 90|4月 7|製品D | 50|4月 8|製品C | 20|7月 9|製品D | 70|7月 10|製品A | 20|5月 11|製品B | 90|5月 12|製品A | 50|8月 13|製品B | 80|8月 14|製品C | 80|5月 15|製品D | 30|5月 16|製品C | 70|8月 17|製品D | 100|8月 18|製品A | 70|6月 19|製品B | 70|6月 20|製品A | 30|9月 21|製品B | 40|9月 22|製品C | 30|6月 23|製品D | 60|6月 24|製品C | 80|9月 25|製品D | 90|9月
列見出しを適当な文字に変えてピボットテーブル使う
(白茶) 2021/09/30(木) 09:28
>元ファイルがPDFファイル
Power Query 使ってみました。 (データの取得/ファイルから/PDFから)
PDFファイル内に含まれるテーブルが 提示されたような形式だけなら 比較的簡単にできそうです。 無関係なテーブルも混在すると、 面倒になるかもしれません。 その場合は、現状通り、手作業でコピペ。
(マナ) 2021/10/01(金) 19:02
let ソース = Pdf.Tables(File.Contents("C:\○○○\△△.pdf"), [Implementation="1.3"]), フィルターされた行 = Table.SelectRows(ソース, each Text.StartsWith([Id], "Table")), 削除された他の列 = Table.SelectColumns(フィルターされた行,{"Data"}), #"1行目ヘッダー" = Table.TransformColumns(削除された他の列, {{"Data", each Table.PromoteHeaders(_, [PromoteAllScalars=true])}}), テーブル結合 = Table.Combine(#"1行目ヘッダー"[Data]), ピボット解除された他の列 = Table.UnpivotOtherColumns(テーブル結合, {""}, "属性", "値"), 変更された型 = Table.TransformColumnTypes(ピボット解除された他の列,{{"属性", type date}}), #"名前が変更された列 " = Table.RenameColumns(変更された型,{{"", "製品"}, {"属性", "日付"}}) in #"名前が変更された列 "
(マナ) 2021/10/01(金) 21:34
>フィルターされた行 = Table.SelectRows(ソース, each Text.StartsWith([Id], "Table")), ↓ フィルターされた行 = Table.SelectRows(ソース, each [Kind] = "Table"),
参考: https://community.powerbi.com/t5/Power-Query/NEED-HELP-PLEASE-PDF-Report-with-varying-number-of-pages-and/td-p/1988334
(マナ) 2021/10/03(日) 10:30
let ソース = Pdf.Tables(File.Contents("C:\○○○\△△.pdf"), [Implementation="1.3"]), フィルターされた行 = Table.SelectRows(ソース, each [Kind] = "Table"), 削除された他の列 = Table.SelectColumns(フィルターされた行,{"Data"}), #"1行目ヘッダー" = Table.TransformColumns(削除された他の列, {{"Data", each Table.PromoteHeaders(_, [PromoteAllScalars=true])}}), 追加されたカスタム = Table.AddColumn(#"1行目ヘッダー", "列数", each Table.ColumnCount([Data])), フィルターされた行1 = Table.SelectRows(追加されたカスタム, each [列数] = 4), 追加されたカスタム1 = Table.AddColumn(フィルターされた行1, "月の見出し", each List.ContainsAll(List.Transform({1..12}, each Text.From(_) & "月"), List.Range(Table.ColumnNames([Data]), 1))), フィルターされた行2 = Table.SelectRows(追加されたカスタム1, each [月の見出し] = true), テーブル結合 = Table.Combine(フィルターされた行2[Data]), ピボット解除された他の列 = Table.UnpivotOtherColumns(テーブル結合, {""}, "属性", "値"), 変更された型 = Table.TransformColumnTypes(ピボット解除された他の列,{{"属性", type date}, {"値", type number}}), #"名前が変更された列 " = Table.RenameColumns(変更された型,{{"", "製品"}, {"属性", "日付"}}) in #"名前が変更された列 "
(マナ) 2021/10/03(日) 23:15
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.