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