重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

エクセルデータの集計をVBAマクロか関数でやりたいです。
 添付画像のようにエクセルの1つのブックデータにおいて、5月1日のシートから5月31日のシートが含まれており、それぞれのシートの表には、ある建物の1階から8階のクレームが書かれています。 クレームは、1フロアだけ書かれている日もあれば、複数階において書かれている日もあり、全フロアでクレームが無い日もあります。 このクレームを添付画像の右の表のように集計シートにまとめる為のマクロは、どのようなVBAになるでしょうか?
即ちマクロのボタン1つで、各日のシートにおいて記載された文言のみを抽出して表にまとめたいです。

「エクセルのVBAで集計をしたい」の質問画像

A 回答 (2件)

こんにちは



以下は、スピル機能が使えるバージョンでの関数での処理する例です。

不明点は以下のように、勝手に仮定しました。
1)シート名が不明ですが、仮に1日のシートのシート名をsheet1、31日のシートをsheet31と仮定します。
sheet1、sheet31を両端として、集計対象となるシートは全てその間に並べてあり、関係のないシートは混ざっていないものとします。
(両端さえ合っていれば、中間部の順序は影響しません)

2)各シートのC列の各セルには必ず「1F」~「8F」のフロアが記入されており、全角、半角などは全てのシートで統一されていて、同じ表記法になっているものとします。
また、データは4行目から下に記載されているものと仮定します。

3)各シートでD列が空欄の項目は、集計の際には省いて計上しないこととします。


上記の仮定で良ければ、集計シートのC4セルに以下の関数式を入力します。
(これにより、必要な行数分自動で下方にスピルされます)

=LET(a,VSTACK(Sheet1:Sheet31!C4:D20),SORT(FILTER(a,INDEX(a,,2)<>"",""),1))


>ボタン1つで~~~~表にまとめたいです。
上記は関数なので、ボタンを押す必要はありません。
    • good
    • 0

いろいろと不明点がありますので、その確認のための補足要求です。


1.5月1日から5月31日のシート名および集計シートのシート名は、どのようになっていますか。(画像が不鮮明なための確認です)
①5月1日のシート名
②5月31日のシート名
③集計シートのシート名
について提示してください。

画像が不鮮明なのは、あなたのせいではなく、このサイトの仕様の為です。

2.もし、5月1日から5月31日のシートを集計した結果、1Fから7Fはクレームが1件もなく、8Fのみ1件の場合は、どのように表示しますか。
添付図の左側になりますか。それとも右側になりますか。
それ以外の場合は、具体的に画像で提示してください。
「エクセルのVBAで集計をしたい」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

OSZAR »