• ベストアンサー

集計の際、重複行を詰めて表示する。

下記のリストを別シートにて集計したいと思います。 (入力シート)   A   B 1 テレビ 1 2 テレビ 2 3 冷蔵庫 3 4 テレビ 1 5 洗濯機 5 (集計シート)   A   B 1 テレビ 4 2 冷蔵庫 3 3 洗濯機 5 同じ商品の数量を足し、同じ商品名は表示せずに詰めた状態で リストを作成したいのですが、どのようにすればいいですか? どうぞ宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆入力シートのC列に作業列 C1=IF(COUNTIF($A$1:A1,A1)=1,ROW(),"") ★下にコピー ◆集計シートの式 A1=IF(ROW(A1)>COUNT(入力シート!C:C),"",INDEX(入力シート!A:A,SMALL(入力シート!C:C,ROW(A1)))) B1=IF(A1="","",SUMIF(入力シート!A:A,A1,入力シート!B:B)) ★共に下にコピー

zrt11ys
質問者

お礼

助かりました。ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#3です。 終わりが尻切れになり、失礼しました。 #3は作業列を使わない回答を考えました。 式が技巧的で長くなる、配列数式を使う、が難しくなっている欠点です A.作業列を使う(#1のご回答や、私が他で既回答のimogasi方式) B.作業列を使わない、配列数式を使う(本件) C.作業列を使わない、配列数式を使わない。(回答が出るかも) 関数での非重複抜き出しが、いかに大変(関数では苦手の課題) か判るでしょう。 ーー なぜ6行-2行+1=5種類が判るかというと =SUM(IF(COUNTIF(OFFSET($A$2,0,0,ROW(A2:A8)-1,1),A2:A8)=1,1,0)) と入れて、Shift+CTRL+ENTERで 5 と出るからです。 ーー 集計は Sheet2のB2に =IF(A2="","",SUMIF(Sheet1!A:A,A2,Sheet1!B:B)) ト入れてB6まで式を複写する。 結果 テレビ 4 冷蔵庫 3 洗濯機 5 掃除機 3 パソコン 6 ーーー 本当は、A2に入れる式の前に=IF(row()-1>○,"",式) ○は上記式の結果の5かそれを出す式. のようにすべきなのだが、式が長くなるので、略。

zrt11ys
質問者

お礼

参考になりました。 ありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

例データ Sheet1に 商品 数 テレビ 1 テレビ 2 冷蔵庫 3 テレビ 1 洗濯機 5 掃除機 3 パソコン 6 ーー Sheet2のA2:A6を範囲指定し =INDEX(Sheet1!$A$1:$A$8,SMALL(IF(COUNTIF(OFFSET(Sheet1!$A$2,0,0,ROW(Sheet1!A2:A8)-1,1),Sheet1!A2:A8)=1,ROW(Sheet1!A2:A8),""),ROW(Sheet1!A2:A8)-1),1) と入れて、 Shift+ctrl+ENTERを押す。 結果 A2:A6 テレビ 冷蔵庫 洗濯機 掃除機 パソコン なぜA6なのかは == 集計は

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

数式を使用する以外に、Excelのビボットテーブルを使用して集計後、集計の合計行だけを他のシートなどにコピペして、新しいリストを作成する方法があります。 「ピボットテーブルの作成」 http://hamachan.fun.cx/excel/piboto.html 「集計の合計行だけをコピーする」 http://officetanaka.net/excel/function/tips/tips25.htm

zrt11ys
質問者

お礼

これも便利そうですね。 ありがとうございました。

関連するQ&A