私は実際に、列全体から日付を一致させて見つける数式を書こうとしていました。たとえば、次のようなものがあるとします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 テキストに置き換えられます。