• ベストアンサー

文字列でもっとも多く言葉を抽出したい

  A 1 田中佐藤 2 田中高田 3 佐藤田中 とあったとき、 もっとも多く使われている文字が「田中」であると他のセルに示したいのですが そのような関数はあるでしょうか 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

回答No2です。F2への入力の式は次の式に変更してください。 =IF(E2="","",IF(COUNTIF(E$2:E2,E2)=1,ROUND((COUNTIF(E:E,E2)*1000+1/ROW(A1)),3),""))

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

文字列をどこで切って一つの文字列にするかは別の手段がない限り不可能ですね。 ここではA列の2行目か下方に田中佐藤などの入力があるとして、それを例えば田中 佐藤のように文字列の間にスペースを入れることにします。その後にA列を選択して「データ」タブから「区切り位置」を選択し、表示される画面で「次へ」をクリック、次の画面で「スペース」にチェックを付けて「次へ」、最後に「完了」と操作をします。 それによってA列の文字列はスペースごとの文字列となってA,B,C列などに表示されます。 ここでは仮にC列までに文字列が表示されるとします。 そこでどのような文字列の種類があるのかが分かりませんし、それを明らかにするためにも、またその数を調べるためにもE2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(ROW(A1)<=COUNTA(A$2:A$1000),INDEX(A$2:A$1000,ROW(A1)),IF(ROW(A1)<=COUNTA(A$2:A$1000)+COUNTA(B$2:B$1000),INDEX(B$2:B$1000,ROW(A1)-COUNTA(A$2:A$1000)),IF(ROW(A1)<=COUNTA(A$2:A$1000)+COUNTA(B$2:B$1000)+COUNTA(C$2:C$1000),INDEX(C$2:C$1000,ROW(A1)-COUNTA(A$2:A$1000)-COUNTA(B$2:B$1000)),""))) F2セルには次の式を入力して下方にオートフィルドラッグコピーします。 =IF(E2="","",IF(COUNTIF(E$2:E2,E2)=1,ROUND((COUNTIF(E:E,E2)*1000+1/ROW(A1)),1),"")) そこでお求めのデータですがH,I列に表示させることにしてH2セルから下方には上位1位からの文字列を下方に表示させることにして、I2セルから下方にはH列の文字列が何個含まれていたかを表示させることにします。 お求めのデータは第1位だけの文字列の名前ですからH2セルのデータのみで良いのですが。 H2セルには次の式を入力してI2セルまでオートフィルドラッグコピーしたのちに下方にもオートフィルドラッグコピーします。 =IF(ROW(A1)>COUNT($F:$F),"",IF(COLUMN(A1)=1,INDEX($E:$E,MATCH(LARGE($F:$F,ROW(A1)),$F:$F,0)),IF(COLUMN(A1)=2,LARGE($F:$F,ROW(A1)),"")))

全文を見る
すると、全ての回答が全文表示されます。
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

