• ベストアンサー

セル内の文字列に複雑な処理をしたい

kbonbの回答

  • ベストアンサー
  • kbonb
  • ベストアンサー率51% (254/492)
回答No.2

こんにちは (1)セル内に"みかん"と"りんご"という文字列があったら、これを取り出して、右隣のセルに表示。「みかん」が複数出てくる場合、その数の分だけ「みかん」と表示。 =REPT("みかん ",(LEN(C1)-LEN(SUBSTITUTE(C1,"みかん","")))/LEN("みかん")) &REPT("りんご ",(LEN(C1)-LEN(SUBSTITUTE(C1,"りんご","")))/LEN("りんご")) (2)セル内に"みかん"と"りんご"という文字列があったら、これを"A","B"に置き換えて、右隣のセルに表示。「みかん」が複数出てくる場合、その数の分だけ「A」と表示。 =REPT("A ",(LEN(C1)-LEN(SUBSTITUTE(C1,"みかん","")))/LEN("みかん")) &REPT("B ",(LEN(C1)-LEN(SUBSTITUTE(C1,"りんご","")))/LEN("りんご")) (3)セル内の数値データと"を食べた"、"を買った"、"を売った"を取り除いて、右隣のセルに表示 =REPT("みかん ",(LEN(C1)-LEN(SUBSTITUTE(C1,"みかん","")))/LEN("みかん")) &REPT("りんご ",(LEN(C1)-LEN(SUBSTITUTE(C1,"りんご","")))/LEN("りんご")) &REPT("ぶどう ",(LEN(C1)-LEN(SUBSTITUTE(C1,"ぶどう","")))/LEN("ぶどう")) &REPT("すいか ",(LEN(C1)-LEN(SUBSTITUTE(C1,"すいか","")))/LEN("すいか")) (4)セル内に"か"を含む文字列があったら個数に関係なく"A"に置換して右隣のセルに表示 =IF(COUNTIF(C1,"*か*"),"A","")  以下のページもご参考になるのでは? 【エクセル技道場】-関数-セル内の単語数カウント http://www2.odn.ne.jp/excel/waza/function.html#SEC12

参考URL:
http://www2.odn.ne.jp/excel/waza/function.html#SEC12
kiroro302
質問者

お礼

janmaさん、ご回答ありがとうございます。関数だけでもこのような処理ができるとは、本当に勉強になりました。janmaさんがご教授くださった関数を解析しようと関数を調べまくりました。その間何度「なるほど~~」と発したことでしょう!!こういう関数の組合せはよく使われる手法なのでしょうか?それともjanmaさんの豊富なご経験からすっと思い描かれるものなのでしょうか?いずれにしても、いろいろ困難なことに突き当たるたびに得るものは大きいなぁと重い知らされました。これからも、1つ1つ解決して知識を身に付けていきたいと思います。本当にありがとうございました。今後もまた何かありましたら、ご教授を賜りたいと思いますので、よろしくお願いします。

