忍者ブログ

mshencity

Excel の UNIQUE 関数は、このトリックを使用しない限り、列をスキップできません。

Excel の UNIQUE 関数は、データをクリーンアップする革新的な関数ですが、隣接する列でのみ機能するというイライラする制限があります。ただし、その中に追加の関数をネストすることで、含めたくない列を無視する動的なカスタム リストを作成できます。



基本: UNIQUE の通常の動作方法

Excel の UNIQUE 関数は、2021 年以降にリリースされたスタンドアロン バージョンの Excel、Excel for Microsoft 365、Excel for the web、および最新のモバイル アプリやタブレット アプリを使用しているユーザーが利用でき、次の構文を使用します。

=UNIQUE(array,(by_col),(exactly_once))

どこ:



  • 配列 (必須): 一意の値を抽出する範囲またはテーブルです。


  • by_col (オプション): Excel に行 (デフォルトは FALSE) ではなく列 (TRUE に設定されている場合) を比較するように指示します。


  • 正確に 1 回 (オプション): すべての個別の値のリスト (デフォルトは FALSE) ではなく、ソース内に 1 回出現する項目 (TRUE に設定されている場合) を返します。


UNIQUE 関数は動的配列ファミリーの一部です。つまり、単一のセルに数式を入力するだけでも、結果は自動的に隣接するセルに広がります。結果 (流出範囲) の周りに細い青い境界線があり、何かが邪魔になる場合は #SPILL! が表示されます。エラー。























背景に Excel スプレッドシート、前面に Excel ロゴが表示されます。


















Microsoft Excelの使い方を変えた6つの機能




動的配列関数はゲームチェンジャーでした。






























隣接する列の抽出


T_Expenses という名前の Excel テーブルで家計支出を追跡しており、支払いカテゴリと店舗の一意の組み合わせすべてのリストを生成したいとします。
























Excel の家計費テーブルの[カテゴリ]列と[店舗]列が強調表示されます。




これらはテーブル内で隣接する列であるため、コロンを使用してそれらをリンクできます。 配列 口論:

=UNIQUE(T_Expenses((Category):(Store)))























Excel の UNIQUE 関数は、T_Expenses テーブルからカテゴリとストーリーの一意の組み合わせを抽出するために使用されます。






隣接しない列の抽出に関する問題


ここで、テーブル内の隣接しない列であるカテゴリと支払い方法の一意の組み合わせのリストを生成するとします。
























Excel の家計費表の[カテゴリ]列と[方法]列が強調表示されます。




UNIQUE 式の個別の引数として特定の列のみを選択しようとすると、#VALUE! が表示されます。エラー。これは、UNIQUE が単一の連続した配列を必要とするために発生します。カンマで区切って 2 つの別々の列を選択すると、Excel は 2 番目の列を by_col 引数を指定しますが、これには TRUE または FALSE が必要なため、数式がクラッシュします。
























隣接しない 2 つの列が別々の引数として入力されるため、UNIQUE 式は VALUE エラーを返します。




この問題を解決する 2 つの方法を次に示します。



クイックフィックス: UNIQUE 内で CHOSECOLS をネストする

列をスキップするには、必要なデータのみを含む仮想テーブルを UNIQUE 関数に提供する必要があります。 CHOSECOLS 関数は、まさにこれを行うように設計されており、インデックス番号を使用して、より大きな範囲またはテーブルから特定の列を抽出できます。

T_Expenses テーブルでは、Category が 2 列目、Method が 4 列目です。したがって、その一意のリストを取得するには、次のように CHOOSECOLS 関数をネストします。

=UNIQUE(CHOOSECOLS(T_Expenses,2,4))

CHOSECOLS は、T_Expenses テーブル全体を調べ、列 2 と列 4 を除くすべてを無視します。次に、この新しい 2 列の仮想テーブルを UNIQUE 関数に渡し、チェックを実行して結果を出力します。
























Excel の UNIQUE 内にネストされた CHOSECOLS は、テーブルから一意のカテゴリとメソッドの組み合わせを返します。




CHOSECOLS メソッドは完全に機能しますが、ハードコーディングされたインデックス番号に依存しているという欠点が 1 つあります。 T_Expenses テーブルに新しい列を挿入すると、列 4 は Method 列ではなくなるため、数式には間違ったデータが表示されます。

数式を破壊不能にするには、代わりに MATCH 関数を使用して名前で列を検索します。

