インデックスマッチを条件付きで使用して

インデックスマッチを条件付きで使用して

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 関数があることに注意してください。

http://office.microsoft.com/en-au/excel-help/date-endofmonth-HA104110485.aspx?CTT=5&origin=HA104122363

最後に、クエリを新しい Excel テーブルに配信します。

関連情報