• 締切済み

文字列の順番を指定して条件づける関数 エクセル

添付ファイルを参照いただきたいのですが、 アルファベットのS,M,J,Nで構成される3つの文字列があります。 (別シートにあるデータからif関数で条件に合致したものにそれぞれの3つの文字列が入っています。) 現状として1つの行に2つ以上文字列があったら★をつけているのですが、ここから、かつ、文字列の順番がバラバラのもののみ抽出したいです。 例えば、黄色ハイライトが該当します。1つ目の文字列がSとM,2つ目がMとJ、3つめがJとSなので、3つとも順番が違うので該当。 例えば、緑が該当しません。1つ目と3つめがMとSで同じ。 関数で抽出するにはどうすればいいでしょうか?

みんなの回答

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.2

3文字なんだから「文字列の順番がバラバラ」なのは「ABC」に対して なら「BCA」か「CAB」のどっちかしかありません。 > 関数で抽出するにはどうすればいいでしょうか? 手段を「関数」に限定する意味があるとは思えません。 =LET(_rng,F1:P1,_flt,FILTER(_rng,_rng<>""),_cnt,COLUMNS(_flt),_ptnA,MID(_flt,2,1)&MID(_flt,3,1)&MID(_flt,1,1),_ptnB,MID(_flt,3,1)&MID(_flt,1,1)&MID(_flt,2,1),IFERROR(IF(OR(_flt=TRANSPOSE(_ptnA),_flt=TRANSPOSE(_ptnB)),"★",""),""))

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

別説明を希望する。 こんなことは、よくある(考える)ケースではなく、珍奇な質問例だと思う。だから言っていることが、よく判らない。 もう少しデータ例を増やし、実情データでは、文字出現の順序的に、また文字種的に、こうだから、そのこの点(連続や出現など)に注目して、こう判断する、という書き方はできないか。 ーーー 質問者のいう、文字と文字列の意味は、1セル内での値で、文字=1文字、文字列=2文字以上と、取ってよいか? >3つの文字列はーー>S,M,J,Nのどれか(重複は許す)3文字の文字列? あるいは3セルの文字列のことか? あるいは1セルの3文字の文字列なのか? >2つ以上文字列があったら★をつけているーー>同行で2セル以上にデータがあれば、のことか? >2つ以上文字列があったらーー>同行で、2セル以上にデータがあれば、のこと? それは、もう既に、できているのではないのか?であれば、質問に書かない方がよいだろう。ここまでの、処理の流れは必ずしも質問に書く必要はない場合が多い。 ややこしく感じるだけ。 >文字列の順番がバラバラのもののみ抽出したいです。 === 全般にやりたいことは、関数では複雑になりすぎて難しいのでは。 VBAを使ってやる方が、何かをやろうとしたとき、変数が使えるので、ロジックを表現しやすいが、出現順序をどう表現するのか、は(小生の非力もあろうが)難しいように思う。 ・使われている文字種の抽出(重複在り、重複許さずの別で) ・文字の順番をあるルールで、そろえる必要があれば揃える方法。 ・出現文字の文字列の中での順序の表現 こういうのが、もし必要であれば、(VBAでも関数ならなおさら)一筋縄ではいかないように思う。 3文字であれば、順列的な組み合わせもまあ膨大な数にはならないだろうが。

