• ベストアンサー

並び替え後の合計処理の方法がありますか?

よろしくお願いします。 A列に、上からA~Fまでのアルファベット(6文字)がランダムに入って 50~100行あります。 B列に、アルファベットが持っている数字がランダムに入っています。 例; 品名  数量  A    11  A     3  D     2   F     1  F   132  C    66  B     8  A    21  B    36  C     1  C    20  A     5    E     ・  ・     ・  ・     ・ これを並べ変えると、以下のようになりますが、(ここまでは出来ます)  A    11  A     3  A    21  A     5   B     8  B    36  C    66  C     1  C    20  D     2  E     ・  ・     ・  ・     ・  ・     ・ Aの数量:11+3+21+5の合計40が機械的に現れるようにできませんか? 同様にBからDまでの合計数量も欲しいです。 行数が多いため、目で数えるとクラクラします。 よろしくお願いします。 ただし、マクロは全く理解できません。

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

  • ベストアンサー
回答No.6

> 教えていただいた関数 =SUMIF(品名,"A",数量) を最終行に入れて > テストしましたが、数値が現れません。 そのまま書いてはダメです。「品名」には品名の入っている範囲、「数量」には 数量の入っている範囲を書いて下さいね。A2:A100のような感じです。 で、 > 実際の表は、縦方向(列方向)に1列だけでなく、複数の列に品名が並んで > いるため、 これがちょっとイメージできないんですが、 A C  10  B   20   C  30 A    10    D 30 B  E 20 このようになっていると仮定します。1列追加して品名が入る列を全部繋ぐように =A2&B2&C2&D2 のような式を入れ、表を A C  AC  10  B   B   20   C  C   30 A    A   10    D D   30 B  E BE  20 のように変形すると、品名のどこかに「A」を含む行の数量の合計は =SUMIF(今追加した列の範囲,"*A*",数量の入っている範囲) で計算できます。A列からD列の2行目から100行目に品名があって、 E列を追加してF列に数量があるとしたら、 =SUMIF(E2:E100,"*A*",F2:F100) ですね。

abouka
質問者

お礼

grumpy_the_dwarf 様 再度のご回答ありがとうございます。 試行錯誤で、ちょっと時間がかかりましたが、やっとご指示の方法で ダイレクトに合計数値が得られました。 この方法は、並び替えと集計作業をしないので私にとっては優れ物でした。 A列の品名とB列の数がセットで、C列の品名とD列の数がセットになっており、これが複数(10も多ければ50も連続しております)。 複数の関数を入れるより(複数用の関数が長くなり過ぎ=間違いの元)、 各数列の最下セルに、1セットづつ、関数を入れて、終了後、総合計をさせれば 簡単でした。 これで、歯をくいしばって数えることもなく、厚いめがねを買う必要もなくなり、正確な値を得られることで、今夜はビールを飲んで乾杯です。 ありがとうございました。

その他の回答 (5)

  • tamo
  • ベストアンサー率22% (4/18)
回答No.5

#2の方のSUMIF関数が一番簡単です。 サンプルをつけますので試してみてね。 サンプルの使い方の例 (1)下記のテキストをテキスト文書で保存 (2)拡張子を.txtから.csvに変更 (3)エクセルから開く -------------------------------------------- 商品,数量,関数,結果 a,1,"=SUMIF(A:A,A2,B:B)",14 c,2,"=SUMIF(A:A,A3,B:B)",19 b,3,"=SUMIF(A:A,A4,B:B)",22 d,4,"=SUMIF(A:A,A5,B:B)",11 a,5,"=SUMIF(A:A,A6,B:B)",14 c,6,"=SUMIF(A:A,A7,B:B)",19 d,7,"=SUMIF(A:A,A8,B:B)",11 a,8,"=SUMIF(A:A,A9,B:B)",14 b,9,"=SUMIF(A:A,A10,B:B)",22 b,10,"=SUMIF(A:A,A11,B:B)",22 c,11,"=SUMIF(A:A,A12,B:B)",19 -------------------------------------------- 関数の部分はエクセルでは実際の値が表示されると思いますが、実際には関数がはいっています。 確認してください。 ちなみにSUMIFのヘルプです ---------------------------------------------------------------------------------------- 書式 SUMIF(範囲,検索条件,合計範囲) ・範囲 評価の対象となるセル範囲を指定します。 ・検索条件 計算の対象となるセルを定義する条件を、数値、式、または文字列で指定します。 ・合計範囲 実際に計算の対象となるセル範囲を指定します。 解説 合計範囲に含まれるセルの中で、範囲内の検索条件を満たすセルに対応するものだけが計算の対象となります。 合計範囲を省略すると、範囲内で検索条件を満たすセルが合計されます。 Excel には、条件を基にデータを解析するための関数が他にもあります。たとえば、文字列またはセルの範囲内にある数値の個数をカウントするには、COUNTIF ワークシート関数を使用します。特定の売上高に達した場合にボーナスを支給するなど、2 つの値のうち 1 つを返すには、IF ワークシート関数を使用します。 ----------------------------------------------------------------------------------------

