• 締切済み

関数の使い方について

関数の使い方についてお尋ねします エクセルのSheet1のA列には人名(太郎、次郎、三郎など。行数は毎回違う。)が記されています。 同じSheet1のB列にはある文字列(cd、cde、cdefなど。行数は毎回違う。)が記されています。 つまり、人名に対して文字列が記されているシートなのですが、 太郎とcd、太郎とcde、太郎とcdefの組み合わせの数は毎回違う数です。 (次郎、三郎も組み合わせの数は毎回違う) この時に、 (1) 太郎とcdの組み合わせが存在する数 (2) 太郎とcdefの組み合わせが存在する数 を求めて、同じファイル内の別のシート(Sheet2)のセルに結果を表示((1)と(2)は違うセルに表示する) したい場合に、最適な関数とその数式を教えていただきたいのです。 SUMPRODUCTとFINDを使い、式を作ってみましたが (2)は検索ワードを”cdef”で検索すればよいのですが、 (1)を求める為の検索ワードとして”cd”を使うと、”cdef”もカウントしてしまい、 思う結果が得られません。 ほかの関数を使うにも、どれが最適なのか判断がつかず、大変苦慮しております。 とても簡単なことかもしれませんが、何卒お力をお借りしたいと思い、質問させていただきますので、 よろしくお願いいたします。

みんなの回答

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

こんばんは! 外していたらごめんなさい。 ↓の画像のような感じではどうでしょうか? Sheet2のB3セルに =IF(OR($B$1="",B2=""),"",SUMPRODUCT((Sheet1!$A$2:$A$1000=$B$1)*(Sheet1!$B$2:$B$1000=B2))) という数式を入れ、隣のC3セルまでオートフィルでコピーしています。 検索したい氏名・データに変更があれば数式はそのままで表示できるようにしてみました。 以上、参考になれば良いのですが・・・m(__)m

akwb
質問者

お礼

式の合間にシート名を指定する部分を追加しましたが、 結果を求めることができました 名前と検索したいデータ名を入れるところが ポイントですね ありがとうございました

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 =SUMPRODUCT((CONCATENATE(A1:A10,B1:B10)="太郎cd")*1)、=SUMPRODUCT((CONCATENATE(A1:A10,B1:B10)="太郎cdef")*1) 因みにエクセル2007以上なら=COUNTIFS(A:A,"太郎",B:B,"cd")の数式で可能です。

akwb
質問者

お礼

Sheet2に答えを求める部分を追加しましたが、一番簡単な式でわかりやすいです 朝から貴重なアドバイスをいただき ありがとうございました

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

=SUMPRODUCT((Sheet1!$A$2:$A$100="太郎")*(Sheet1!$B$2:$B$100="cd") では駄目なのですか?(A列が"太郎"でB列が"cd") 含む検索の場合は =SUMPRODUCT((Sheet1!$A$2:$A$100="太郎")*ISNUMBER(FIND("cd",Sheet1!$B$2:$B$100,1))*ISERROR(FIND("cde",Sheet1!$B$2:$B$100,1))) のようになります。(A列が"太郎"でB列が"cd"を含み、"cde"を含まない)

akwb
質問者

お礼

早々にありがとうございます 確認してみます 大変ありがとうございました

関連するQ&A