• 締切済み

エクセルで重複文字に対応する数字を抽出して合計したいです。

エクセルの関数を用いて、 重複する文字(項目)に対応する数字のみ合計したいのですが、 可能でしょうか。 例)   A  B 1 ペン 2 2 鉛筆 4 3 携帯 5 4 ペン 1 5 携帯 3   ↓   A  B 1 ペン 3 2 鉛筆 4 3 携帯 8 と、以上の様にしたいのですが良い方法ありますでしょうか? SUMIFだと、ペン、鉛筆、携帯のそれぞれを手打ちしなければならないと思いますが、 そこを自動的に出来るようにしたいと思っています。 また、ピボットテーブルも使いたくないのですが、やはりマクロで組むのがベストでしょうか? もし、関数で限界がある場合、マクロの組み方も教えていただけるとありがたいのですが・・・・ 何卒、よろしくお願いいたします。

みんなの回答

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

質問者のレベルを超えた質問で、VBAなぞ丸投げではないか。 >のそれぞれを手打ちしなければならないと思いますが これだって相当何回もこのコーナーで回答しているが、 データーフィルタオプションの設定ー重複するレコードは無視する、で作れるのでは。 その場合関数ではSUMIFと式の複写で出来る。 >ピボットテーブルも使いたくないのですが 自分が現状他の方法で出来なければ、ピボットテーブルで我慢すべきだ。使いたくないなど言うのはおかしい。ピボットはスピーディに出来る非常に優れた方法だ。 VBAだって、自分で勉強してこの質問に近いところまで迫らなければ、丸投げは不可。回答者をコード製造下請けに使うな。 少なくとも総なめ法、Find法でやれば出来る。あるいはソート法もわかりやすい。例えば鉛筆はA列でソートすると隣接した行に集るから、鉛筆以外に変わるまで計数を足しこめばよい。 VBAのコードもさることながら、処理ロジックをVBAの相当年月の経験で訓練する必要があるのだ。

poown
質問者

お礼

確かに、ご指摘のとおりかもしれません。 今後気をつけます。 ご指摘の中にも、ヒントいただきましてありがとうございました。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

マクロなら、下記でお勉強してください。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_dictionary.html 「重複しない品名と個数の合計を計算します」というサンプルが、ページの中程にあります。ただ、自分の経験ではdictionaryは最初はとっつき難かったですが...。

poown
質問者

お礼

有難うございました。 大変参考にさせていただき、勉強してみます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像のようにSheet1のデータをSheet2に表示させるようにしてみました。 Sheet1のA列を作業用の列として使わせてもらっています。 Sheet1のA2セルに =IF(COUNTIF($B$2:B2,B2)=1,ROW(A1),"") という数式を入れ、オートフィルで下へコピーします。 Sheet2の数式は1000行まで対応できるようにしていますので、 1000行くらいまでコピーしても構いません。 そして、Sheet2のA2セルに =IF(COUNT(Sheet1!$A$2:$A$1000)<ROW(A1),"",INDEX(Sheet1!$B$2:$B$1000,SMALL(Sheet1!$A$2:$A$1000,ROW(A1)))) B2セルに =IF(A2="","",SUMIF(Sheet1!$B$2:$C$1000,A2,Sheet1!$C$2:$C$1000)) という数式を入れ、A2・B2を範囲指定し、B2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

poown
質問者

お礼

とても詳しく説明していただきましてありがとうございました。 有難く参考とさせていたきます。

回答No.1

同一シートなのかなあ ピボットテーブルがダメなら、「並べ替え」て「集計」が良いのでは? フィルタオプションの設定で重複するレコードを無視すれば手打ちの必要も無くてSUMIF関数が使えます。 関数でできないこともないですが、作業列を使いたくないならマクロのほうが理解しやすいと思います。

poown
質問者

お礼

有難うございました。 参考にさせていただきます。

関連するQ&A

専門家に質問してみよう