関連するQ&A

  • 文字列の置換

    AファイルのA1セルからBファイルのC1セルにデータを反映させたとします。 その際に以下のように文字列を複数置換させたいのです。 A1セル   C1セル りんご → みかん みかん → ぶどう なし  → 空欄 空欄  → 空欄 上記のようにセルのデータを複数置換することはできるのでしょうか? 又、置換できるならどの関数を使えばよいのでしょうか?

  • 行内で空白、重複を除いた結果を別セルに表示したい

    A~D列に言葉が入っているのを、F列以降に空白、重複を除いて、結果を表示したいのですが、やり方がわかりません。(別シートではなく、同じシート内で処理したいです。) A~D列に入る言葉は200個程の種類があります。 行は4万行くらいのデーターがあるので行列を入れ替えた表には出来ません。 ジャンプで空白セル選択→まとめて削除をすると、データー数が多いので、パソコンが固まってしまいました。 なので、行ごとに処理をしたいのです。 よろしくお願いします。  A     B   C    D        F     G    H    I みかん ぶどう りんご みかん → みかん りんご ぶどう みかん (空白) (空白) みかん → みかん (空白) ぶどう りんご みかん → ぶどう  りんご みかん みかん ぶどう りんご すいか → みかん ぶどう りんご すいか

  • Excelでの文字列とりだしについて

    Excel(version2013)について質問です。 ある文字列を検索範囲内で検索し、みつかった場合、 その文字列を返すようにしたいです、どのような関数を使えば宜しいでしょうか。 例えば下記A列に検索したいリスト(りんご、ばなな、ぶどう)があり、 検索したい範囲がD1~E5とします。 その場合、B列に関数を使った式を入れ、 りんご、ばなな、空文字、りんご、ぶどうと並ぶようにしたいです。 どのような関数を使えば宜しいでしょうか。       A         B      C      D        E 1  りんご   (式)        りんご  みかん 2  ばなな  (式)        ばなな すいか 3  ぶどう   (式)        すいか みかん 4              (式)        りんご  すいか      5              (式)        ぶどう  みかん                                      

  • エクセルのセル内の重複文字列処理について

    よろしくお願いいたします。 セル内にスペースで区切られた文字列(単語)があり、文字列の数は不確定です。 その文字列の中で重複する文字列があり、それらを1つにまとめたいという要望です。 セルの行数は約6000ほどあります。 例 A1セル:リンゴ リンゴ みかん B1セル:リンゴ みかん A2セル:みかん バナナ みかん バナナ みかん B2セル:みかん バナナ ・・・ よろしくお願いいたします。 Windows7 HomePremium Office2010

  • ある文字について、異なった列の特定行への一括置換

    以下の表があったとします。置換前の表中の×を各列の最後の文字に置き換えたいです。たとえば、A4の×は野菜、B2とB4の×は肉、など。実際には膨大なデータがありますので、一括で処理する方法をご教示いただけますと幸いです。よろしくお願いいたします。 【置換前の表】   A    B    C    D 1 りんご みかん ぶどう なし 2 みかん ×   ×    みかん 3 みかん ぶどう ×    × 4 ×    ×   ×    × 5 ぶどう なし   りんご  りんご 6 ぶどう みかん なし   なし 7 野菜   肉   穀物   魚 【置換後の表】   A    B     C    D 1 りんご みかん ぶどう なし 2 みかん 肉   穀物   みかん 3 みかん ぶどう 穀物   魚 4 野菜  肉    穀物   魚 5 ぶどう なし   りんご  りんご 6 ぶどう みかん なし   なし 7 野菜  肉    穀物   魚

  • A列にある文字データで△△を含むセルの値をB列に□□にして置き換えしたい

    A列に文字データが100行まであります。    A           B    1 ミカンを食べた     ZZ 2 イチゴを食べた     XX 3 西瓜を食べた      YY 4 ミカンを捨てた     ZZ 5 西瓜を拾った      YY 6 ミカンを無くした    ZZ 7 西瓜を貰った      YY 8 イチゴをあげた     XX それを表のようにB列(任意の列)に置き換えたいです。 イチゴを含むセルはB列にXXをミカンはZZみたいな感じです。 A列のセルには同じ文字列は(今のところ)含みません。 文字の一部を置き換えて変換し、それを繰り返すところまではできましたが、上記のことがができません。 VBAを使って一発で変換したいのですが教えていただけますでしょうか?

  • 空白セルで区切られた文字列の種類を求める関数

    以下の条件を満たす excel関数がありましたら 教えてください。    A       B 1 りんご 2 みかん 3 りんご 4 なし 5 なし      3 ← 結果 6 7 なし 8 りんご 9 りんご     2 ← 結果 10 上記のようにA1からA10のセルに 文字列と空白が入っているとき、 空白で区切られたグループ内で、 文字列の種類が一体何種類になるのかを、 数えたいと思います。 ちなみに、関数はB列に入力したいのですが、 空白の一つ上のセルにだけ結果がでるように 表示させたいです。 説明不足でしたら申し訳ありません。 よろしくお願いいたします。

  • エクセル関数で、2列の情報を1列に順番に並べたい

    以下の元データのようにA~D列にある情報を、 下方のE列、F列にあるように情報を合わせて表示したい場合、 E列、F列にはどのような関数を入れたらよいでしょうか。 COUNTIFやVLOOKUP関数を試してみましたが、 うまく順番に並べることができず途方に暮れています。。。 どなたかお知恵がある方、マクロではなく関数で 教えていただけたらありがたいです。 ※A列はB列の情報番号、C列はD列の情報番号です。 ↓元データ↓ A  B    C   D 1 みかん  1 あ 1 みかん  2 い 1 みかん  3 う 2 りんご   4 え 2 りんご   5 お 3 すいか  6 か 3 すいか  7 き 3 すいか  8 く 3 すいか  9 け ↓このようにしたいです。↓ A  B    C  D   E  F 1 みかん  1  あ    1  みかん 1 みかん  2  い    1  あ 1 みかん  3  う    2  い 2 りんご   4  え    3  う 2 りんご   5  お    2  りんご 3 すいか  6  か    4  え 3 すいか  7  き    5  お 3 すいか  8  く     3  すいか 3 すいか  9  け    6  か                 7  き                 8  く                  9  け 何とぞよろしくお願いします。

  • セル内の文字列操作について

    Excelでセル内の文字列を操作したいのですが、Excelの標準の関数では出来そうにないので、どなたかお力をお貸しください。 1つのセル内に、文字列や数値が複数入っています。 (例) Excel 12 りんご Word 11 このセルを調べて、数値のデータが複数入っている場合、最大値のみを表示させ、残りの数値データは削除したいのです。 (結果) Excel 12 りんご Word この処理の対象はセル内の数値データであって文字列には作用させず、結果的には文字列はそのまま表示させたいのです。 Excelの文字列に関する関数を調べてみたのですが、該当するものがなく、VBAを使用しなくてはならないのかもしれません。処理するデータが大量なため、VBAマクロなどで処理できれば大変ありがたいのですが、どなたかご存知の方がいらっしゃいましたら、ご教授くださいませ。どうぞよろしくお願いいたします。

  • 文字列変換(置換)方法について

    Selection.Replace を利用して単体の文字を置換することはできるのですが、 例えば とあるセルに りんご+みかん+めろん っていう文字列が入力されていた場合、 Selection.Replace what:="りんご" , replacement:="" をすることによって、結果、 +みかん+めろん にすることはできますが、 ++だけにするようにはできませんでしょうか。 りんご+みかん+めろん+なし+・・・・・っと 20パターンぐらいあるので、 Selection.Replace では難しいのではと思っております。 該当の文字列だけ消す処理をしたいです。 すいませんがお願いします