有没有办法使用 IF 语句分析 Excel 中单个单元格内的多个日期?
例如,我在单个单元格(A1)中有以下日期:
1/2/23, 4/6/23, 10/3/23
有没有说如果 (A1)>= 4/1/223 AND <= 9/30/23 中的任何值则返回“是”?
答案1
由于您正在使用Excel 2013
then 函数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
您可能希望改用助手。如果操作太慢请告诉我。