• 締切済み

一文の中に名簿中の名前がいくつあるか

WINDOWS7、エクセル2003です。             A                B     C      D     E    1  山田、伊東風邪。山本ノロウィルス。 青田     3  2                                        山田 3                                        上田 4                                        伊東 5                                        山本 上の表のように、A列には短文が入っていて、何人かの名前が記入されています(文があっても名前なしの時もあります)。 D列には、最大30人の名前が記入されています。 A列の短文の中に、D列の名前が何人出現しているか、人数をE列に返したい。 朝から調べましたが分かりませんでした。SUMPRODUCTとかCOUNTIFを使うのだろうとは見当がつきましたがよく分かりません。 よろしくお願いします。  

みんなの回答

回答No.4

既出の ISNUMBER(FIND) の代わりとして COUNTIF 関数を入れることも可能です。 E1 =sumproduct(countif(a1,"*"&D$2:D$31&"*")*(D$2:D$31<>"")) もしも同じ人物が 1 文の中に複数回出てくるという場合、上式や既出の回答の数式では、同じ人物を 1 人として数えます。次式は、延べ人数を求めます。 E1 =sumproduct((len(a1)-len(substitute(a1,D$2:D$5,)))/(len(D$2:D$5)+(D$2:D$5="")))

t452431t
質問者

お礼

MarcoRossiItaly 様 お礼が遅くなりました。 画像付きで、しかも同一人物が複数回出た時に1人とカウントする場合と延べでカウントする場合と両方教えて頂きました。 役に立ちます。 ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

SUMPRODUCTはイマイチどうでもよくて、中で何を計算するかでやり口は様々あります。 =SUMPRODUCT(COUNTIF(A1,"*"&D1:D30&"*")*(D1:D30<>"")) とか =SUMPRODUCT(1*(SUBSTITUTE(A1,D1:D30,"")<>A1)) とか =COUNT(0/FIND(IF(D1:D30<>"",D1:D30),A1)) をCtrl+Shift+Enter とか >式の理解に苦しみましたが、本やネットを動員してなんとかわかってきました。 ツールメニューのワークシート分析の中にある「数式の検証」という機能を利用します。 ただしこれは、まず最初は「正しく動作する事が分かっているお手本の数式」を理解するのに使います。 計算ステップが「どうしてこういう具合に進むのか、なぜそうなるのか」正しく理解できたら、次のステップとして新しい数式を工夫するのにも利用する事ができるようになります。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>SUMPRODUCTとかCOUNTIFを使うのだろうとは見当がつきましたがよく分かりません。 SUMPRODUCT関数については既に回答が出ていますので割愛します。 COUNTIF関数では条件を設定することが困難となります。 代わりにIF関数で配列値処理すればCOUNT関数で計数できます。 =COUNT(IF(FIND(B2:B31,A1)*ISTEXT(B2:B31),1,"")) また、SUM関数では配列値を工夫して計数できます。 =SUM(NOT(ISERR(FIND(B2:B31,A1)))*ISTEXT(B2:B31)) 上記の式は配列値を扱いますので数式バーへ入力後、Ctrl+Shift+Enterで確定してください。

t452431t
質問者

お礼

bunjii様 ありがとうございました。 一つの目的に対して、いろいろな解決法があることがわかりました。 式の理解に時間がかかりましたが、なんとかわかってきました。 勉強になりました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

=SUMPRODUCT(ISNUMBER(FIND(D2:D31,A1))*(D2:D31<>"")) みたいな。

t452431t
質問者

お礼

keithin様 ありがとうございました。 さっそく入力したところ、見事に解決してすっきりしました。 もっとも、式の理解に苦しみましたが、本やネットを動員してなんとかわかってきました。

関連するQ&A