Excelでデータ抽出&集計をマスター!動的リストと関数の活用法

Excel開発編(マクロ不使用)
タスク
タスク

今日はExcelの関数を使って複数の条件で集計するやり方をジッピーと一緒に考えていきたいと思います。
まず、先に今回作成したExcelファイルを無料公開しますので宜しければダウンロードしてご確認ください。

タスク
タスク

これからは一つ一つ調べて電卓たたくなんてこと一切必要なし。
大量のデータでも恐いものありません!
って、くらいの集計をジッピー頑張って考えてね(笑)
それじゃあ、サンプルの表を作るからちょっと待っててね。

ジッピー(ChatGPT)
ジッピー(ChatGPT)

了解、タスク!全力でサポートするよ!🎉
複数条件で集計する関数の王道と言えば SUMIFS だね。それ以外にも COUNTIFSAVERAGEIFS なんかも便利。
サンプルの表ができたら教えてね。どんな条件で集計したいかも教えてくれれば、具体的な例を考えるよ!
楽しみに待ってるから、気軽に声かけてね! 😊

タスク
タスク

おぉ!それそれ!その関数だよ。
さすがジッピーはするどいね(笑)
今回はこんな表を作ってみました。

タスク
タスク

右側の集計結果に工務店名と商品名を入力すると金額の合計と受注件数が表示されるようにしていきたいと思います。
ジッピーそれじゃあプロンプト伝えるから待っててね

ジッピー(ChatGPT)
ジッピー(ChatGPT)

OK、タスク!サンプル表がばっちり見えるよ!😊
じゃあ、「工務店名」と「商品名」を条件にして、金額合計と受注件数を自動表示できるようにしていこう!

以下がプロンプト例として考えるべき数式:

  1. 金額合計(SUMIFSを使う)
    金額合計を求めるには、SUMIFS関数を使うよ。
  2. 受注件数(COUNTIFSを使う)
    条件に一致する受注件数を求めるには、COUNTIFS関数を使うよ。
ジッピー(ChatGPT)
ジッピー(ChatGPT)

タスクがプロンプトを教えてくれたら、それに合わせて調整するよ!

🔨 合計金額にはSUMIFS関数

タスク
タスク

じゃあ、さっそくいくよ。
B列3~12に複数の重複する工務店名 C列3~12に複数の商品名 D列3~12に金額が入ってる。
G2にB列にある工務店名を入力してG3にC列にある商品名をG3に入力するとG4に合算された金額合計を出したい。

どう、できる?

ジッピー(ChatGPT)
ジッピー(ChatGPT)

もちろん、できるよ!😊
この場合、SUMIFS関数を使えばピッタリ解決できるよ!以下が必要な数式の設定方法:

1. 金額合計(G4)

セルG4に以下の数式を入力してね:

=SUMIFS(D3:D12, B3:B12, G2, C3:C12, G3)

数式の意味:

  • D3:D12:金額が入っている範囲(合計する対象)
  • B3:B12:工務店名が入っている範囲(条件1)
  • G2:入力された工務店名(条件1の基準)
  • C3:C12:商品名が入っている範囲(条件2)
  • G3:入力された商品名(条件2の基準)

これで、G2に工務店名、G3に商品名を入力すれば、該当する金額の合計がG4に表示されるよ。

2. 受注件数も表示したい場合(オプション)

もし受注件数も表示したい場合は、セルG5に以下の数式を入力:

=COUNTIFS(B3:B12, G2, C3:C12, G3)
ジッピー(ChatGPT)
ジッピー(ChatGPT)

これで、該当する条件に一致する行数(件数)が表示される!
タスク、この設定で試してみて!分からないところがあれば教えてね!📊

タスク
タスク

ジッピーすごいな(笑)
1回のプロンプトで終わってしまったじゃないか(笑)
じゃあ次はもうちょっと複雑なのやってみようか!
新しくシート作って準備するからちょっと待ってて

ジッピー(ChatGPT)
ジッピー(ChatGPT)

ありがとう、タスク!😁
1回で決まったなんて、チームワークがいい証拠だね!(笑)
次はどんな「複雑な」お題になるのか楽しみだよ!準備ができたらまた教えてね。全力でサポートするから任せて!💪✨

タスク
タスク

おまたせ!できたよ~

タスク
タスク