関連するQ&A

  • エクセル 関数 文字列を分ける

    23Ar23 28Ar05 3Ta16 8Ta07 11Ta53 14Ta21 …以下多数 のように文字列があって、アルファベット前の数字(1文字か2文字)、アルファベット(2文字)、アルファベット後の数字(2文字)の3つに分割したいのです。データ区切り位置の機能を使えれば簡単ですが、アルファベットの前の文字数が1字と2字のものがあるのでできません。RIGHT、LEFTの関数を使用すれば、アルファベット2文字とアルファベット後の数字2文字は抽出できますが、アルファベット前の数字(1文字か2文字)だけ取り出せません。 関数か何かの方法で文字数を分ける方法を教えてください。

  • 指定した文字列が抽出できる関数

    Excelで、指定した文字列だけを抽出表示する場合、「文字列を先頭(左)から抽出する」などの関数は「LEFT関数」や「RIGHT関数」がありますが、位置の指定ではなく、文字列の中にある、特定の文字だけを指定して抽出してできる関数は何でしょうか? たとえば「ラーメン」「うどん」「そば」いずれかを「含む」文字列が入っているセルの中から、「うどん」のセルだけを抽出して表示するという場合です。

  • 文字列から英数字のみを抽出する関数

    文字列から英数字のみを抽出する関数を教えていただきたいです。 セルの文字列にはひらがな、カタカナ、数字、アルファベット、記号等を含みます。 色々調べてはみたのですが、数字のみを抽出する関数の説明はたくさんありますが、 アルファベットも含むとなると見つかりませんでした。 数字0~9とアルファベット27個の計37個の文字なので、どうにか関数でできると思うのですが。 具体的には下記のようにしたいのです。 ●A列 今日iPhone5をauで購入 最新のNEWSを15時~PCで見る  Moonshotを生み出す「Google X」 ●B列にこう表示したいのです。 iPhone5au NEWS15PC MoonshotGoogleX スペースは残ったままでも結構です。 詳しい方、どうかよろしくお願いいたします。

  • 一番多く表示のある値(文字列)を、Excel関数で抽出したい

    Excelで、ある列で一番多く入っている値(文字列)を検索して抽出し、 別のセルに表示させたいと思っています。 赤 青 黄   ← こういう文字列があったとしたら、 黄     「黄」を別セルに表示させたい、という意味です 緑 黒 これを、Excel2000の関数だけで表示したいのですが、 式の組み方が分かりません。 どなたかご教授ください。 MAXやRANKなども組み合わせてみたのですが…。 現在は、列を一つ作りそちらでCOUNTIFで数字を出して、 その数字をMAXで拾って表示していますが、 列をひとつ作ることをなくしたい、というのが目的です。 よろしくお願いいたします。

  • Excelで文字列を抽出したい。

    Excelで文字列を抽出したい。 Excelで商品コード一覧を作成しました。 商品コード ABC230 DE120 ABC333 XU203 の様にアルファベット+数値で構成されています。 このアルファベットの部分のみを抜き出したいと考えています。 アルファベットの文字数はバラバラです。 何か便利な関数などありましたら、アドバイスよろしくお願いいたします。

  • エクセルで列番号を抽出したい

    エクセルで、VLOOKUP関数を使ってデーターの抽出をしたいのですが 列番号が一定ではない場合、COLUMNなど他の関数を組み合わせたいのですが どの様にすれば良いのか教えていただけないでしょうか? 例えば、 A1に「黄」の文字があり A2に「赤」 B2に「青」 C2に「黄」 D2に「緑」とある場合 A1の「黄」と同じ文字は何列目になるかを知りたいのですが、 この場合はC2に入力されているので 3と結果を出したいのです。 何か良い方法はありますでしょうか? 宜しくお願いいたします。

  • エクセルの文字列を抽出する関数を教えてください!

    テキストファイルから文字列をエクセルに貼りつけ、ある条件の単語のみを抽出する関数について教えてください。 (1)あらゆる文字・記号で構成されている文章のうち、” ”(二重引用符)で囲まれた中のその文字列だけを抽出するには、どのような関数があるのでしょうか。 (2)ある文章は、 (文字数はバラバラの文章).1-文章.doc、 (文字数はバラバラの文章).2-文章.doc、  ・・・ となっているテキストがあるのですが、そのテキストのうち、「数字ー」の形式は同じなのですが、その「(数字)‐」以降「.doc」までの文章のみ抽出するには、どのような関数になるのでしょうか。 マクロは組めませんので、関数で教えて頂ければ幸いです。 宜しくお願いします。

  • Excel2010 SUM関数の参照列を指定

    いつもお世話になっております。 文字で説明しにくく、分かりにくい表現になっておりすみません。。 Excel2010 で年度(4月~3月)の集計表があり、最右列へSUM関数が入っています。 様々な項目が行方向に複数行あり、全て最右列へはSUM関数が入っています。 この各月の数字は日々変化していき、今月中は今月中の数字だけが変化していくとは限らず、 1年間のうちどの月の数値が日々変化するかは分かりません。 毎月、前月までの合計を出しておきたい為、SUM関数が入っている列は、毎月月初に 参照列が4月~前月までになるように修正をしています。 毎月置換で数式内のアルファベットを変更したりしていますが、複数Sheetに渡り表が続いていたり、 M列の時はSUM関数の"M"が"SUN"になってしまったり。。うまくいなかいことがあります。 この為、参照列のアルファベットを同じファイル内のどこかのセルで指定して参照させることはできないかと思っています。 例えば、こんな感じの参照表を作成し、、 A  B   A列 B列 1行 4月 E 2行 5月 F 3行  6月 G 4行  7月 H 5行  8月 I 6行 9月 J 7行 10月 M 8行 11月 N 20行 S20へSUM関数 9月選択→10月選択に変更すると、SUM関数内の<=SUM(E20:J20)>→<=SUM(E20:M20)> に変更できるような。 SUM関数が入っているセルは全て「J」→「M」に一括で変更できるようにしたいです。 分かりにくくすみません。質問あれば補足します。

  • 文字列関数について

    よろしくお願いします。 「abcdefghijklmn」 このような文字列から dとjので囲まれた文字列「defghij」を 抜き出したい場合はどうすれば良いでしょうか? 正規表現を使用するのでしょうか? 便利な関数や方法がありましたら教えてください。 お願いいたします。

    • 締切済み
    • PHP
  • EXCELで、文字列に含まれる色を判別したい

    1つのセルに、半角小文字アルファベットabc...zの文字列が入っています。 その中のいくつかのアルファベットが赤色になっています。 赤色のアルファベットだけを見つけて、別のセルにそのアルファベットを 抽出することはできるのでしょうか?

専門家に質問してみよう