指定された範囲(列全体)内の日付を検索する Excel 数式

指定された範囲(列全体)内の日付を検索する Excel 数式

私は実際に、列全体から日付を一致させて見つける数式を書こうとしていました。たとえば、次のようなものがあるとしますsheet1

  A   |     B
--------------------

 ID   |    Date1   
--------------------
101   |10/24/2018  
201   |01/21/2019  
301   |04/30/2018  

ID と Date2 が含まれている場合sheet2、結果の列は次のようになります。

 A   |      B      |      C   
---------------------------------

 ID   |    Date2   |    Result   
---------------------------------
201   |04/29/2018  |  FALSE
410   |04/30/2018  |   NA
101   |10/24/2018  |  TRUE
201   |03/29/2019  |  TRUE
101   |03/20/2018  |  FALSE
501   |04/30/2018  |   NA
301   |03/30/2018  |  FALSE
310   |04/30/2018  |   NA
310   |04/30/2017  |   NA

したがって、ID 101 の Date1 (2018/10/24) が Date2 (2018/03/20) より大きいか等しい場合、結果列には false が、そうでない場合は true が入ります。ID または日付のいずれかが一致しない/存在しない場合は、NA になります。

COUNTIF() と LOOKUP() を試してみましたが、うまくいきませんでした。試した数式は次のようになります。

=IF(COUNTIF(sheet2!A2:sheet2!A109944,sheet1!A2)>0,IF(COUNTIF(sheet2!B2:sheet2!B109944,">="&sheet1!B2),"False")),"True")

そしてルックアップ式:

=IFERROR(LOOKUP(2,1/(sheet1!A2=sheet2!A2:sheet2!A109944)*(sheet1!B2>=sheet2!B2:sheet2!B109944),"True")"False")

どなたか助けていただけませんか?よろしくお願いします。

答え1

INDEX と MATCH を使用してこれを行うことができます。

ここに画像の説明を入力してください

D2 の式:

=B2>=INDEX(Sheet1!$B$2:$B$4,MATCH(A2,Sheet1!$A$2:$A$4,0))

MATCH は Sheet1 上の ID を検索し、INDEX は関連付けられた日付を返します。次に、これを Date2 と比較し、TRUE/FALSE の結果を返します。

ID が一致しない場合は、 NA ではなくエラー状態 #N/A が返されます。


本当に NA を好む場合は、これを IFERROR でラップできます。

=IFERROR(B2>=INDEX(Sheet1!$B$2:$B$4,MATCH(A2,Sheet1!$A$2:$A$4,0)),"NA")

これにより、#N/A が NA テキストに置き換えられます。

ここに画像の説明を入力してください

答え2

次の式を試してください:

=IFERROR(IF(AND(COUNTIF(Sheet1!A:A,Sheet2!A2)=1,B2<VLOOKUP(A2,Sheet1!A:B,2,FALSE)),"False",IF(AND(COUNTIF(Sheet1!A:A,Sheet2!A2)=1,OR(B2=VLOOKUP(A2,Sheet1!A:B,2,FALSE),B2>VLOOKUP(A2,Sheet1!A:B,2,FALSE))),"TRUE")),"NA")

ここに画像の説明を入力してください

関連情報