
INDEX MATCH についてはかなり慣れていますが、うまく機能するかどうかよくわからない問題に遭遇しました。シートが 2 つあります。最初の小さいシートには、もう 1 つのシートにある名前の小さなサブセットがあり、それぞれの名前に関連付けられた日付のセットがあります。もう 1 つの大きいシートには、それぞれの名前に関連付けられた別の日付のセットがあります。私が実行したいのは、大きいシートの日付に INDEX し、この日付が小さいシートの日付より大きく、その日付に関連付けられた月末より小さい場合にのみ名前を MATCH することです。MATCH 値を返すのではなく、基準が満たされた場合に 1 などを返すようにしたいと思います。これは INDEX MATCH で簡単に実行できるものなのでしょうか、それとも別の関数セットを探す必要があるのでしょうか。どのようにすればよいでしょうか。
答え1
あなたの質問は、次の基準に基づいて INDEX/MATCH 式を記述することに関するものだと思います。
大きなシートに日付を記入する
この日付が小さいシートの日付より大きい場合にのみ名前を一致させます
- その日付に関連付けられた月の末日未満
条件が満たされた場合は 1 を返します。
これは、IF 条件内に INDEX/MATCH をネストすることで実現できます。
=IF(
INDEX([LargerSheet!*Range with Dates*],
MATCH(
IF([SmallerSheet!*First Date in Range*]<[LargerSheet!*First Date in Range],
[SmallerSheet!*Range with Dates]),
[SmallerSheet!*Range with Dates*],0)
)>0,1,"")
MATCH 関数は、一致が見つかるたびに値を返します。定義により、その値は 0 より大きくなります。したがって、これが発生するたびに 1 を返す必要があります。
お役に立てれば!
答え2
これには Power Query アドインを使用します。クエリは Excel テーブルから開始し、データ変換を段階的に構築できます。各ステップで結果を確認できます。
要件に応じて、マージ コマンドを使用して 2 つのシートを名前で結合し、大きい方のシートから日付列を展開します。
http://office.microsoft.com/en-au/excel-help/merge-queries-HA104149757.aspx
これにより、すべての可能な一致が返されます。次に、フィルター コマンドを使用して、範囲内の日付のみを取得します。このためには、フィルター関数を編集する必要があるかもしれません。月末を導き出す Power Query 関数があることに注意してください。
最後に、クエリを新しい Excel テーブルに配信します。