我有一系列不同的日期范围,用下划线分隔。这些日期以文本形式封装在单个 Excel 单元格内,因此它们显示在不同的行上。请参阅下面的示例详细信息:
CELL B2
----------------------------
| 06/13/2019 - 09/01/2019_ |
| 06/21/2021 - 08/29/2021_ |
| 08/22/2022 - 11/30/2022_ |
| 06/30/2023 - 07/28/2023_ |
| 10/03/2023 - 11/30/2023 |
----------------------------
这是我正在使用的excel TEXTSPLIT
=IFERROR(TEXTSPLIT(C2,,"_"),"")
,结果是这样的:
CELL C
----------------------------
2| 06/13/2019 - 09/01/2019_ |
----------------------------
3| 06/21/2021 - 08/29/2021_ |
----------------------------
4| 08/22/2022 - 11/30/2022_ |
----------------------------
5| 06/30/2023 - 07/28/2023_ |
----------------------------
6| 10/03/2023 - 11/30/2023 |
----------------------------
我需要计算每个
DATEDIF
,但只有 CELL C2 似乎有结果。假设2个月。这是我正在使用的公式:
CELL D2
=IFERROR(DATEDIF(IFERROR(LEFT(C2,SEARCH(" - ",C2)-1),""),IFERROR(RIGHT(C2,SEARCH(" - ",C2)-1),""),"YM"),"")&" Months"
其余部分不返回任何内容,因为该值是错误的。
我尝试过网上搜索但没有找到解决方案。
谢谢您的帮助。
您可以尝试以下其中一项,您面临的问题是由于Scott Craner先生已经说过的回车,因此您也需要删除该部分,即尝试其中之一以下:
• 单元格中使用的公式 B2
=BYROW(--TEXTSPLIT(TEXTAFTER(" - "&TEXTSPLIT(A1,"_",CHAR(10),1)," - ",{1,2})," - "),LAMBDA(x,
TEXT(DATEDIF(TAKE(x,,1),TAKE(x,,-1),"YM"),"0 \M\o\n\t\h\s;;")))
或使用
MAP()
与 YEARFRAC()
功能
=MAP(TEXTSPLIT(A1,"_",CHAR(10),1),LAMBDA(α,
LET(δ,--TEXTSPLIT(α," - "),TEXT(INT((YEARFRAC(TAKE(δ,,1),
TAKE(δ,,-1),1)*12)),"0 \M\o\n\t\h\s;;"))))
注意:使用
TEXT()
函数处理返回 0
的单数和复数。