パソコン関連の書籍等を読んで試したりしながらアウトプットしまくります。

アウトプットしながら学ぶ

Excel

Excelで複数の列の内容を縦に積んで重複削除してソートする関数

投稿日:

Excelで複数の列の内容を縦に積んで重複削除してソートする関数を考えてみました。

A B
1 8
2 2
3 7
4 1
5 2
12

こんな表のA列とB列を縦に積んで重複削除してソートします。

A列の値の数を求める式は「=COUNT(FILTER(A:A,LEN(A:A)>0))」
これをC1セルにセットします。
B列の値の数を求める式は「=COUNT(FILTER(B:B,LEN(B:B)>0))」
これをD1セルにセットします。

C D
5 6

E1セルに次の式を入力して下までコピーします。

=IF(ROW()<=$C$1+$D$1,IF(ROW()<=$C$1,A1,INDEX(B:B,ROW()-$C$1)),"")

数式の条件は以下のようになります。

現在の行番号がA列の値の数以下の場合は同じ行のA列の値
現在の行番号がA列の数より大きい場合は[現在の行番号マイナスA列の値の数]行目のB列の値
現在の行番号がA列とB列の値の数の和より大きい場合は空欄

これにより、A列とB列の値が縦に並びます。

E
1
2
3
4
5
8
2
7
1
2
12

F1に次の数式を入力します。

=SORT(UNIQUE(FILTER(E:E,LEN(E:E)>0)),1,1)

E列の内容を重複削除して、縦に並べています。

F
1
2
3
4
5
7
8
12

以上で、エクセルのワークシート関数だけを使って、複数の列の内容を縦に積んで重複削除してソートすることができます。

 

 







-Excel

Copyright© アウトプットしながら学ぶ , 2024 AllRights Reserved Powered by AFFINGER4.