=UNIQUE(
CHOOSECOLS(
T_Expenses,
MATCH(G1,T_Expenses(#Headers),0),
MATCH(H1,T_Expenses(#Headers),0)
))






数式バーに数式を入力するときに Alt+Enter を押して改行を作成します。これにより、式の構築と読み取りが容易になります。





ここでは、2 と 4 を手動で入力するのではなく、MATCH 関数が自動的に処理を行います。最初の MATCH は、セル G1 (「カテゴリ」) のテキストを調べ、テーブルのヘッダー行でそれを検索します。末尾の 0 は、完全に一致するものを見つけるように Excel に指示します。次に、メモリ内の選択された範囲に関連する数値を返します。Category が 2 番目の列の場合、結果は 2 になります。次に、2 番目の MATCH がセル H1 (「メソッド」) のテキストに対して同じことを実行し、4 を返します。
























MATCH と CHOSECOLS は UNIQUE 内にネストされており、Excel テーブルから一意のカテゴリとメソッドの組み合わせを動的に抽出します。




これは次の理由による完全な修正です。



  • 構造的自由度: カテゴリ列をテーブルの最後に移動したり、中央に 5 つの新しい列を挿入したりできます。 MATCH は、ハードコーディングされたインデックス番号に依存するのではなく、常にヘッダー内の名前を検索するため、数式自体が自動的に更新されます。


  • エラー防止: この方法により、数十の列を含む大きなテーブルで列の数え間違いのリスクが排除されます。


  • 動的選択: 数式はセル G1 および H1 にリンクされているため、これらのセルの列名を変更するだけで、新しい一意のリストを生成できます。
























数式とその周りのいくつかのアラートを含む Excel ファイルの図。


















Microsoft Excel の数式で値のハードコーディングを避けるべき理由




セルまたは名前付き範囲を参照することが今後の方法です。





























ペアリングをさらに直感的に行うために、セル G1 と H1 をドロップダウン メニューに変えることができます。これにより、単純なタイプミスによる数式の破損を防ぐことができます。







ただし、技術的なハードルがあります。Excel のデータ検証ツールは、構造化参照 (T_Expenses(#Headers) など) をネイティブにサポートしていません。 INDIRECT 関数を使用すると、これを回避できます。この関数は、テキスト文字列をデータ検証が理解できる有効な参照に変換します。

まず、動的ヘッダーの選択を配置するセル (この場合は G1 と H1) を選択し、[データ]タブで[データ検証]アイコンをクリックします。
























Excel シートのセル G1 と H1 が選択され、[データ検証]ボタンが強調表示されます。




次に、[許可]ドロップダウン メニューで[リスト]を選択し、次の間接数式を[ソース]フィールドに入力します。

=INDIRECT("T_Expenses(#Headers)")























Excel の[データ検証]ダイアログ ボックスでリストが選択され、[ソース]フィールドに INDIRECT 式が入力されます。




[OK]をクリックするとダイアログ ボックスが閉じ、セル G1 と H1 には、T_Expenses テーブルのすべてのヘッダーを表示するクリック可能な矢印が含まれます。
























Excel スプレッドシートのセル H1 のドロップダウン メニュー。テーブルの列ヘッダーが含まれます。




リストから新しい列名を選択すると、MATCH 関数がその新しい位置を見つけ、CHOOSECOLS がデータを取得し、UNIQUE がリストを即座に更新します。また、INDIRECT 関数は特にテーブル ヘッダーを参照するため、T_Expenses テーブルに追加した新しい列は、データ検証設定を更新しなくても、ドロップダウン メニューに自動的に表示されます。
























新しい列が Excel テーブルに追加され、別のセルのドロップダウン リストにその新しい列のヘッダーが自動的に採用されます。


























Microsoft Excel のドロップダウン リスト。左側にリスト項目を含む列があり、右側にラップトップが表示されます。


















Excel のデータ列からドロップダウン リストを作成する方法




どの方法を使用するかは、データの形式によって異なります。





























UNIQUE 関数は動的配列に依存しているため、情報を永続的に上書きする昔ながらの重複削除ツールよりもはるかに安全で効率的にデータを処理する方法です。この設定を使用すると、スプレッドシートをどれだけ再配置しても、マスター リストはそのまま残り、独自の概要は正確なままになります。





























































































OS








Windows、macOS、iPhone、iPad、Android








無料トライアル








1ヶ月















Microsoft 365 には、最大 5 台のデバイスでの Word、Excel、PowerPoint などの Office アプリへのアクセス、1 TB の OneDrive ストレージなどが含まれます。

















PR

コメント

プロフィール

HN:
No Name Ninja
性別:
非公開

P R