Excelスプレッドシートで並べ替えられた一意のリストを作成する方法 - TechRepublic

Excelスプレッドシートで並べ替えられた一意のリストを作成する方法 - TechRepublic

画像: Aajan Getty Images/iStockphoto

リストはほぼすべてのMicrosoft Excelアプリケーションに欠かせない要素であり、幸いなことに簡単に生成できます。リストには、静的なリストと自然なデータに基づくリストの2種類があります。実際のアンケート調査はしていませんが、後者の方が一般的ではないかと考えています。

参照: 知っておくべき Excel のヒント 30 選 (TechRepublic Premium)

このタイプのリストを使用すると、ドロップダウンリストなどを作成してデータ入力を容易にし、データの妥当性を確保できます。例えば、従業員名や学生名を手動で入力するのではなく、ユーザーが選択できるドロップダウンリストを作成したい場合があります。このタイプのリストは、実際にそれらの値が格納されているデータセットに基づいています。この記事では、データセット内の単一の列に基づいて一意の値のリストを生成する2つの方法を紹介します。

  • 高度なフィルター
  • 個性的()

Windows 10 64ビットシステムでMicrosoft 365を使用しています。UNIQUE()はMicrosoft 365、Excel for the Web、Excel for Androidタブレットおよびスマートフォンでのみ利用可能です。.xlsxデモファイルをダウンロードしてご利用ください。

Microsoft 365 以前: Excel の高度なフィルターの使い方

Excelにオートフィルター機能が導入されて以来、Excelの従来のフィルター機能はしばしば無視されてきました。しかし、オートフィルターでは対応できない状況に遭遇することもあります。そのような場合は、より高度なオプションをサポートするExcelの高度なフィルター機能を利用できます。既存のデータに基づいて独自のリストを作成する必要がある場合は、この機能が役立ちます。しかし、始める前に、2つのフィルター機能の違いをいくつか確認しておきましょう。

  • オートフィルタは静的なデータセットで機能します。高度な機能を使用すると、データを別の場所にコピーできます。ソースデータセットから重複データを削除することもできますが、実際にはデータセットが変更されます。
  • 高度な機能では複雑な基準がサポートされます。
  • 高度な機能を使用すると、一意のリストまたは一意のレコードを抽出できます。これが私たちが実行しようとしていることです。

UNIQUE() が利用可能になる前は、高度なフィルターを使って一意の値のリストを作成していたかもしれません。Microsoft 365 をご利用でない方のために、この機能について改めて説明します。この手法は、Table オブジェクトを使用してデータを保存する場合でも、動的ではないことに注意してください。

図Aは、すべての列に重複した値を持つ単純なデータセットを示しています。ここで、Personnel列に一意の値のリストが必要だとしましょう。

図A

リストを手動で作成するには、次の手順を実行します。

  1. データ セット内の任意のセルをクリックします。
  2. [データ] タブをクリックし、[並べ替えとフィルター] グループの [詳細設定] をクリックします。
  3. [別の場所にコピー] オプションをクリックします。
  4. Excelは、データセット全体またはTableオブジェクトのセル参照をリスト範囲として表示します。この選択を維持すると、Excelはすべての列に基づいて一意のデータセットを返します。代わりに、コントロールをクリックしてD2:D13を選択し、「Personnel」列を選択してください。Tableオブジェクトを使用している場合は、この機能によりセル範囲ではなく列名が表示される場合があります。
  5. 条件範囲がある場合はそれを削除します。
  6. 「コピー先」コントロールをクリックし、H2などの目立たないセルを選択します。既存のデータを誤って上書きしないよう、十分な大きさの範囲を指定してください。
  7. 図 Aに示すように、[一意のレコードのみ] オプションをオンにします。
  8. [OK]をクリックします。

図Bは、一意のリストを示しています。「Personnel」列には6つの一意の名前があります。このリストはソースデータとは別のものです。また、リストは動的ではありません。新しい従業員のレコードを入力する場合は、リストを手動で更新する必要があります。リストを並べ替えたい場合は、ヘッダーテキストを除いたリストを選択し、「並べ替えとフィルター」グループで並べ替え順序を選択します。それでは、手動操作をすべて省き動的なリストを生成する2つの関数、UNIQUE()とSORT()を見てみましょう。

図B

ExcelでUNIQUE()関数を使う方法

Microsoft 365 または Excel 2019 スタンドアロン版のいずれかをご利用の場合は、UNIQUE() 関数を使用して動的なリストを簡単に作成できます。この関数は、次の構文を使用して、リストまたは範囲内の一意の値のリストを返します。

UNIQUE(配列, [by_col], [exactly_once])

配列引数は、一意のリストに絞り込みたい範囲です。by_col引数はブール値です。TRUEは列を比較し、一意の列を返します。FALSEはデフォルトで、行同士を比較し、一意の行を返します。exactly_once引数もブール値です。TRUEは、範囲または配列から1回だけ出現するすべての一意の行または列を返します。FALSEはデフォルトで、範囲からすべての一意の行または列を返します。

参照:Windows 10:音声認識とディクテーションの音声コマンド一覧(無料PDF)(TechRepublic)

単一列から一意のリストを返すという目的であれば、配列引数のみが必要です。セル(ここでもH2を使用しています)を選択し、次の関数を入力します。Tableオブジェクトを使用している場合は、セルD2~D13を選択し、入力は行いません。正確な構文はExcelに任せましょう。通常の範囲を使用している場合は、必要に応じて範囲アドレスを入力してください。図Cは、スピル範囲を使用した結果を示しています。UNIQUE()を使用する場合、ヘッダーセルを表示するか、選択範囲から除外することで省略することができます。

図C

Microsoft 365 は、複数の値を返す動的配列数式の結果である「スピル範囲」をサポートするようになりました。スピル範囲とは、入力セルの範囲外に出力が広がる範囲のことです。簡単に言うと、スピル範囲とは、1 つの数式から計算された結果の範囲です。スピル範囲内のセルを選択すると、Excel は範囲全体を青い枠線で強調表示し、数式バーに関数を表示します。数式は常に最上位セルに表示されます。

先ほど高度なフィルターを使って作成した手動リストとは異なり、UNIQUE() の結果は動的です。図Dに示すように、Personnel列に新しい値を追加すると、H列のリストが自動的に更新されます。

図D

ExcelでUNIQUE()の結果内でSORT()を使用する方法

高度なフィルターで生成されたリストとは異なり、SORT() 関数を使用して UNIQUE() の結果を並べ替えることができます。これは非常に簡単です。図 E は、UNIQUE() を SORT() で囲んだ結果を示しています。ご覧のとおり、結果は並べ替えられていますが、エラーが見つかりますか?この数式では Personnel が他の値と一緒に並べ替えられてしまいますが、これは望ましくありません。簡単な解決策は、次のように配列範囲からヘッダーセルを削除することです。

=SORT(ユニーク(D3:D13))

図E

以前のバージョンをご利用の場合は、「高度なフィルター」機能を使用して、自然データに基づいた静的で並べ替えられていない一意の値のリストを作成できます。Microsoft 365 をご利用の場合は、UNIQUE() 関数を SORT() 関数でラップすることで、動的な並べ替えられたリストを作成できます。

Tagged: