Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Home : Microsoft 365)
ソートが大変で困っています
投稿日時: 26/04/21 05:54:27
投稿者: のんびり

データは
1
10
5L2R1
3L3R3
3
5
5L1R1
2L2RA3
このようにならんでいるものを頭の数値を昇順に、その中で3桁目の数値も昇順に並べたいのです。良い方法を教えてください。

回答
投稿日時: 26/04/21 07:49:47
投稿者: んなっと

    A    B
1    1    1
2   10 2L2RA3
3 5L2R17    3
4 3L31R3 3L31R3
5    3    5
6    5 5L2R17
7 5L10R1 5L10R1
8 2L2RA3   10
 
B1
=LET(a,A.:.A,
b,DROP(REDUCE(0,a,LAMBDA(s,t,VSTACK(s,
 IFERROR(REGEXEXTRACT(t,"(\d+)(?=\D+(\d+)|\D*$)",2)*1,0)))),1),
SORTBY(a,TAKE(b,,1),1,TAKE(b,,-1),1))

回答
投稿日時: 26/04/21 08:05:23
投稿者: んなっと

各数字の桁数があまり大きくなければ、こんなのもあるかもしれません。
 
B1
=LET(a,A.:.A,
b,BYROW(a,LAMBDA(r,CONCAT(TEXT(IFERROR(REGEXEXTRACT(r,"(\d+)(?=\D+(\d+)|\D*$)",2),0),"0000")))),
SORTBY(a,b))

投稿日時: 26/04/21 13:31:53
投稿者: のんびり

ありがとうございます。数式が難しいので、このまま使わせていただきます。LET関数は使ったことがなく、これから頑張って理解してみます。感謝です。