abouka
質問者

お礼

tamo 様へ ご回答ありがとうございました。 サンプルの拡張子を.txtから.csvに変更、の文言でびっくりしました。ので、テストとお礼が最後になりましたが、ご指示の方法と書式・解説で求める数値を取り出せました。 これからの作業は#2、#6の回答者様の方法で行います。 この作業を手伝ってくれる方々に説明し、理解してもらうのに、一番単純な方法が喜ばれるからです。 おもしろいエクセルの集計方法がいくつもあることが分かり、今夜はお月さんの うさぎにありがとうといいます。 うさぎ曰く、『地球は青かった』。本当に今夜は良いことがありました。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.4

ピボット・テーブルを作成してみては。 合計を出すだけなら、並び替えの手順がいらなくなります。 詳しくは、Excelのヘルプをどうぞ。 Excelじゃなかったら、ゴメンなさい。

abouka
質問者

お礼

osamuy 様 ご回答ありがとうございます。 Excelで、作業しております。 ピボット・テーブルは、未だ触ったことがありません。 時々、この単語を見聞きしますので、いずれ必要な時が くるかもしれませんが、今では頭がパニックします。 今回は#1、#2の回答者様の方法で仕事量は20分の1に なりそうです。 ありがとうございました。

回答No.3

集計の機能を使うとよろしいかと思います。 表の中をクリックしておいて、データメニュー~集計を選択してください。 集計のダイアログボックスが表示されますので、 「グループの基準」を"品名"にする。 「集計の方法」は"合計"になっているのを確認する。 「集計するフィールド」の"数量"にチェックが付いているのを確認する。 「現在の集計表と置き換える」にチェックが付いているのを確認する。 「集計行をデータの下に挿入する」にチェックが付いているのを確認する。 OKをクリックする。 これで品名ごとの集計が表示されます。 品名ごとの集計結果だけ折りたたんで表示したいときには、行番号の左にある四角で2と表示されているボタンをクリックしてください。 集計を解除したいときは、データ~集計で、集計のダイアログボックスを表示させ、全て削除をクリックしてください。 あと、蛇足ですが、並べ替える前の状態に戻したい場合は、番号の列を追加したほうがいいかもしれませんね。 ご参考になれば幸いです。m(__)m

abouka
質問者

お礼

ShadowMoon 様 ご回答を丁寧に書いていただき、ありがとうございました。 テストしながら、蛇足の内容も分かり、賢くなりました。 全くエクセルの機能には、質問の度ごとに驚かされております。 今回の回答は、時間の短縮と正確さがあり、いままで目をしょぼつかせて やっておりましたので、これからは、ルンルン気分です。 ありがとうございました。

回答No.2

並べ替える必要もなく、SUMIF関数で一発です。 品名がAである行の数量の合計なら =SUMIF(品名,"A",数量) B以降についても同様にどうぞ。

abouka
質問者

補足

grumpy_the_dwarf 様 ご回答ありがとうございます。 教えていただいた関数 =SUMIF(品名,"A",数量) を最終行に入れて テストしましたが、数値が現れません。 実際の表は、縦方向(列方向)に1列だけでなく、複数の列に品名が並んで いるため、もしかしたら一度の処理で終わるかな?と期待してテストしましたが、 私の操作が悪いのか、合計数値が出てきませんでした。 ご時間が許せば、再度教えていただければ助かります。 私の困った問題は#1、#3の回答方法で出来ましたが、並べ替えせずに できる方法があれば、加えて、表の中から複数の列が一度にできれば 大助かりです。 締め切りを今夜真夜中に延ばしますのでよろしくお願いします。

noname#166310
noname#166310
回答No.1

これは、集計機能を使ってはいけませんか? 表のなかのいずれかのセルをアクティブセルにして、 メニューバーの「データ」→「集計」をクリックします。 詳しくはURLを見てください。(データベース・集計)

参考URL:
http://homepage1.nifty.com/kenzo30/ex_kisosyo/ex_ks_syokyu9_4.htm#
abouka
質問者

お礼

nei 様 ご回答ありがとうございます。 テストをしました。 当初は並べ替えをせず、データの集計を行っていたため、 不思議な世界に入ってしまいました。(出来ない。??? どうして???) 回答を何回か読み返し、URLを覗いて気が付きました。 並べ替えをした後に集計するとそこには『望むもの』がありました。 完璧です。 助かりました。今後の作業は楽が出来ます。 ありがとうございました。

関連するQ&A