質問: excel関数について excel関数について excel2003を使用しております。 お知恵を拝借願います。 sheet1、a列、a2~a100セルに「1~10」の数字がランダムに入力されています。 数字は「グループ1」、「グループ2」・・・「グループ10」という意味です。 sheet1、b列、a2~a100セルに「1~20」及び、「ok」、「ng」がランダムに入力されています。 sheet2、a列、a2~a21セルに「1~10」までの数字(グループ)が順に入力されており、 sheet2、1行目、b1~w1セルに、「1~20」及び「ok」、「ng」が順に入力されております。 ここで、sheet2のb2セルに、sheet1にて「グループ1」は 「1」をいくつ選択しているかを返す式を入れたいのですが、 sumif?countif?等でいろいろと試してみたのですが、うまくいきません。 同じように、c2セルであれば、「グループ1」は「2」をいくつ選んでいるか。 w5であれば、「グループ4」は「ng」をいくつ選んでいるかの式を入力したいのです。 拙文乱文、大変恐縮ですが、ご教示頂きたく何卒宜しくお願い致します。
回答: 私も最初、 =sumproduct((sheet1!$a$2:$a$100=$a2)*(sheet1!$b$2:$b$100=b$1)) という数式を自力で作成して試した際に、#n/aエラーが出たため、投稿する事を控えていたのですが、色々試行錯誤している内に、数式中のsheet2の$a2とb$1の部分を、一旦、1に変えて =sumproduct((sheet1!$a$2:$a$100=1)*(sheet1!$b$2:$b$100=1)) という数式にしてから、sheet2のb2~w11の範囲に貼り付けた後、b2セルに入力した数式を再度 =sumproduct((sheet1!$a$2:$a$100=$a2)*(sheet1!$b$2:$b$100=b$1)) に入力し直してから、ドラッグ機能で他のセルにコピーした処、何故か正常にカウントする様になりました。 本来は、数式中の$a2とb$1の部分を、一旦、1に変えてから、再度元に戻す操作は、単なる二度手間であり、何の意味も無い操作の筈なのですから、何故それで正常にカウントする様になるのかは全く解りませんし、質問者様のパソコンで同じ操作を行ったからといって、エラーではなくなる保証もありませんが、駄目元で試してみられては如何でしょうか。 尚、どうしても駄目だった場合には、sumproduct関数を使用する方法と比べればスマートではありませんが、作業列を設けるという方法もあります。 今仮に、sheet3のa列を作業列に使用するものとします。 まず、sheet3のa2セルに次の数式を入力して下さい。 =sheet!1$a2&"-"&sheet!1$b2 次に、sheet3のa2セルをコピーして、sheet3のa3~a100の範囲に貼り付けて下さい。 そして、sheet2のb2セルに次の数式を入力して下さい。 =countif(sheet3!$a:$a,"="&$a2&"-"&b$1) 続いて、sheet2のb2セルをコピーして、sheet2のb2~w11の範囲に貼り付けて下さい。 以上の方法でも、同様にカウントする事が出来ます。