質問: ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/a694842df9afdbacef59dca435f7bd64.png) B列の会社略称をもとにF列の請求書(順不同となっているもの)を並び替えC列に入るようにしたいです。 よろしくお願いいたします。 ※1 会社略称は2~3文字の英字となっております。(画像の通り「AB」、「ABC」のような略称が付く場合がございます。) ※2 請求書は「(0文字以上の任意文字)会社略称(0文字以上の任意文字)請求書」となっております。
回答: 下記条件で対応しています。 ・作業セルの使用 ・略称以外の英字不使用 E3以下 ``` =MID(F3,SUMPRODUCT(ROW(OFFSET(INDIRECT("Z1"),,,LEN(F3)))*ISNUMBER(FIND(MID(LOWER(ASC(F3)),ROW(OFFSET(INDIRECT("Z1"),,,LEN(F3))),1),"abcdefghijklmnopqrstuvwxyz"))* ISERROR(FIND(MID(" "&LOWER(ASC(F3)),ROW(OFFSET(INDIRECT("Z1"),,,LEN(F3))),1),"abcdefghijklmnopqrstuvwxyz"))),SUMPRODUCT(ISNUMBER(FIND(MID(LOWER(ASC(F3)),ROW(OFFSET(INDIRECT("Z1"),,,LEN(F3))),1),"abcdefghijklmnopqrstuvwxyz"))*1)) ``` C3以下 ``` =IF(SUMPRODUCT(EXACT(B3,E:E)*ROW(E:E))=0,"",INDEX(F:F,SUMPRODUCT(EXACT(B3,E:E)*ROW(E:E)))) ``` 大文字小文字は分けて判断されます。 E3以下の数式は拾い物です。 リンク内容