質問: Excelで、A列に下記のようなデータが入力されています。 A10B10 A1B1 A1B5 A2B1 A10B1 A2B5 B1A5 A1B13 B1A10 B10A2 B4A3 B1A1 ・・・ これを、下記のように「記号順と記号の後ろの数字を昇順」にして並べ替えたいです。 A1B1 A1B5 A1B13 A2B1 A2B5 A10B1 A10B10 B1A1 B1A5 B1A10 B4A3 B10A2 単に昇順化するとA10B1などが先に来てしまい理想通りになりません。 隣の列にSUBSTITUTE関数などで英字を数字化させたり消して並び替えてもうまくいきません。 アドバイスをいただければと思います。
回答: A1からデータがあるとして B1に =CONCAT(IFERROR(TEXT(FILTERXML(""&CONCAT(MID(A1,SEQUENCE(LEN(A1)),1)&IF(ISNUMBER(-MID(A1,SEQUENCE(LEN(A1)),1))*ISERR(-MID(A1,SEQUENCE(LEN(A1),,2),1))+ISERR(-MID(A1,SEQUENCE(LEN(A1)),1))*ISNUMBER(-MID(A1,SEQUENCE(LEN(A1),,2),1)),"",""))&"","//b"),"000"),"")) データ最終行までコピーして B列を基準にソート