- 締切済み
エクセルで重複文字に対応する数字を抽出して合計したいです。
エクセルの関数を用いて、 重複する文字(項目)に対応する数字のみ合計したいのですが、 可能でしょうか。 例) A B 1 ペン 2 2 鉛筆 4 3 携帯 5 4 ペン 1 5 携帯 3 ↓ A B 1 ペン 3 2 鉛筆 4 3 携帯 8 と、以上の様にしたいのですが良い方法ありますでしょうか? SUMIFだと、ペン、鉛筆、携帯のそれぞれを手打ちしなければならないと思いますが、 そこを自動的に出来るようにしたいと思っています。 また、ピボットテーブルも使いたくないのですが、やはりマクロで組むのがベストでしょうか? もし、関数で限界がある場合、マクロの組み方も教えていただけるとありがたいのですが・・・・ 何卒、よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問者のレベルを超えた質問で、VBAなぞ丸投げではないか。 >のそれぞれを手打ちしなければならないと思いますが これだって相当何回もこのコーナーで回答しているが、 データーフィルタオプションの設定ー重複するレコードは無視する、で作れるのでは。 その場合関数ではSUMIFと式の複写で出来る。 >ピボットテーブルも使いたくないのですが 自分が現状他の方法で出来なければ、ピボットテーブルで我慢すべきだ。使いたくないなど言うのはおかしい。ピボットはスピーディに出来る非常に優れた方法だ。 VBAだって、自分で勉強してこの質問に近いところまで迫らなければ、丸投げは不可。回答者をコード製造下請けに使うな。 少なくとも総なめ法、Find法でやれば出来る。あるいはソート法もわかりやすい。例えば鉛筆はA列でソートすると隣接した行に集るから、鉛筆以外に変わるまで計数を足しこめばよい。 VBAのコードもさることながら、処理ロジックをVBAの相当年月の経験で訓練する必要があるのだ。
- mitarashi
- ベストアンサー率59% (574/965)
マクロなら、下記でお勉強してください。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_dictionary.html 「重複しない品名と個数の合計を計算します」というサンプルが、ページの中程にあります。ただ、自分の経験ではdictionaryは最初はとっつき難かったですが...。
お礼
有難うございました。 大変参考にさせていただき、勉強してみます。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 色々方法はあるかと思いますが・・・ 一例です。 ↓の画像のように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
お礼
とても詳しく説明していただきましてありがとうございました。 有難く参考とさせていたきます。
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
同一シートなのかなあ ピボットテーブルがダメなら、「並べ替え」て「集計」が良いのでは? フィルタオプションの設定で重複するレコードを無視すれば手打ちの必要も無くてSUMIF関数が使えます。 関数でできないこともないですが、作業列を使いたくないならマクロのほうが理解しやすいと思います。
お礼
有難うございました。 参考にさせていただきます。
お礼
確かに、ご指摘のとおりかもしれません。 今後気をつけます。 ご指摘の中にも、ヒントいただきましてありがとうございました。