UNIQUE関数で重複する行をなくす。
この記事は自分用の覚書です。
■MacBook Pro macOS Catalina
バージョン 10.15.3
■Office365 Business サブスクリプション
Excel for Mac バージョン 16.34 (20020900)
M.H さん。
最近使えるようになった関数で、うちの仕事で役立つと感じた関数は、一つ前の記事で扱っているXLOOKUP関数の他に、FILTER関数、SORT関数、UNIQUE関数があります。どれもOffice365サブスクライバーだけが使える関数のようです。
検索すれば、どの関数も使い方を説明してくれているサイトはすぐに見つかります。
この記事では、UNIQUE関数が我々の仕事で役立つ点にふれたいと思います。
表から重複する行をなくしたいことがよくあります。
UNIQUE関数を使うと簡単にその状態をつくれます。
仕事で扱う「重複をなくした表」には2つの状態があります。
1. 元の表で重複している行を省いた一覧
2. 元の表のときに、そもそも重複がない行を抜き出した一覧
どちらも簡単につくれるのが、UNIQUE関数のお役立ちどころです。
また、XLOOKUP関数の記事では特にふれませんでしたが、「元のデータをいっさいさわらない」のも、これら新しい関数に共通の利点といってよい気がします。
絞り込みや並べ替え、重複をなくす作業のときに、元データをうっかり消したり書き換えたりしないようにシートをコピーしたり、並べ替えの前に戻せるように連番を振っておいたりと、ちょっと気をつかうことってありますよね。
そういう気づかいが不要になります。
UNIQUE関数の引数
数式を入力するときに表示される関数ヒントでは、UNIQUE関数の書式は次のようです。
必須な引数は「配列」だけです。
・マイクロソフトのサイトにあるUNIQUE関数のヘルプ
UNIQUE(配列,列の比較,回数指定)
引数が少し分かりにくいです。
・引数「配列」
いわゆる、セル範囲です。
・「列の比較」
「TRUE - 一意の列を返す」を指定すると、"列方向" をみていって重複をなくします。
「FALSE - 一意の行を返す」だと、"行方向" をみていって重複をなくします。
関数ヒントで「列の比較」と表示されるのがわかりづらいですね。
「行方向」と「列方向」
「行方向」と「列方向」は、ワークシートを理解していないと迷うところだと思います。
次のようです。
行方向と列方向を逆に考えそうになるので、気をつけてください。
状態「1.」でも「2.」でも、引数「列の比較」には FALSE を指定する。
表から重複する行を探すということは、表を上下(行方向)にみるということです。
なので、上の「1.」の状態をつくるときも「2.」の状態をつくるときも引数「列の比較」は FALSE です。
引数「列の比較」に TRUE を指定することは、我々の仕事ではほとんどないでしょう。
「列の比較」という引数名がほんとにわかりづらいです。
もっとわかりやすい引数名にしてほしいと思います。
引数「回数指定」について
慣れないと、この引数もわかりにくいかもです。
関数ヒントでは、
・TRUE は「1回だけ出現するアイテムを返す」
・FALSE は「個別のアイテムをすべて返す」
となっています。
引数「配列」で指定したセル範囲のなかで、「一度だけ出現するもの」を抜き出すときは、TRUE を指定します。
上記の「2つの状態」の「2.」ですね。
「元の表のときに、そもそも重複がない行」は、選択範囲のなかで「1回だけ出現するアイテム」です。
「"本当に" 一つだけの値」だから TRUE と覚えておくと覚えやすいかも……です。
「2つの状態」の「1.」のほう——セル範囲のなかから重複している行を省いた状態にするのが、FALSEです。
「個別のアイテムをすべて返す」というのは、「2つの状態」の「1.」のことです。
■1. 元の表で重複している行を省いた一覧
UNIQUE関数はスピルします。次の図では、数式はセルG13にだけ入力しています。
G13の数式は、 =UNIQUE(B2:D10,FALSE,FALSE) です。
関数がスピルして埋まった範囲は青い枠線で囲まれます。
■2. 元の表で、最初から重複がない行を抜き出した一覧
次の図のセルG13の数式は、 =UNIQUE(B2:D10,FALSE,TRUE) です。
ひょっとしたら、この記事がよけいにわかりづらくしたかもしれませんね。
すみません。
とにかく、我々の仕事で使う頻度がより多いのは、
=UNIQUE(B2:D10,FALSE,FALSE)
のようにセル範囲に続いて両方の引数で FALSE を指定する数式でしょう。
「1. 元の表で重複している行を省いた一覧」をつくる数式です。
範囲が増えるなら「テーブル」にしておく。
上記の例ではセル参照で指定しています。
この場合、追加があって行や列が増えたら、引数「配列」の修正が必要です。
追加に対応しておくなら、元の表の範囲を「テーブル」に変換して、引数「配列」ではそのテーブル名を指定してください。
テーブル名には日本語が使えます。
テーブル名の頭に英字を付けておくと便利です。数式を入力するときにその英字を打ったら候補にテーブル名が表示されます。
日本語だけのテーブル名だと、それを全部打たないといけません。候補が表示されないんです。
並べ替えにはSORT関数
並べ替えするには、SORT関数を使ってください。
UNIQUE関数の結果は、エクセルの通常の「並べ替え」機能(「データ」タブの「昇順」・「降順」)では並べ替えできませんでした。
XLOOKUP関数も同じでした。たぶん、FILTER関数も同じだと思います。
| 固定リンク
コメント