DATEDIF() 不适用于 TEXTSPLIT 日期的第二行

问题描述 投票:0回答:1

我有一系列不同的日期范围,用下划线分隔。这些日期以文本形式封装在单个 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"

其余部分不返回任何内容,因为该值是错误的。

我尝试过网上搜索但没有找到解决方案。

谢谢您的帮助。

excel excel-formula
1个回答
0
投票

您可以尝试以下其中一项,您面临的问题是由于Scott Craner先生已经说过的回车,因此您也需要删除该部分,即尝试其中之一以下:

enter image description here


• 单元格中使用的公式 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
的单数和复数。


© www.soinside.com 2019 - 2024. All rights reserved.