Jelena Popovic Asked: 2024-09-20 15:13:01 +0800 CST2024-09-20 15:13:01 +0800 CST 2024-09-20 15:13:01 +0800 CST 比较 Google 表格中包含日期的文本字段 772 我获取以下格式的日期: 5.9.2024。 所以d.m.yyyy。 我需要在查询公式中使用该字段来检查该日期是否介于两个日期之间(例如>=5.9.2024, 和<=12.9.2025是日期范围的单元格的值)。 我正在努力将文本单元格转换为日期,以便可以进行此比较。 我尝试了所有不同的公式来将文本转换为日期,但没有任何效果。 =query(A4:B, "select Col1 where Col2>='"&$A2&"'AND Col2<='"&$B2&"'") date 4 个回答 Voted Alma_Matters 2024-09-20T15:32:22+08:002024-09-20T15:32:22+08:00 更正日期格式以供比较 看起来您在转换字符串时遇到了问题,这就是您在比较过程中遇到问题的原因。 尝试使用此公式转换您的日期。 =LET(dates, SPLIT(A1, "."), dd, CHOOSECOLS(dates, 1), mm, CHOOSECOLS(dates,2), yyyy, CHOOSECOLS(dates,3), DATE(yyyy,mm,dd)) 在进行任何比较之前,它应该按预期工作。 您也可以尝试此公式来处理多行。 使用BYROW并将公式置于 内LAMBDA function。 =BYROW(A1:A7, LAMBDA(r, LET(dates, SPLIT(r, "."), dd, CHOOSECOLS(dates, 1), mm, CHOOSECOLS(dates,2), yyyy, CHOOSECOLS(dates,3), DATE(yyyy,mm,dd)))) 示例输出: 注意:这是为了将字符串转换为可用于公式比较部分的日期。如果您需要有关如何使用此公式的更多信息,请随时在评论中提问。 参考: 日期 Best Answer Harun24hr 2024-09-20T16:24:53+08:002024-09-20T16:24:53+08:00 您可以尝试以下公式- =--TEXTJOIN("/",1,CHOOSECOLS(SPLIT(A1,"."),2,1,3)) 然后将所需的日期格式应用到单元格。 要转换整列,请使用- =MAP(A1:A,LAMBDA(x,IF(x="",,--TEXTJOIN("/",1,CHOOSECOLS(SPLIT(x,"."),2,1,3))))) Harun24hr 2024-09-20T16:39:44+08:002024-09-20T16:39:44+08:00 要直接从第一列获取日期,请尝试- =LET(x,CHOOSECOLS(SPLIT(A2," "),-1),--TEXTJOIN("/",1,CHOOSECOLS(SPLIT(x,"."),2,1,3))) 对于整个列,尝试- =MAP(A2:A,LAMBDA(z,IF(z="",,LET(x,CHOOSECOLS(SPLIT(z," "),-1),--TEXTJOIN("/",1,CHOOSECOLS(SPLIT(x,"."),2,1,3)))))) Haluk 2024-09-20T16:42:39+08:002024-09-20T16:42:39+08:00 更正日期并将列转储A and B到工作表上的另一种方法,单元格中的公式D4是: =ARRAYFORMULA(QUERY({A4:B, IF(B4:B<>"",REGEXREPLACE(B4:B,"(\d+).(\d+)\.(\d+)\.","$2/$1/$3"),"")},"Select Col1, Col3 Where Col1 Is Not Null")) 。
更正日期格式以供比较
看起来您在转换字符串时遇到了问题,这就是您在比较过程中遇到问题的原因。
尝试使用此公式转换您的日期。
在进行任何比较之前,它应该按预期工作。
您也可以尝试此公式来处理多行。
使用
BYROW
并将公式置于 内LAMBDA function
。示例输出:
注意:这是为了将字符串转换为可用于公式比较部分的日期。如果您需要有关如何使用此公式的更多信息,请随时在评论中提问。
参考:
日期
您可以尝试以下公式-
然后将所需的日期格式应用到单元格。
要转换整列,请使用-
要直接从第一列获取日期,请尝试-
对于整个列,尝试-
更正日期并将列转储
A and B
到工作表上的另一种方法,单元格中的公式D4
是:。