エクセル関数応用
2段階の入力規則リスト作成:最新関数対応

Excel関数の解説、関数サンプルと高等テクニック
公開日:2025-12-24 最終更新日:2025-12-24

2段階の入力規則リスト作成:最新関数対応


一覧リストを使用して、「入力規則」の「リスト」を2段階で絞り込めるように作成します。
1段目のリスト選択により、2段目のリストが自動変化します。
以下の記事で紹介している内容と同じです。

入力規則のリストを、2段階の絞り込みで作成1
一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、さらに、一覧リストへの追加・削除に自動対応させるものです。入力規則のリストを、追加・削除に自動対応で作成 を理解した上でお読みください。
入力規則のリストを、2段階の絞り込みで作成2
一覧リストを使用して、「入力規則」の「リスト」を作成し、「リスト」の選択結果により、となりの「リスト」の内容を自動で変化させます、「入力規則のリストを、2段階の絞り込みで作成1」こちらのリストの縦横を入れ替えたパターンになります。入力規則のリストを、追加・削除に自動対応で作成一覧リストを使用して、「入力規則」の「リ…

上記の2段階の入力規則リストを、最新関数を使用して作成します。
使用する新関数は、以下になります。
XMATCH関数

・XMATCH関数の書式 ・従来のMATCH関数との違い ・一致モードの使い方 ・検索モードの使い方 ・XMATCH関数をスピルさせる ・XMATCHの応用例 ・スピルによって新しく追加された関数
DROP関数
DROP関数は、配列(またはセル範囲)の先頭または末尾から、指定した行数または列数を除外した配列(またはセル範囲)を返します。指定部分を除外するのではなく、指定部分を取得する場合はTAKE関数を使用します。DROP関数の構文 =DROP(配列,行,[列]) 引数「行」は必須になりますので、値を指定しなくても,
TRIMRANGE関数
・TRIMRANGE関数の構文 ・Trim References (Trim Refs):TRIMRANGE関数の糖衣構文(簡略記法) ・TRIMRANGE関数の使用例と解説

最新関数を使うことで、旧来の数式に比べて、かなり簡略化された数式になります。


シート構成サンプル

2段階の入力規則リスト作成:最新関数対応

2段階の入力規則リスト作成:最新関数対応

上掲の「リスト1」と「リスト2」は、縦向きと横向きの違いだけですが、縦横が違うので数式は違ってきます。
この2つのリストを使用して、以下の2段階の入力規則リストを作成します。

2段階の入力規則リスト作成:最新関数対応


入力規則の作成


2段階の入力規則リスト作成:最新関数対応

2段階の入力規則リスト作成:最新関数対応

この「元の値」にいれる数式を作成します。

「リスト1」を使用

部署の数式
=TRIMRANGE(リスト1!1:1)
数式の解説
リスト1シートの1行目から、値が入っている部分だけを取り出します。

リスト1!1:1
リスト1シートの1行目すべて
TRIMRANGE
前後の空白セルを除外し、実データ範囲だけ返す
「Trim Refs」で記述しても良い。
=TRIMRANGE(リスト1!1.:.1)

氏名の数式
=DROP(TRIMRANGE(INDEX(リスト1!1:1048576,,XMATCH(A2,リスト1!1:1))),1)
数式の解説
A2で指定した列見出しの列データを、見出しを除いて取得する。
  1. XMATCH(A2, リスト1!1:1)
    A2の値が、リスト1の1行目(見出し行)の何列目かを取得
  2. INDEX(リスト1!1:1048576,, 列番号)
    見つかった列の列全体を取り出す
  3. TRIMRANGE(...)
    上下の空白セルを除外し、実データ範囲だけにする
  4. DROP(..., 1)
    先頭1行(=見出し)を削除

「リスト2」を使用

部署の数式
=TRIMRANGE(リスト2!A:A)
数式の解説
リスト2シートのA列から、値が入っている部分だけを取り出す。

リスト2!A:A
リスト2シートのA列全体
TRIMRANGE
上下の空白セルを除外し、実データ範囲だけ返す

氏名の数式
=DROP(TRIMRANGE(INDEX(リスト2!1:1048576,XMATCH(J2,リスト2!F:F),0)),,1)
数式の解説
F列で J2 に一致する行を探し、その行のデータを、先頭列を除いて取得する。
  1. XMATCH(J2, リスト2!F:F)
    J2の値が、F列の何行目にあるかを取得
  2. INDEX(リスト2!1:1048576, 行番号, 0)
    見つかった行全体を取り出す(列0=全列)
  3. TRIMRANGE(...)
    左右の空白セルを除外し、実データ部分だけにする
  4. DROP(...,,1)
    左端の1列を削除




同じテーマ「エクセル関数応用」の記事

セル参照を戻り値とする関数
REDUCE+VSTACKが遅い理由と解決策
HSTACKは速い?遅い?実際に試してみた結果
条件付きMEDIAN関数を作る|LAMBDA関数で汎用〇〇IFSを実現
複数列の直積(デカルト積、クロスジョイン)
フィボナッチ、トリボナッチ、テトラナッチ数列を1数式で作成
表データから複数条件による複合抽出 (横AND/縦OR)
配列を自在に回転させる数式
掛け算(*)を使わない掛け算|足し算(+)を使わない足し算
2段階の入力規則リスト作成:最新関数対応
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン


新着記事NEW ・・・新着記事一覧を見る

電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
実績/予算ごとの3年間通算累計を出力|エクセル練習問題(2025-11-15)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