人生最悪の忘れ物

添付画像の左側の表から右側の表のように品名ごとの集計を求めるにはどうすればよいでしょうか?
ただし、UNIQUE関数、配列数式を使わない方法でお願いします。

「UNIQUE関数、配列数式を使わずに品名」の質問画像

A 回答 (7件)

>UNIQUE関数、配列数式を使わない方法でお願いします。


とのご要望であり、添付画像の図①のような集計表を作成する場合、
E2セルに

=IFERROR(INDEX($B$2:$B$9,AGGREGATE(15,6,ROW($1:$8)/(MATCH($B$2:$B$9,$B$2:$B$9,0)=ROW($1:$8)),ROW(A1))),"")

を入れて、下方向へフィルコピーします。次に、F2セルに

=IF(E2="","",SUMIFS(C:C,B:B,E2))

を入れて、下方向へフィルコピーします。これで、集計表が完成します。

しかし、どう考えても、 d-q-t-pさんの回答にあるピボットテーブルを用いる方法、つまり、元表の範囲を選択した状態で、メインメニューの「挿入」→「ピボットテーブルアイコン」→表示場所決定 と進んで図③のようなフィールドリストを表示させ、行ボックスに品名を、値ボックスに個数を、それぞれドラック&ドロップし、図②のようなピボットテーブルを作成する方法のほうが、簡単かつスピディーだと思います。

なお、元表が更新された場合、図①の集計表だと、数式適用範囲を広げたり、数式自体の修正を必要とすることがありますが、図②のピボットテーブルの場合、ピボットテーブル内のセルを右クリックして「更新」を選択すればピボットテーブルも一瞬で更新可能です。
※元表の最終行・列にデータを追加したとき、追加分のデータはピボットテーブルの範囲から外れるため、「更新」ボタンを押しても反映されません。このような事態を避けるため、元表を予め(範囲が自動拡張される)テーブル化しておく方法がお勧めです。
「UNIQUE関数、配列数式を使わずに品名」の回答画像7
    • good
    • 0
この回答へのお礼

詳細に説明して頂き有り難うございました。

お礼日時:2024/11/16 10:43

PowerQuery を使えば


左のテーブルから
簡単な操作で右の結果を出せます。

データの増減等があっても、
「すべて更新」をクリックするだけで済みます。

Excel2016 です。
他のバージョンでうまくいかなかったら後免。
「UNIQUE関数、配列数式を使わずに品名」の回答画像6
    • good
    • 0

> 品名ごとの集計を求めるにはどうすればよいでしょうか?


ピボットテーブルで集計すればいいでしょう。
    • good
    • 0

誤:集計のルド


正:集計のフィールド
    • good
    • 0

表の中のどこかにカーソルを置く → 「データ」タブ → 「小計」アイコンをクリック → グループの基準で「品名」を選択 → 集計の

ルドで「個数」を選択
    • good
    • 0

>UNIQUE関数、配列数式を使わない方法でお願いします。


後学のために教えてください。
なぜ「UNIQUE関数、配列数式を使わない方法」を求めるのですか。
    • good
    • 0

こんにちは



>UNIQUE関数、配列数式を使わない方法でお願いします。
わざわざ面倒な制約を設ければ、難しく複雑にになるだけと思いますが・・


通常の方法なら
◇ 方法1
1)B列をE列にコピーし、「データ」-「重複の削除」で
  E列にユニークな項目を抽出する
2)F列はSumif関数やSumproduct関数等を利用して集計する

あくまでも関数だけで行いたいのなら・・
◇ 方法2
1)作業列を利用して、B列の最初に出現する品名をチェック
2)作業列を参照して、順にE列に重複を省いた品名を抽出
3)F列は「方法1」と同じ

※ 方法1、方法2は検索すれば説明付きの紹介サイトが多数見つかると思いますので、式は省略します。


作業列も使いたくないのなら・・
(スピル機能は使えるものと想定)
◇ 方法3
1)E2セルに以下の式を入力
 =FILTER(B2:B9,COUNTIF(OFFSET(B2,,,ROW(B1:B8)),B2:B9)=1,"")
2)F2セルに以下の式を入力
 =SUMIF(B2:B9,E2#,C2:C9)

等の方法が考えられます。
    • good
    • 0

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

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


おすすめ情報

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