• ベストアンサー

エクセルについて

A列、C列に名前が入っていてB列とD列に空白,0,1,2が入っています。 A列とC列の組み合わせに応じて、B列とD列の1or2である数をカウント出来るようにしたいのですが、どのようにしたらよいのでしょうか?

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

  • ベストアンサー
  • kazh
  • ベストアンサー率31% (10/32)
回答No.3

配列関数をつかってみました。質問の内容が理解できていないかも知れません。 結果を表示させたい部分に =SUM(IF((A1:A10="小泉")*(C1:C10="亀井"),(B1:D10),"")) と入力して[Ctrl]+[Shift]+[Enter]と押して確定してください。すると数式が{}で囲まれます。 これでA列に小泉C列に亀井さんのグループの合計が出ると思います。これで条件をかえれば実現できると思います。 なお、条件はセルに入れておいてもできますので、たとえばA12に小泉B12に亀井と入れておき =SUM(IF((A1:A10=A12)*(C1:C10=B12),(B1:D10),"")) でもOKです。ただし、名前の列に数字があると不都合が起きると思いますので、必ず文字列にしてください。

yuhig
質問者

お礼

ありがとうございます。 今からやってみます。

その他の回答 (2)

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

元シートを保存するとして」、シートをコピーします。 コピー先のシートで E列に=A1&C1といれ、E2以下に式を複写します。 E列で「データ」「並べ替え」をします。 データ数が少なければ、目視(人間が目で見て)で数えます。 多いなら、VBAで Sub test01() '最下行数を知る d = Range("a1").CurrentRegion.Rows.Count m = Cells(1, "E") T = 0 '------- For i = 1 To d '直前行の組み合わせと変ったか If Cells(i, "E") = m Then '変らないときは足すだけ T = T + Cells(i, "B") + Cells(i, "D") Else '変ればF列に集計値を書きこむ Cells(i - 1, "F") = T T = 0 '計数を足す T = T + Cells(i, "B") + Cells(i, "D") '現在行の組み合わせを次行処理のため残す m = Cells(i, "E") End If Next i Cells(i - 1, "F") = T End Sub を実行します。 F列に計数が出ます。 計数はB列とD列を組み合わせごとに、加えた数字を出していますが、宜しいでしょうか。(質問の意味が補足をよんでも、十分掴めませんでしたが。) VBAの実行は シートでALT+F11(VBE画面になる) ALT+I(挿入)、ALT+M(標準モジュール) 上記をコピー貼りつけ。 カーソルをコード部分のどこでも置いてクリックし F5(事行)

yuhig
質問者

お礼

ご丁寧にありがとうございます。 ちょっと難しすぎて、よく理解できません。 また時間があるときにやってみます。

  • coco1
  • ベストアンサー率25% (323/1260)
回答No.1

何か一例を示していただけませんか? ちょっと漠然としすぎていて、意味不明です。 また、関数で処理したいのか、マクロでも構わないのかを付記いただければなお良いです。

yuhig
質問者

補足

わかりにくくてすいません。 えーっと、A1~A7には小泉、A8~A10には藤井、C1,2は空白C3~C5に亀井C6~C8藤井と入っているとして、 B1,2,3,…10=0,1,1,…1 D1,2,3,…10=0,0,2,…0となっているとします。 ABとCDがひとつの組になっていると考えてください。 A小泉-C空白、A小泉-C亀井、A小泉-C藤井の三つに分けてB,D列に含まれる1or2の数をカウントしたいのです。 A小泉-C空白の場合B1,2=0,1、D1,2=0,0なので合計1というふうな感じなんですけど。 わかっていただけますでしょうか? 説明へたくそですいません。 マクロの処理っていうのがよくわかんないんですけど、できれば関数処理のほうでお願いします。 マクロのほうがわかりやすい、もしくは今後の役に立つのであれば、そちらも教えていただきたいです。 お願いいたします。

関連するQ&A