• ベストアンサー

エクセル・数値を足して出力するには

画像の左のような表があるとします。 Aさんには3つ、Bさんには2つ、Cさんには4つの数値があり、この合計の値が知りたいとします。 そして、画像の右のような形にしたいです。 (実際にはAさん、Bさんではなく001、002といったコード番号がふられています。) 表を変形してもいいですし、他の場所や他のシートに出力する形でもかまいません。 この作業を非常に多く行わなければならないため、一度に行う方法があればご教授をお願いします。

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

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

こんばんは! 氏名列はすべて埋まっている訳ではなく、同じ人の場合は空白になっているというコトですよね? 一応そういうコトだとしての一例です。 1行目はタイトル行で2行目以降にデータがあるとします。 ↓の画像のように作業用の列を設けます。 作業列C2セルに =IF(B2="","",IF(A2="",C1,A2)) としてオートフィルでずぃ~~~!っと下へコピーしておきます。 E2セルに =IF(COUNTA($A$1:$A$1000)-1<ROW(A1),"",INDEX($A$1:$A$1000,SMALL(IF($A$1:$A$1000<>"",ROW($A$1:$A$1000)),ROW(A2)))) E2セルは配列数式になってしまいますので、この画面からコピー&ペーストする場合は E2セルに貼り付け後、数式バー内で一度クリック → 編集可能になりますので Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 F2セル(配列数式ではありません)には =IF(E2="","",SUMIF(C:C,E2,B:B)) という数式を入れ、E2・F2セルを範囲指定し、F2セルのフィルハンドルで下へコピーすると 画像のような感じになります。 ※ とりあえず1000行目まで対応できる数式にしていますが、データ量が多い場合は配列数式より 作業列をもう1列設けて対応する方が良いかもしれません。 以上、参考になれば良いのですが・・・m(_ _)m

その他の回答 (2)

noname#171966
noname#171966
回答No.3

元の表の作りが良くないのだとおもいます。 なぜ、 |A |B |C | |10| 5| 6| |15| 8|10| |  |13|15|        |10| のような表の作りではないのでしょうか。 または、コード数が非常に多くて古いエクセルでは列数が足りないのならば、 Aさん 10 Aさん 15 Aさん 13 Bさん 5 Bさん 8 Cさん 6 Cさん 10 Cさん 15 Cさん 10 でも、いいです。 表を変形しても良いとおっしゃっていますが、元の表から直して頂くのが一番理にかなっているかと思います。

tarte777
質問者

補足

ご指摘ありがとうございます。 同じタイトルで質問をし直しましたので、そちらをご覧くだされば幸いです。

回答No.1

もう少し詳しく書いた方がヒントがもらえると思います。 例えば、”Aさんには3つ、Bさんには2つ、Cさんには4つの数値”についてですが、それぞれの3つ、2つ、4つは固定でしょうか? また、AからCまでの3種類固定なのか可変なのか? いろいろやり方ありますので、本当にやりたい事を書かれた方が良いと思います。

関連するQ&A