
UNIQUE関数を使うと、大量のデータから重複しない一意の値を簡単に抽出できます。この記事では、隣接する列だけでなく、離れた複数の範囲から一意の値を抽出する方法を、ExcelとGoogleスプレッドシートに分けて解説しているので、ぜひ参考にしてみてください。
複数の列を指定する方法【Excel】
隣接する複数の列をまとめる場合
縦方向にまとめる

隣接する複数列から一意の値を抽出する場合、UNIQUE関数とTOCOL関数を組み合わせます。
たとえば、A列とB列の範囲から一意の「商品名」を抽出する場合、数式は次のようになります。
例:=UNIQUE(TOCOL(A2:B5))
この数式では、まずTOCOL関数で範囲を1列に変換し、その結果をUNIQUE関数で処理しています。
横方向にまとめる

隣接する複数行から一意の値を抽出する場合、UNIQUE関数とTOROW関数を組み合わせます。
たとえば、3行目と4行目の範囲から一意の「商品名」を抽出する場合、数式は次のようになります。
例:=UNIQUE(TOROW(B3:E4),TRUE)
この数式では、まずTOROW関数で範囲を1行に変換し、その結果をUNIQUE関数で処理しています。
ポイント:UNIQUE関数の[列の比較]
引数にTRUE
を指定することで、列同士を比較することを明示します。
離れた複数の列をまとめる場合
縦方向にまとめる

離れた複数列から一意の値を抽出する場合、TOCOL関数に複数の列をまとめた配列を渡します。
たとえば、A列とC列の範囲から一意の「商品名」を抽出する場合、数式は次のようになります。
例:=UNIQUE(TOCOL((A2:A5,C2:C5)))
ポイント:この数式では、内側の(A2:A5,C2:C5)
でそれぞれの列を1つの配列としてTOCOL関数に渡します。
横方向にまとめる

離れた複数行から一意の値を抽出する場合、TOROW関数に複数の行をまとめた配列を渡します。
たとえば、3行目と5行目の範囲から一意の「商品名」を抽出する場合、数式は次のようになります。
例:=UNIQUE(TOROW((B3:E3,B5:E5)),TRUE)
ポイント:この数式では、内側の(B3:E3,B5:E5)
でそれぞれの行を1つの配列としてTOROW関数に渡します。
複数の列を指定する方法【スプレッドシート】
複数の列をまとめる場合(隣接する列・離れた列)
縦方向にまとめる

複数列から一意の値を抽出する場合、中括弧 {}
内に、それぞれの列をセミコロン ;
で区切りながら入力します。
たとえば、A列とB列の範囲から一意の「商品名」を抽出する場合、数式は次のようになります。
例:=UNIQUE({A2:A5;B2:B5})
ポイント: この方法は、列が隣接している場合でも、A2:A5
とC2:C5
のように列が離れている場合でも同じように使用できます。
横方向にまとめる

複数行から一意の値を抽出する場合、中括弧 {}
内に、それぞれの行をカンマ ,
で区切りながら入力します。
たとえば、3行目と4行目の範囲から一意の「商品名」を抽出する場合、数式は次のようになります。
例:=UNIQUE({B3:E3,B4:E4},TRUE)
ポイント: この方法は、行が隣接している場合でも、B3:E3
とB5:E5
のように行が離れている場合でも同じように使用できます。また、UNIQUE関数の[列の比較]
引数にTRUE
を指定することで、列同士を比較することを明示します。