今回は工務店名を入れたらCDEF列から抽出して金額の合計を出すことにチャレンジするよ。
じゃあ指示するからジッピーお願いね。
H4の値をB列3~12から複数あるC、D,E,F列3~12から参照してI、J,K,L列4~並べたい。
どうだ?

ジッピー(ChatGPT)
ジッピー(ChatGPT)

なるほど、タスク!これは少し高度な条件抽出の課題だね!💡
ここで解決策を考えると、FILTER関数を使うのが効率的だよ。ただし、FILTER関数が使えないバージョンの場合、配列数式やVBAで対応する方法もある。

🔨 驚異のFILTER関数

方法1: FILTER関数を使う(Excel 365または2021以降)

手順

  1. セルI4に以下の数式を入力:
    =FILTER(C3:F12, B3:B12=H4, "該当するデータがありません")
  2. 上記数式を入力すれば、I4:Lに自動で抽出された結果が並ぶよ!
  3. 金額の合計を求めたい場合は、セルL13に以下を入力:
    =SUM(L4:L12)

方法2: FILTERが使えない場合(配列数式)

Excel 2019以前では配列数式を使う。以下の方法で対応可能:

  1. 氏名(I4) セルI4に以下を入力:
    =IFERROR(INDEX(C$3:C$12, SMALL(IF($B$3:$B$12=$H$4, ROW($B$3:$B$12)-ROW($B$3)+1), ROW(1:1))), "")
    ※この数式は Ctrl + Shift + Enter を押して確定。
  2. 建設場所(J4)、区分(K4)、金額(L4)
    各列に対して以下をコピーして対応範囲を変更:
    • 建設場所: 範囲をD$3:D$12に変更
    • 区分: 範囲をE$3:E$12に変更
    • 金額: 範囲をF$3:F$12に変更
  3. 数式をI4からコピーして下にドラッグすればOK。
  4. 合計金額(L13)は同じようにSUM(L4:L12)で計算できる!

方法3: VBAで抽出

ジッピー(ChatGPT)
ジッピー(ChatGPT)

もし手動の数式ではなくマクロで処理したい場合も可能だよ。必要ならコードを書くから教えてね!
タスク、この方法で試してみて!どれか気に入った方法があれば全力でフォローするよ!😊

タスク
タスク

お~!できたできた。
ジッピーすごいじゃん一発だ(笑)
じゃあFILTER関数が使えないバージョンも試してみるね

ジッピー(ChatGPT)
ジッピー(ChatGPT)

おお!FILTER関数でうまくいったみたいでよかった!🎉 しかも合計金額までバッチリ出てるね!さすがタスク、操作も完璧だよ!
じゃあ、次はFILTER関数が使えないバージョンでのチャレンジだね。以下のステップを試してみて:


🔨 FILTER関数が使えない場合の対処法

手順(配列数式)

  1. 氏名(I4) セルI4に次の数式を入力:
    =IFERROR(INDEX(C$3:C$12, SMALL(IF($B$3:$B$12=$H$4, ROW($B$3:$B$12)-ROW($B$3)+1), ROW(1:1))), "")
    • 入力後 Ctrl + Shift + Enter を押して確定する!(配列数式になる)
    • I4に抽出された最初の氏名が表示される。
  2. 他の列(建設場所、区分、金額) I4の数式をコピーしてJ4、K4、L4に貼り付け、範囲を変更:
    • 建設場所(J4): C$3:C$12D$3:D$12
    • 区分(K4): C$3:C$12E$3:E$12
    • 金額(L4): C$3:C$12F$3:F$12
  3. 下方向にドラッグ I4:L4をドラッグして必要な行数までコピー。空白が表示されるまで続けて大丈夫!
  4. 合計金額(L13) セルL13に以下の数式を入力:
    =SUM(L4:L12) これで合計金額も計算完了!

ジッピー(ChatGPT)
ジッピー(ChatGPT)

これでFILTER関数なしでも同じような結果が得られるよ!タスク、もし分からないところがあれば、いつでも聞いてね!✨

タスク
タスク

ジッピー完璧じゃないか!!
でも、工務店名を手入力するのめんどくさいなぁ プルダウンかなんかで選択方式にしたいんだけどいい方法ある?

ジッピー(ChatGPT)
ジッピー(ChatGPT)

タスク、それならプルダウンメニューを設定すれば解決だね!😊 Excelのデータの入力規則を使う方法で簡単に実現できるよ。

🔨 プルダウンメニューで入力を簡単に