一番多く出ている文字は「中」ですよ……と、言う突っ込みはおいておいて。 登場する名前のリストが別の場所にあるのならば次の様な方法で可能です。 添付の図では、D2以下に名前のリストがある物とします。 C2に =SUMPRODUCT(1*ISNUMBER(FIND(D2,$A$1:$A$3))) と、入れて下にコピー。 これで名前リストにある名前の登場回数が判ります。 更に最多登場名前を表示するなら(最多が複数名いる場合は、リストの上にある名前を表示)。 =VLOOKUP(MAX(C2:C5),C2:D5,2,FALSE)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 条件に合致する文字列を別シートに抽出するには

    こんにちは。 エクセルで特定の条件にマッチするセルの隣のセルの文字列を別シートに抽出したいのですが、 どの関数を使えば良いか分かりません…。 ご存知の方がいらっしゃいましたら、ご回答頂ければ助かります。 ※シート1に以下の様に入力されているとして、B列が「0」の隣のセル(A列)の文字列をシート2に抽出したいと思っています。 【シート1】    A   B 1 [鈴木] [0] 2 [佐藤] [5] 3 [高橋] [0]    ↓ 【シート2】    A 1 [鈴木] 2 [高橋] ※佐藤は「5」なので抽出しない。 よろしくお願い致します。

  • エクセルで文字列中の任意の文字を変換したい

    マイクロソフトエクセルで、ある文字列が任意の文字を含んでいる場合に、別のセルで数値・別の文字として反映するにはどのような関数を用いればよいのでしょうか。 例えば、「田中鈴木佐藤」という文字列があるとして、文字列の中に「田」があることを自動的に判別して、さらに別のセルに有無の結果を数値・別の文字として反映したいのです。 よろしくお願いします。

  • エクセルで既に入力してある文字列に()をつける

    エクセルで既に入力している文字に あとからカッコをつけるにはどうすればよいでしょう 入力する前にユーザ定義で(@)する方法は知ることができたのですが 後からカッコをつける方法があれば教えてください A1 佐藤 A2 田中 A3 吉田 ↓ A1(佐藤) A2(田中) A3(吉田)

  • 2列のデーターを別シートに1列にまとめる

    初心者です。是非ご教授ください。 【シート1】  佐藤 田中  1 10   2      5 3      5 4  3 5  3 6     10 【シート2】   A B C 1 10 2  5 3  5 4  3 5  3 6 10 佐藤に入力が有ると必ず田中は入力なしになり、田中に入力が有ると佐藤は入力有りません。 ですのでシート2で1列に出来る関数はありますか?

  • EXCEL2007で文字列の右側から特定文字を抽出

    EXCEL2007で1つのセルの文字列の右側から最初の"/"が出現したときまでの文字を抽出する方法を教えてください。 (例)  A 1エクセル/関数/123456/ここがターゲット 2 3 ⇒関数を使用し、上記A1セルの「ここがターゲット」の文字列を抽出したいのです。 神様、どうか教えてください!

  • 複数シートから検索文字がある列を摘出したい

    初心者ですのでお力お貸し下さい。 30sheet以上あるエクセルファイルから、 特定の文字(あるいは数字)が入ったセルを検索し、その特定文字が入った一列を新規sheetへ摘出したいと考えております。 各sheetには下記の様な表が作成されており、1sheetに検索文字は0だったり複数あったりします。 A B C D 1 ◯会社 123 田中 1111 2 ▫️会社 456 佐藤 2222 3 △会社 789 加藤 3333 4 ◯会社 123 田中 4444 (表示がうまくされてなかったらすみません) 上記の様な表から、123(または田中)のみを新規sheetにまとめて表示させたいです。 またsheet毎に田中があったりなかったりしますが、全てのsheetから摘出させたいです。 新規sheetは検索結果のみを表示させて、一つの表にしたいです。 エクセルは2003使用です。 説明が下手で申し訳ありませんが、関数マクロは問いませんので分かり易く教えて頂けると助かります。 よろしくお願いします。

  • 同じ文字列を抽出して新規シート作成

    A列~E列までデータが入力されています。 E列は所々、空白セルがあります。 1行目は見出しです。 元データのA列の中で同じ文字列を探して 見出しと該当するA~E列の行を新規シートとして作成。 その際、シート名はA列の文字列。 A列の文字列が2つ以上見つからなくても A列の文字列を新規シートにする。 最終行は常に変動します。 元データ (B列~E列は割愛) A-1 名前 A-2 鈴木 A-3 佐藤 A-4 鈴木 A-5 山田 A-6 佐藤 新規シート名 「鈴木」 A-1 名前 A-2 鈴木 A-3鈴木 新規シート名 「佐藤」 A-1 名前 A-2 佐藤 A-3 佐藤 新規シート名 「山田」 A-1 名前 A-2 山田 上記の事をマクロで実行させたいです。 ご指南の程、宜しくお願い致します。 エクセル2013

  • 別々の行で一致するセルの値を抽出する

       A    B 1  田中   山本 2  鈴木   佐藤 3  山本   奥田 この場合 A列とB列の両方に同じ文字がある時にC列にしるしが欲しい。もしくは別のシートにそのセルの値(文字)を反映させたい。 のですがなかなか数式が完成しません。IF関数?LOOKUP系? 誰か教えて下さい!

  • Excel 文字列の抽出

    Excel初心者です。 1つのセルに以下のデータが入力されています。 A:文字列B:文字列C:文字列D:文字列 このセルの「C:」から「D:」の間にある文字列を 他のセルに抽出する方法を教えてください。 宜しくお願いいたします。

  • エクセルでA1のセルの文字とB1のセルの文字をくっつける方法

    たとえばA1のセルに「田中」という文字が入力されていて、B1のセルに「太郎」という文字が入力されているとします。 これをC1のセルに、A1セルとB1セルの文字をくっつけて「田中太郎」という文字を表示させたいのですが、関数か何かを使用してこういったことはできませんでしょうか? ちなみに、A列及びB列セルに文字が200個くらい入力されているので、コピーペーストでは辛いんです。

専門家に質問してみよう