Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
たくさんのクロス表を1つのクロス表に
投稿日時: 26/03/04 21:37:50
投稿者: toma100

こんにちは、よろしくお願いいたします
 
以下のような、ブックがあります
どれも形は同じでです
 
Aブック
商品    あ    い
A    100    200
B    100    300
C    150    400
 
Bブック
商品    あ    い
A    300    100
B    200    300
C    150    150
 
で、1つのブックにまとめたいのですが
商品    あ    い
A    400    300
B    300    600
C    300    550
 
統合だと、ブックが追加されたとき、また設定しなければならないですが
今後たくさん増えてくるので、パワークエリでできますでしょうか?
 
クエリでやる場合、
それぞれのブックをテーブルの形に変更
それを結合してから、クロス表に変更
 
となるかと思うのですが、ブックがたくさんあると
それぞれのブックをテーブル形式に1つずつ変更しなければならないので
一度にできる方法はございますでしょうか?
よろしくお願いいたします(__)
 
 

回答
投稿日時: 26/03/05 07:33:17
投稿者: んなっと

こういう場合必ず一つのフォルダーにまとめておいて、フォルダー内のすべてのブックを統合するようにします。
例えば C:\リスト\DL というフォルダー内にある複数ブックを統合する場合
 
 データ
→データの取得
→その他のデータソースから
→空のクエリ
→詳細エディター
→以下を貼り付け
 
let
    Src = Folder.Files("C:\リスト\DL"),
    Add = Table.AddColumn(Src, "Tbl", each Excel.Workbook([Content],true)),
    Exp = Table.ExpandTableColumn(Add, "Tbl", {"Data", "Item"}),
    Del = Table.SelectColumns(Exp,{"Name", "Data"}),
    Exp2 = Table.ExpandTableColumn(Del, "Data", Table.ColumnNames(Exp{0}[Data]))
in
    Exp2
 
 
※C:\リスト\DLの部分はそちらの環境にあわせてください。

回答
投稿日時: 26/03/05 08:06:43
投稿者: んなっと

上の操作で統合出来たら、合計は簡単です。「商品」でグループ化しましょう。

投稿日時: 26/03/05 18:37:00
投稿者: toma100

んなっと様
 
いつもありがとうございます!!
 
会社なので、パートのため、長い記述はできない立場なのです(´;ω;`)
記述なしではやはり難しいでしょうか?

回答
投稿日時: 26/03/05 21:35:13
投稿者: んなっと

「会社のセキュリティの方針でVBAを使うのはだめ」というのであれば理にかなっています。
「会社の方針で、引き継ぎ対策のため詳細エディターを使うのはだめ」というのはただの勉強不足です。
 
1. データの取得
 
 [データ]>[データの取得] > [ファイルから] > [フォルダーから] の順に選択します。
 フォルダーパスを入力するダイアログが表示されるので、参照ボタンから選択し、
 [開く] をクリックします。
 
2. データの結合と変換
 
 フォルダー内のファイル一覧が表示されたら、それらを結合します。
 指定したフォルダーに入っているファイルの一覧が表示されたウィンドウが出ます。
 ウィンドウ右下にある [結合] ボタンの横の矢印(▼)をクリックし、
 [データの結合と変換] を選択します。
 「ファイルの結合」ダイアログボックスが表示されます。
 左側のペインから、各ブックでデータが入っているシート名(例:Sheet1)を選択します。
 (右側にデータのプレビューが表示されます)
 [OK] をクリックします。
 
3. PowerQueryエディターでの微調整
 
 左側のペインの[ヘルパークエリ]の下の [fxファイルの変換]をクリックします。
 中央の式の
  ソース = Excel.Workbook(パラメーター1, null, true),
 の行を
  ソース = Excel.Workbook(パラメーター1, true, true),
 に変更します。これにより、1行目を列見出しに昇格させることができます。
 左側のペインの[その他のクエリ]の一番下のクエリを選択します。
 すべてのブックが結合されていることを確認してください。
 
 
1.2.はGeminiの回答より引用。3.だけ追加しました。非常に説明の作成が面倒です。
なぜこんな面倒なことになったのですか?

投稿日時: 26/03/05 22:19:53
投稿者: toma100

んなっと様
 
ありがとうございます!!
ご面倒おかけしてもうしわけございません(´;ω;`)
 
やってみたのですが
 
>左側のペインの[その他のクエリ]の一番下のクエリを選択します。
>すべてのブックが結合されていることを確認してください。
 
ここで、クエリがエラーになってしまいます
 
以下のようなエラーメッセージです
 
Expression.Error: テーブルの列 '商品' が見つかりませんでした
 

回答
投稿日時: 26/03/05 23:46:12
投稿者: んなっと

フォルダーに余計なブックが含まれていたらうまくいきません。
その前に、これに対する回答は?

引用:
なぜこんな面倒なことになったのですか
?

投稿日時: 26/03/06 06:44:07
投稿者: toma100

んなっと様
 
ありがとうございます!
 
フォルダ内にブック以外ふくまれていないです。。
 
>なぜこんな面倒なことになったのですか
 
次々とブックが増えていくので、フォルダ内にブックをいれただけで
なんとかならないかと上司からの指摘があり、クエリならできるかも?
と調べましたが、1つ1つブックをテーブルにして〜しか探せずで
こちらに投稿させていただきましたです(__)

回答
投稿日時: 26/03/06 07:46:27
投稿者: んなっと

答え方がわからないようでしたら、次のどちらかの表現を用いて回答してください。
・向上心のない社員
・メニュー操作だけで複雑なことが実現できたという過去の成功体験

投稿日時: 26/03/06 08:35:11
投稿者: toma100

んなっと様
 
向上心のない社員と言いますか、
社員はOK、パートは権限が無いのでダメとなっている事が多くて。
社員に頼んで、社員のパソコンから、記述していただく
ように頼んでみますね。
 
もしくは、先ほど、できなかった事も、会社のパソコンから
はできるかもしれないので、試してみますね!
 
色々といつもありがとうございます!
感謝しております(_ _)(_ _)