質問: 関数の使い方sumproduct?dcount? エクセルの関数の使い方についてアドバイスをお願いいたします あるシート(仮にsheetaとする)において b列にあるデータの任意の文字(仮にcとする。文字位置は固定ではない)であって、且つ d列にあるデータの任意の文字(仮にeとする。文字位置は固定ではない)の双方を満たすセルの数を数えて、さらにその結果は同じファイルの中にある別のシート(仮にsheetfとする)に表したいと思います これについては関数sumproductと関数findを使って導きたいと考えておりました。 =sumproduct(isnumber(find("c",b1:b100))*isnumber(find("e",d1:d100))) として同じシート上に結果を表すことはできたのですが、別シートに表すところで、 つまづいてしまいました(おそらく初歩的なミスと思うのですが・・・。) 別のシート名を表す部分をどこに入力したらいいのかアドバイスいただきたく お願いいたします それとも別の関数(dcountなど)を使用したほうがよりベストなのか迷っています dcountの使い方も精通しておらず苦慮しております 調べてみましたが前例を見つけだす事ができませんでした 簡単なことでしたらすみません エクセル2003です どうぞアドバイスのほど よろしくお願いいたします
回答: 2列のそれぞれの条件での探索は、エクセルでは(他のデータベース言語ではその備えがあるが)難しい。 だから2列を結合して、1列のデータに持っていって(そのため作業列は要るがやむをえない)、考える。 ーー sheet2で第2行目から(sheet2は特別意味なし) c列 d列 e列(何処でも空き列)でよい) asdfxyzuasdf......xyzu...... dfgsxufdfg.......sxuf...... sxyufs.........xyuf...... dfghudedfg.......hude...... ersdgggsxyzderersdggg...sxyzder... tsdftt.........sdft...... sadres.........adre...... dfgdfgdfg.......dfg....... xsdfghwexyzxsdfgh....wexyz..... e2の式は =c2&rept(".",10-len(c2))&d2&rept(".",10-len(d2)) 後尾に埋める文字をコンマにしているのは、桁数が良くわかるようにしている。スペースだとわかりにくいが、スペースのほうが本来良い。 c,d列とも最大10桁以内と仮定した場合の式。両列で最大桁が違っていても式の定数が変わるだけ。 仮に定桁式結合と呼ぼう。 これで c列はsdを含み、かつd列はxyzを含む行の数を求める 空きセルに =countif(e2:e10,"*sd*xyz*") で上記例では3 ワイルドカードが使える。 これで良いと思うが、色んなケースを十分考えていないので、質問者がチェックしてください。 ーー 別シートに式を入れるなら =countif(sheet2!e2:e10,"*sd*xyz*") この部分は常識的なことです。