1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Excel ~office2016 関数で項目リストアップ(重複除外)

Last updated at Posted at 2021-07-09

概要

Excelで項目をリストアップする方法2種類

関数を使用して、重複したセルを除外しリストアップする方法を2パターン記載します(VBAなし)
※Office365をお持ちの方はUNIQUEやSORTで検索してください
 ここではoffice 2010,2013,2016等で上記関数が使えないケースを対象にしています
 なぜ使えないのだ。。。(涙
 note:SQLはDISTINCT

  • 単純に項目だけをリストアップ
項目 抽出後
BBB BBB
AAA AAA
BBB ABC
AAA
ABC
  • 項目を昇順で並び替えてリストアップ
項目 抽出後
BBB AAA
AAA ABC
BBB BBB
AAA
ABC
  • 理解しやすいよう、扱いが容易な関数のみを使うことにしました

    MATCHを使えば多分もっと簡単に書けるはず?
関数 内容
IF(条件,真の場合,偽の場合) 条件分岐
VLOOKUP(検索値, 範囲, 列番号, [検索方法]) 項目リストアップ
COUNTIF(範囲,条件) 条件を満たすセルのカウント
OFFSET(参照, 行数, 列数, [高さ], [幅]) 検索範囲の指定
ISERROR(値) セルの値がエラーのとき[TRUE]を返す
IFNA(値,値が#N/Aの場合に返す値) 値が#N/Aのとき、第2引数の値を返す

方法

  • 単純に項目だけをリストアップ

実施例

>ここがA1セルです< LIST 出現確認 並び替え LIST リストアップ項番 リストアップ後
1 BBB 1 0 BBB 0 BBB
2 AAA 1 1 AAA 1 AAA
3 BBB 2 1 BBB 2 ABC
4 AAA 2 1 AAA 3
5 ABC 1 2 ABC 4

サンプルコード
↓A1セルに直接貼り付ければ動くはず
項目を増やす場合は、EXCELに貼り付けた後5項目を下にコピーしてください

A1セル LIST 出現確認 並び替え LIST リストアップ項番 リストアップ後
1 BBB 1 0 =B2 0 =IFNA(VLOOKUP(F2,$D$2:$E$6,2,FALSE),"")
2 AAA =COUNTIF(OFFSET($B$2,0,0,A3),"="&B3) =IF(C3=1,D2+1,D2) =B3 1 =IFNA(VLOOKUP(F3,$D$2:$E$6,2,FALSE),"")
3 BBB =COUNTIF(OFFSET($B$2,0,0,A4),"="&B4) =IF(C4=1,D3+1,D3) =B4 2 =IFNA(VLOOKUP(F4,$D$2:$E$6,2,FALSE),"")
4 AAA =COUNTIF(OFFSET($B$2,0,0,A5),"="&B5) =IF(C5=1,D4+1,D4) =B5 3 =IFNA(VLOOKUP(F5,$D$2:$E$6,2,FALSE),"")
5 ABC =COUNTIF(OFFSET($B$2,0,0,A6),"="&B6) =IF(C6=1,D5+1,D5) =B6 4 =IFNA(VLOOKUP(F6,$D$2:$E$6,2,FALSE),"")
                                                                                                          

出現確認:COUNTIFとOFFSETの組み合わせで上から順に調べて初めてその項目が出現したかを表現しているところがポイントかと思います

  • 項目を昇順で並び替えてリストアップ

実施例

A1セル LIST 順序確認 LIST 出現確認 リストアップ項番 リストアップ対象 リストアップ後
0 BBB 3 BBB 0 0 0 AAA
1 AAA 0 AAA 0 1 2 ABC
2 BBB 3 BBB 1 2 3 BBB
3 AAA 0 AAA 2 3 #N/A
4 ABC 2 ABC 2 4 #N/A

サンプルコード
↓A1セルに直接貼り付ければ動くはず

A1セル LIST 順序確認 LIST 出現確認 リストアップ項番 リストアップ対象 リストアップ後
0 BBB =COUNTIF($B$2:$B$6,"<"&B2) =B2 0 0 =VLOOKUP(F2,$E$2:$F$6,2,FALSE) =IFNA(VLOOKUP(G2,$C$2:$D$6,2,FALSE),"")
1 AAA =COUNTIF($B$2:$B$6,"<"&B3) =B3 =IF(ISERROR(VLOOKUP(A3,$C$2:$C$6,1,FALSE)),E2,E2+1) 1 =VLOOKUP(F3,$E$2:$F$6,2,FALSE) =IFNA(VLOOKUP(G3,$C$2:$D$6,2,FALSE),"")
2 BBB =COUNTIF($B$2:$B$6,"<"&B4) =B4 =IF(ISERROR(VLOOKUP(A4,$C$2:$C$6,1,FALSE)),E3,E3+1) 2 =VLOOKUP(F4,$E$2:$F$6,2,FALSE) =IFNA(VLOOKUP(G4,$C$2:$D$6,2,FALSE),"")
3 AAA =COUNTIF($B$2:$B$6,"<"&B5) =B5 =IF(ISERROR(VLOOKUP(A5,$C$2:$C$6,1,FALSE)),E4,E4+1) 3 =VLOOKUP(F5,$E$2:$F$6,2,FALSE) =IFNA(VLOOKUP(G5,$C$2:$D$6,2,FALSE),"")
4 ABC =COUNTIF($B$2:$B$6,"<"&B6) =B6 =IF(ISERROR(VLOOKUP(A6,$C$2:$C$6,1,FALSE)),E5,E5+1) 4 =VLOOKUP(F6,$E$2:$F$6,2,FALSE) =IFNA(VLOOKUP(G6,$C$2:$D$6,2,FALSE),"")
                                                                                             

サンプルコード?サンプルシート?伝わればいいか笑

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?