- ベストアンサー
複数セルから同じ文字列を抽出、並べ替え
お世話になります。 セル式で定義したいのですが、いい考えが浮かびません。 A列に以下のような文字が並んでいるとします。実際は下に無制限とします。 A1 AAA A2 BBB A3 CCC A4 AAA A5 CCC A6 DDD A7 AAA これらのセル中の文字列から以下のように並べ替えてB列に配置したいのです。 B1 AAA B2 BBB B3 CCC B4 DDD 4種類の文字列となるのでB1:B4まで並べたいと思います。 B列のセルにセル式を記述したいと思います。 以上、ご教授下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
◆「並び替え」のルールが分かりませんが、A列の上からの順でよければ ★少し、長い式になりますが、作業列なしの方法です B1=IF(ROW(A1)>COUNT(INDEX(1/(MATCH($A$1:$A$100,$A$1:$A$100,)=ROW($A$1:$A$100)),)),"",INDEX(A:A,SMALL(INDEX(SUBSTITUTE((MATCH($A$1:$A$100&"",$A$1:$A$100&"",)=ROW($1:$100))*($A$1:$A$100<>""),0,10^5)*ROW($1:$100),0),ROW(A1)))) ★下にコピー
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
フィルタでやるのがベストだが、関数に拘るなら データ例 A2:A8で(第1行B1は空白にすること) AAA 1 BBB 2 CCC 3 AAA CCC DDD 4 AAA B列には=IF(COUNTIF($A$2:A2,A2)=1,MAX($B$1:B1)+1,"") を入れてB8まで式複写 結果 上記の通り。 やっていることは、初出に連番を振っている。 C2には=INDEX($A$2:$A$100,MATCH(ROW()-1,$B$2:$B$100,0),1) と入れて4行分式を複写。 結果C2:C5 AAA BBB CCC DDD これを自称imogasi方式といっている。 作業列を使うが、判りやすいと思います。 B列に結果を出したいなら、どこか目立たない列に上記B列式を置くとよい。 WEBでimogasi方式で照会すれば、たくさん同類質問が出ます。 ということはよくある質問です。 また他の方式の回答もそれらの質問の回答にに出ています。
お礼
ご指示ありがとうございました。 参考にさせて頂きます。 また、よろしくお願い致します。
- time_watch
- ベストアンサー率25% (1/4)
4種類ということであれば単純に AAA BBB CCC DDDをコピーして貼り付け。 ツール→オプション→ユーザー定義リスト。ここで定義して データ→データの並び替え→オプション→並び替え順序の指定で指定する。回答になりますか?
お礼
今回はセル式にて定義しますので今回の希望とは少し異なりますが、 勉強になりました。 ありがとうございました。
お礼
大変参考になりました。うまくいきました。 採用させて頂きます。 また、よろしくお願い致します。