質問: excel関数について excel関数について sheet1、a1~a1000セルに「1~10」までの値がランダムに入力されております。 数字は「グループ1」、「グループ2」・・・という意味です。 b列、b1~b1000セルには「1~4」までの値がランダム入力されております。 b列については、空白のセルもあります。 sheet2、a1~a10セルに、「1~10」までの値、「グループ1」~「グループ10」までが順に入力されております。 ここで、sheet2、b列~e列、それぞれの1~10セルを使用し、、 それぞれの「グループ」がsheet1にて「1~4」の値をいくつずつ選んでいるか算出したいのです。 「グループ1」について、「1」のカウントはb1セル、「2」のカウントはc1のセルに返します。 同じように「グループ2」はb2~e2のセルに、「グループ3」はb3~e3のセルに値を返したいのです。 「countif」等の関数でいろいろと試してみたのですがうまく反映されません。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。
回答: 複数の条件でカウントを行いますから countifs関数でしょうか。 =countifs(sheet1!a1:a1000,"=1", sheet1!b1:b1000,"=1") ただしこの関数は excel2007 から追加されたものですので、excel2003 以前では使用できません。 excel2003以前を使っている、またはそのブックを使う可能性があるのでしたら sumproduct関数を使いましょう。 これで a列に 1 が入力されて、同じ行のb列に 1 が入力されたセルをカウントできます a列に 2、b列に 3 なら =sumproduct((sheet1!a1:a1000=2)*(sheet1!b1:b1000=3)) です。 a列の数値に該当するところを sheet2 の a列を参照させると応用もできるので良いでしょう。 自分なら横着するために =sumproduct((sheet1!$a$1:$a$1000=$a1)*(sheet1!$b$1:$b$1000=column(a1))) こんなふうに書きますね。 これを右と下方向にコピーするだけです。