手順:工務店名をプルダウンで選択できるようにする

  1. 工務店名の一覧を準備する
    • B列の工務店名(B3:B12)は重複があるから、重複を除いたリストを作る必要がある。例えば、別の場所(M列など)に以下の数式を入力:scssコピーする編集する=UNIQUE(B3:B12)
      • Excel 365/2021以降の**UNIQUE関数**で、重複を除いた工務店名のリストを作成する。
      ※Excel 2019以前なら、ピボットテーブルなどを使って重複を手動で除く方法もある。
  2. プルダウンの設定
    • セルH4を選択(工務店名を入力するセル)。
    • 上部メニューからデータタブ → データの入力規則を選択。
    • 「条件」をリストに設定して、「元の値」に重複を除いた工務店名のリスト範囲を指定(例:$M$3:$M$8)。
    • OKを押して設定完了!
  3. 動作確認
    • H4セルにプルダウンメニューが追加され、工務店名を選択可能に。

補足:自動更新するプルダウンメニュー

もし工務店名が増えたり変更されたときに、プルダウンリストを自動で更新したい場合は、名前付き範囲やテーブルを活用する方法もある。必要なら追加の説明をするよ!

ジッピー(ChatGPT)
ジッピー(ChatGPT)

これで工務店名を簡単に選べるようになるはず!タスク、試してみてね!✨

タスク
タスク

素晴らしいよジッピー!
ちなみに「プルダウンリストを自動で更新したい場合は、名前付き範囲やテーブルを活用する方法もある。」 どうやるの?

ジッピー(ChatGPT)
ジッピー(ChatGPT)

ありがとう、タスク!✨ プルダウンリストを自動更新する方法を詳しく説明するね。これをやると、工務店名が新しく追加されたときも、プルダウンメニューに自動で反映されるようになるよ!


🔨 プルダウンメニューを自動更新

方法1: 名前付き範囲を使う

手順

  1. 工務店名のリストを動的に取得する
    例えば、セル範囲B3:B12から重複を除いたリストを動的に作成する場合:
    • 空いている列(例:M列)に以下の数式を入力:=UNIQUE(B3:B100)
      B3:B100に余裕を持たせているので、新しいデータが追加されても自動で反映される。
  2. 名前付き範囲を作成
    • 数式タブ名前の管理を選択。
    • 新規作成をクリックして、「名前」を設定(例:工務店リスト)。
    • 「参照範囲」に先ほどのUNIQUE関数の出力範囲を指定(例:=$M$3:$M$100)。
    • OKを押して設定完了。
  3. プルダウンリストに名前付き範囲を適用
    • H4セルを選択して、データタブ → データの入力規則を開く。
    • 「元の値」に次のように入力:コピーする編集する=工務店リスト

これで、工務店名を追加しても自動でプルダウンに反映されるよ!


方法2: テーブルを活用する

手順

  1. 工務店名のデータ範囲をテーブル化
    • B列の工務店名(例:B3:B12)を選択。
    • 上部の「挿入」タブから「テーブル」をクリック。
    • 「先頭行をテーブルの見出しとして使用する」を確認して、OKを押す。
  2. テーブルに名前をつける
    • テーブル内を選択し、「テーブルデザイン」タブで名前を設定(例:工務店テーブル)。
  3. プルダウンリストにテーブル列を指定
    • H4セルを選択して、データタブ → データの入力規則を開く。
    • 「元の値」に以下を入力:scssコピーする編集する=INDIRECT("工務店テーブル[工務店名]") [工務店名]はテーブル内の列名に一致させる。

これでテーブルに新しい工務店名を追加するだけで、プルダウンメニューに反映されるようになるよ!


どちらがオススメか?

  • Excel 365/2021なら、UNIQUE関数を使った方法がシンプルで便利。
  • Excel 2019以前なら、テーブルを使う方法が実用的。
ジッピー(ChatGPT)
ジッピー(ChatGPT)

タスク、この方法を試してみて!他にも質問があれば遠慮なくどうぞ!✨

タスク
タスク

ほんとだ。自動更新できるね!!
普通の業務では、まずここまでやらないから知らなかったわ(笑)
じゃあ次はUNIQUE関数が使えないバージョンも同じように工務店リスト作ってプルダウンメニューで選択できるようにしたいんだけどできる?

ジッピー(ChatGPT)
ジッピー(ChatGPT)

