• ベストアンサー

エクセルについて

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/17068)
回答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

  • エクセル 関数 countif について

    A列、B列に -100~100 を10単位で入力 A列&B列でC列に文字列を生成 D列にcountifでC列の文字列がいくつあるかカウント 10-20の組み合わせが1個 20-10の組み合わせが3個 なのですが、どちらも4個と表示される ほかの組み合わせでは 正しい個数が表示される 何を改善したらよいでしょうか?

  • エクセルで特定のセルだけのカウント

     A  B  C   D 1           × 2   ×  ×  × 3 × 4 × 5 ×    × 上記のような表で、列ごとにその列だけが×のセル数をカウントする方法 がわかりません。 例えばA列=2(3、4行目は他の列に×を含まないのでカウント) B列=0 C列=0 D列=1(1行目) となります。 実際には行数が多いため計算式でカウントしたいと思っています。 どうぞよろしくお願いいたします。

  • エクセル関数について

    質問です。下記のようなデータ管理をしているものがあり 集計を出したいのですが、うまくいきません。 1行目 A列   B列  C列 2行目 商品ID  商品名 商品名2 3行目 111   りんご   4行目 222   みかん  愛媛 5行目      すいか   6行目 222   みかん 7行目 444   いちご  熊本 8行目 空白予備列 9行目 空白予備列 10行目 空白予備列 条件:C列商品名2が入っていないもので A列商品IDが入っているものだけの数もしくはA列商品IDが入っていないものの数をカウントしたいのですが全セルを指定すると、空白予備列の空白までカウントされてしまいます。なので、条件としてはB列商品名が入っていてA列商品IDが入っているものだけの数もしくはA列商品IDが入っていないものの数をカウントしたいのですが、 何か良い方法はありますか? 色々やってみたんですがなかなかうまくいきません。 空白予備列を作っているのは今後どんどん増えていくので その為にいちいち範囲指定を行うのは面倒なので、 上記で出来る方法があればその方法でやりたいです。 どうか御願いします。

  • エクセル SUMPRODUCT関数について教えてください

    エクセルで作成した表から ○○かつ●●のデータ個数を求めたく、 SUMPRODUCT関数を こちらで調べておりましたが どうしても解決しない部分があります。 どうぞ よろしくお願いいたします。 下記8桁数字は、日付です。 カウントしたい数は、B列(終了)が、A1セルに入力された年月かつ、区分(C列)が「A」の数です。 =SUMPRODUCT((LEFT(B2:B100,6)=A1)*(C2:C100="A")) こちらで、『B列=A1セル かつ C列="A"』のみのカウントは出来たのですが、 終了延長(D列)が空欄でない場合は、D列日付データの方をカウントする。 早期終了(E列)が空欄でない場合は、D列・B列よりも E列を優先し、カウントする。という条件を付けたいのですが、 Sheet1 A1セルに「200810(数を調べたい年月を入力)」 (開始)  (終了)     (区分)  (終了延長)  (早期終了)  A列     B列      C列     D列      E列 20061001   20081001   A    -        - 20070926   20081020   A    -        - 20071102   20081009   A    20081201    - 20080101   20081013   B    -        - 20080208   20081010   A    -        20080210 ・・・ この場合、「2」となるようにです。 IF、OR関数あたりかな と考えておりますが、SUMPRODUCT関数のどの部分で条件付ければ良いか解りません。 説明下手で大変申し訳ございませんが、ご助力いただければ幸いです。 

  • エクセル、行数をカウントしたい。

    エクセル初心者です。 よろしくお願いいたします。 エクセルでこのような表を作っています。   A  B  C 1 10 15 2 20 3    10 4    15 5 10 6 10 10 7 8 この時、データの入っている行数をカウントしたいのです。 上の例では 「6」 です。 途中に空白の行はありません。 A列、B列にはどちらにも数字が入る場合と、どちらかにしか 入らない場合があります。 なので COUNT は使えないですよね? 今まではデータを入力後、下の空白の行を削除し、C列で COUNTBLANK として求めていたのですが、表の長さ(行数)が一定でないため、 体裁が悪くなってしまっていました。 希望としては。 最終行のC列に「終了」などと入れると、その文字列を判別 してくれて、それより上の行数をカウントしてくれる。 または 例えば OR を使って、A列B列どちらかにデータがある 場合のみ、カウントしてくれる。 こんなワガママなことができたら、と思っております。 補足が必要ならばいたします。 それと、遅くなるかもしれませんが、お礼は必ずさせていただきます。

  • エクセルでの行数カウント

    エクセルで A列 B列 1行 ●1 C ⇒カウント 2行 X1 D  3行 ●2 E 4行 X2 F 5行 ●3 C ⇒カウント 6行 ●4 D 7行 X3 E A列で「●」を含み、なおかつB列で「C」である行の数(例でいうと「2」)を求める 数式を教えてください。 ちなみに A列 B列 1行 ● C ⇒カウント 2行 X1 D  3行 ● E 4行 X2 F 5行 ● C ⇒カウント 6行 ● D 7行 X3 E であればA列が全く「●」に等しいものでカウントする場合は、下記の関数で計算できます。 {=SUM(IF(B1:B7="C",IF(A1:A7="●",1,0)))} COUNTIF関数では、"●*"のように「任意の文字」を指定することが可能ですが、IF関数の 中ではできないようです。

  • 《エクセル2000》SUMPRODUCT関数、この式のどこがいけないのか…

    こんにちは。 A列が1であり、B列とC列に共に数字が入っている(空白でない)ものをカウントしたいと思い、以下の関数を書きました。 =SUMPRODUCT((A1:A50=1)*(B1:B50<>"")*(C1:C50<>"")) ですがこの式ですと、「B列とC列が共に空白なもの」の個数が返って来てしまいます。 「<>」が怪しい気がするのですが、具体的に何がいけないのでしょうか? また、欲しい数字を出すようにするにはどうすればいいのでしょうか。 よろしくお願いします…

  • エクセルで・・・

    エクセルで以下のシートがあります。 A   B  C  D 小林  ●  ●  ● 田中 佐藤  ●     ● このシートで、B/C/D列に数にかかわらず、一つでも『●』が入っていたら、1とカウントしたいのです。上のシートでいけば、小林は『1』、田中は『なし』、佐藤は『1』で、合計『2』とカウントしたいのです。どのような関数を使えばいいでしょうか?宜しくお願い致します。

  • EXCELでうまく反映させたい

    A列に名前、B列に数、C列に日付が入っています。 それが100行あります。 D列以降の1行目にに7/1から7/31まで日付が入っていて、A列からC列までをD列の2行目から100行目までに反映させて、表を作りたいと思っています。 A・B列・C列にそれぞれ名前や数、日付を入れるとD列以降の日付の下に必要な数量が入るように数式を作る方法はありますか? A・B・C列は専用端末からデータを持ってくるので、その度にD列以降を手で作るのは大変です。A・B・C列だけだと、見た目に見づらいので何日にいくつ(数)必要かを一目で見られるようにしたいのです。 何かいい方法を思いつく方いらっしゃいますか? よろしくお願いします。

  • EXCELの関数を教えてください。

    シート1 A列には1と2 B列には名前 C列には備考1(入力のあるセルもあればないセルもあり)が入力されたシートがあるとします。行は無限です。 シート2への表示を A列に1が入力されていた時のみC列の備考欄に入力されている文字をかえし、空白の場合は空白にしたいのです。 A列に2が入力されている場合は全部が空白です。 IFとISBANKの組み合わせみたいな感じなんですがよく分かりません。宜しくお願いします。

専門家に質問してみよう