• ベストアンサー

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

よろしくお願いします。 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

  • 複数の条件を満たすレコードの合計を求める

    出荷日 品名 数量 単価 合計 担当者 部門 5/2  もも  1  100  100 A   14 5/3  珈琲  2  150  300 B   15 5/4  ばなな 3  100  300 C   14 1行から100行位の表があってそのつど入力していき、(5月分の表としてありますので、100行全て埋まる訳ではありません)別のシートに   A列  B列    C列    D列 1     A担当者  B担当者  C担当者 214部門 100     0      300 315部門  0     300     0 という表になるようにB2セルに次の式を入れました =sumproduct((sheet1!$G$2:$G$100=$A2)*(Sheet1!$F$2:$F$100=$B1)*sheet!$E$2:$E$100)) で入れるとNAME?になります。100と入れているところを今現在入力されている行数を入れると合計が表示されます上の表ではG2:G3と入れると合計が出ますが、毎日毎日データーが更新されているのでそのつど関数を入れなおせません。 どなたか、良い案を教えてください 長くなってすみません 

  • 1列おきの単価×数量を合計する方法

       A    B    C    D    E    F  ・・・ 1  品名1 数量1  単価1 品名2 数量2 単価2・・・単価30 2 リンゴ  1    100    梨    2    300   上記の様な表があります。 2行目の金額を計算する場合通常でしたら =B2*C2+E2*F2・・・ という計算式と使用しますが、 品名が30を超える場合もあるので、上記の計算式では足していくのが非常に大変です。 数量×単価を、簡単にかけてくれる計算式はありますでしょうか?? MODやCOLUMNを使用して色々試してみたのですが、わからなかったので教えて下さい・・・ 宜しくお願い致します。

  • 指定した項目を合計したいのですが・・・

    マクロで指定した項目を合計したいのですが・・・・ 機番  項目A 項目B 項目C 項目D 項目E 合計 1     0    1    0    3    2 2     1    3    2    0    1 3     2    0    1    4    1 ・・・ 項目AとCとEの合計をしたいのですが、いつもAがあるとは限りません。 ですから、同じ列に同じ項目があるとも限りません。 このような状況で各機番に対する項目AとCとEをマクロで合計させるには どのようにすれば良いのでしょうか?また、機械も何台あるかはその日集計によって異なります。以上、よろしくお願いします。

  • PC word(2007) 計算式

        数量e    数量f       数量g 品名A  2      5           4    品名B  1      4(4は計算しない)   2 品名C  3      空白        5 品名D  5      3           2 合計   11      8(12)    13  上記表の数量fの縦加算で品名Bの4を加算に入れない計算式を教えてください   

  • エクセル 昇順並び替えの方法について

    質問させていただきます。今のところ受注した日をB列に 品名をC列に、注文者をD列に、E列に1回目の発送日、F列に 2回目発送予定日と3回目以降については列ごとで順に記載しています。   受注日     品名    注文者 1回目発送日 2回目発送日 A___B ________________C__________D__________E_______________F___________・・・ 1,,,,,,2005/03/01  とまと  あ さん 2005/04/01 2005/05/01 .... 2,,,,,,2005/03/02 なすび  い さん 2005/03/20 2005/04/10 ..... ・ ・ ・ といった感じです。 これを自動的にE列以降の日付の若い順に別のsheetもしくは同じ sheetの違う場所に昇順でB列に並べ替えをして、C列と D列は発送日に合致した品名と注文者、E列に受注した日としたいのですが 関数を組み合わせて別表を作成することは可能でしょうか?     発送日   品名    発注者   受注日 A___B______________C___________D___________E____________ 1,,,,,,2005/03/20 なすび   い さん  2005/03/02  2,,,,,,2005/04/01 とまと   あ さん  2005/03/01 3,,,,,,2005/04/10 なすび   い さん   2005/03/02 ・ ・ ・ 表は上記のイメージで作りたいということです。   易しく教えてくださる方がいましたら宜しくお願い 致します。

  • Excel関数で一致した条件を合計する方法

    Excelの関数を使って、E2:E4のセルにF列の「A」~「D」に 一致した場合、G列の「8」または「9」を加算する方法を教えて下さい。 例えば、スギの場合だと...... スギの1日目が「A」の時、F1:G4の表をもとに、「8」になり スギの2日目が「C」の時「7」になり スギの3日目が「A」の時「8」になり、 E2の合計は「8+7+8」と加算されるということです。 スギの合計は23、 マツの合計は25、 サクラの合計は28というふうになればいいのですが・・・。 どなたか教えて下さい。お願いします。   A   B   C   D   E    F  G   1     1日  2日  3日 合計  A  8 2 スギ  A   C   A       B  9 3 マツ  C   D   A       C  7 4 サクラ B   B   D       D  10

  • エクセルで合計を簡単に出すための方法を教えてください

       |  A  |  B |C| D  |  E   | --+---+---+-+--+----+  1 |     |    金 額    |  時間計| --|名前  +---+-+--+----+    2 |     |○:○○|~|0:00| ○:○○| --+---+--------+----+  3 |     |    金 額    |  時間計| --|名前  +---+-+--+----+    4 |     |○:○○|~|0:00| ○:○○| --+---+--------+----+  ・ |                           |  ・ |       (省   略)            |     ・ |                           |    ・ |                           | --+----+-------+----+ 50 | 合計  |   金額合計  |時間合計| ----------------------------- わかりづらくてすいません。B2-D2=E2となるような式を入力してあり、E2の時間の利用金額がB1という表なんですが、50行目で 金額合計を出す時に=B1+B3+B5+B7+・・・ 時間合計を出す時に=E2+E4+E6+E8+・・・ と入力する以外方法はないんでしょうか?書いてはいませんが、Fの列は時間は出さずに金額だけを表示するのでSUM(F1:F49)で金額合計が出ます。いい方法があれば教えてください。

  • 条件があったものだけ合計

    条件があったものだけ合計する数式を使用したいのですが うまくいかないので質問させてください。 エクセルのバージョンは2003を使用しています。 例えばA1に日付、B1にお店、C1に商品、D1に金額が入力されており、 以下100行まで同じ関係(但し日付はランダム、お店はランダム...)で入力されているとします。 そこでF1に、A1:C100の中で、 A1が○○、B1が○○、C1が○○の条件のときの D列つまり金額の合計を出力、という風にしたいのです。 分かりにくければ補足しますので、 どうか宜しくお願い致します。

  • (エクセル)数値だけ合計したい

    複数のセルに入力されている数値だけを抽出し、合計したいと思います。   A     B    C    D    E    F    G 1 合計金額 金額1  金額1理由 金額2  金額2理由 金額3  金額3理由 2      1000円   菓子  3 1500円  1000円   菓子   500円   飲料 4 1520円  1000円   菓子   500円   飲料   20円   消費税 以上のようにA列に合計金額を計算させる数式を考えています。 (ルール) ・B列とC列、D列とE列、F列とG列はセットです。例えば、B列には入力されているが、C列は空白ということはない ・B列とC列→D列とE列→F列とG列の順に入力されていく ・2行目、3行目のように、常に金額が3つとも入力されているとは限らない ・金額が入力されているB列、D列、F列には、「○○円」と「円」も一緒に入力されている (やりたいこと) A列に合計金額を反映させないのですが、以下のように規制したいです (1)2行目のように、金額が1つだけの場合(B列とC列しか入力されていない場合)は、合計金額は空白セルにする (2)3行目、4行目のように、金額が2つ以上の場合(D列とE列や、F列とG列にも入力されている場合)は、合計金額を反映させる (3)合計金額は「○○円」と「円」も一緒に反映させる (考えたこと) B列の金額とB列+D列+F列の合計を比較し、同じならA列は空白、違う場合はB列+D列+F列の合計をA列に反映させるようIF関数を使えばいいのではないか、と考えました。 そこで、まずB列+D列+F列の合計を出す関数を作ってみたのですが、うまくいきませんでした。 =SUM(SUBSTITUTE(B2,"円","")*1,SUBSTITUTE(D2,"円","")*1,SUBSTITUTE(F2,"円","")*1) とすると、金額が3つとも入力されていればいいですが、一つでも空白セルがあると、#VALUE!とエラーになってしまいます。 SUMPRODUCTを使用してできるかと思いましたが、同じ結果でした。 どうすれば、思っているようになるのでしょうか。 ご存知の方がいましたら教えてください。 よろしくお願いします。

  • エクセル 条件付きの合計を速くできないか

    エクセルで以下の処理を行うと、時間が5分以上かかり、 もう少し早くできる方法があるなら教えてください。 A列は01から最大99まで、B列はAから最大ZZまで、C列は000から最大999まで、D列はランダムな数字、E列は○か×か△のデータが入っています。 例えば、ある行は、 03 BC 000 654 ○ また、ある行は、 34 C 009 76598 × です。 そして求めたいのは、D列の合計です。 01でAで001から999のうち○の合計と×の合計と△の合計をそれぞれ求めたい。 同様に 01でBで001から999のうち○の合計と×の合計と△の合計をそれぞれ求めたい。 同じことを繰り返し、最後に 99でZZで001から999のうち○の合計と×の合計と△の合計をそれぞれ求めたい。 合計を求める関数は、SUMPRODUCT関数を使いました。

専門家に質問してみよう