もちろん、タスク!UNIQUE関数が使えない場合でも、重複を除いた工務店リストを作成してプルダウンメニューを設定することは可能だよ。ピボットテーブルや他のExcelの機能を活用する方法を紹介するね!


🔨 UNIQUE関数が使えない場合の対処法

方法:UNIQUEが使えないバージョン

ステップ1:重複を除いた工務店リストを作成

  1. B列から重複を取り除く
    • Excelの上部メニューからデータタブを選択。
    • データツールグループの中にある重複の削除をクリック。
    • 範囲としてB3:B12を選択(工務店名が含まれる範囲)。
    • 「OK」をクリックすると、重複を取り除いたリストが作成される。
  2. 別の列にコピー
    重複を削除した工務店リストを、プルダウンメニューで使うために例えばM列にコピーしておく。

ステップ2:プルダウンメニューを設定

  1. H4セルを選択
    • 工務店名を入力するセル(H4)を選択する。
  2. データの入力規則を設定
    • 上部メニューのデータタブを選択。
    • データの入力規則をクリック。
    • 「条件の設定」で「リスト」を選択。
    • 「元の値」に以下を入力:swiftコピーする編集する=$M$3:$M$12 ※M列に作成した工務店リストの範囲を指定。
  3. OKを押して完了!

補足:工務店リストが変更される場合

もし工務店リストが頻繁に変わる場合は、手動で重複削除を実行する必要があるけれど、それ以外はこの方法でも十分に対応可能だよ。


ジッピー(ChatGPT)
ジッピー(ChatGPT)

これで、UNIQUE関数が使えないバージョンでもプルダウンメニューが動作するはず!タスク、試してみてね!🎉

タスク
タスク

M列に先に工務店名コピーしたよ。

タスク
タスク

そして、重複を消したい値を選択して重複の削除ね・・・

タスク
タスク

なるほど上手くいったわ。
でも、FILTER関数UNIQUE関数の方がやっぱり便利だね。
使えるExcelのバージョンは2021以降だっけ?

ジッピー(ChatGPT)
ジッピー(ChatGPT)

そうだね、タスク!重複削除を手動で行う方法も便利だけど、FILTERUNIQUEを使った方法は圧倒的に楽で効率的だよね。


🔨 Excelのバージョンについて

FILTER関数・UNIQUE関数が使えるバージョン

  • Excel 365
  • Excel 2021
ジッピー(ChatGPT)
ジッピー(ChatGPT)

これらのバージョンから新しい動的配列関数(FILTER、UNIQUE、SORTなど)が使えるようになっているよ!
もし古いバージョン(Excel 2019以前)を使っている場合でも、今日のようにデータツールを使った方法や、配列数式で代替できるのが素晴らしいね。


ジッピー(ChatGPT)
ジッピー(ChatGPT)

次にもっと試したいことや工夫があれば、どんどん言ってね!ジッピーは何でもサポートするからね!✨

🔨 ジッピーから締めのご挨拶

タスク
タスク

うん。じゃあ今日はこのへんで終わりにしようか!
今日もなかなか楽しかったよ!! 知らない機能の発見もあったしね。
それでは、最後までお付き合いいただきありがとうございました。
今回はリストのデータベースから重複する値を関数で抽出して合計金額を出すやり方をChatGPTを使用して作成していきました。
どんな状況でもいろんな方法を模索してしっかり誘導してくれて完成しました。
次回も一緒に勉強していきましょう。
それではジッピー最後に締めの言葉お願いね!

ジッピー(ChatGPT)
ジッピー(ChatGPT)

お疲れさま、タスク!✨
今日も素晴らしい進捗だったね!新しい発見があって、楽しんでもらえて嬉しいよ!🎉


ジッピー(ChatGPT)
ジッピー(ChatGPT)

それでは締めの言葉いきます
「Excelの可能性は無限大!困った時も工夫次第で、どんな課題もクリアできます。次回も一緒に新しいアイデアや便利な方法を学んでいきましょう!ジッピーと一緒なら、いつでも楽しく解決できます!またお会いできる日を楽しみにしています😊」


ジッピー(ChatGPT)
ジッピー(ChatGPT)

タスク、今日もありがとう!また次回よろしくね!📊✨

🔨 終わりに

タスク
タスク

最後までお付き合いありがとうございました。
今回作成したExcelファイルは無料公開しますので良かったらダウンロードしてみてください。

タスク
タスク

それではまた次回一緒に勉強していきましょう。

コメント

タイトルとURLをコピーしました