Excel 2013:使用 IF 语句分析单个单元格内的多个日期

Excel 2013:使用 IF 语句分析单个单元格内的多个日期

有没有办法使用 IF 语句分析 Excel 中单个单元格内的多个日期?

例如,我在单个单元格(A1)中有以下日期:
1/2/23, 4/6/23, 10/3/23

有没有说如果 (A1)>= 4/1/223 AND <= 9/30/23 中的任何值则返回“是”?

答案1

由于您正在使用Excel 2013then 函数FILTERXML()Windows Excel 2013+), 您可以使用:

在此处输入图片描述


• 单元格中使用的公式B1

=IF(SUM((FILTERXML("<m><b>"&SUBSTITUTE(A1,", ","</b><b>")&"</b></m>","//b")>DATE(2023,4,1))*
  (FILTERXML("<m><b>"&SUBSTITUTE(A1,", ","</b><b>")&"</b></m>","//b")<=DATE(2023,9,30))),"Yes","No")

如果你需要更多信息,FILTERXML()那么你可能想阅读这篇文章Excel-使用 FILTERXML 从字符串中提取子字符串病毒先生


另请注意,根据个人的 Excel 版本,可能需要在退出编辑模式时按CTRL+ SHIFT+ 。ENTER


如果只有三个日期,以逗号分隔,您也可以尝试以下操作。

在此处输入图片描述


• 单元格中使用的公式B1

=((--LEFT(A1,FIND(", ",A1)-1)>45017)*
  (--LEFT(A1,FIND(", ",A1)-1)<=45199))+
  ((--SUBSTITUTE(TRIM(MID(A1,FIND(", ",A1)+1,8)),",",)>45017)*
  (--SUBSTITUTE(TRIM(MID(A1,FIND(", ",A1)+1,8)),",",)<=45199))+
  ((--TRIM(RIGHT(A1,8))>45017)*
  (--TRIM(RIGHT(A1,8))<=45199))

Where+运算符用作OR()函数,而*用作AND()


在现代 Excel 版本中,MS365它实际上变得更加容易、时尚和简单,仅添加作为将来参考的替代方案:

在此处输入图片描述


• 单元格中使用的公式B1

=LET(
     α, --TEXTSPLIT(A1,", "),
     IF(SUM((α>45017)*(α<=45199)),"Yes","No"))

答案2

=IF(
    SUM(
        (--TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",LEN(A1))),LEN(A1)*(ROW(A1:INDEX(A:A,1+LEN(A1)-LEN(SUBSTITUTE(A$1,",",""))))-1)+1,LEN(A1)))>45017)
        *
        (--TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",LEN(A1))),LEN(A1)*(ROW(A$1:INDEX(A:A,1+LEN(A1)-LEN(SUBSTITUTE(A1,",",""))))-1)+1,LEN(A1)))<=45199)),
    "Yes",
    "No")

这需要输入Ctrl+ shift enter

您可能希望改用助手。如果操作太慢请告诉我。

相关内容