是否有任何公式可用于根據電子表格中的開始和結束日期顯示每個月。
例子:
Start Date:2022-07-22
End Date:2022-10-22
我希望公式能夠提取像這樣的值
Jul - Aug - Sep - Oct
我試過公式
=IF(A2="","",IF(TEXT(B2,"MM")-TEXT(A2,"MM")>1,CONCATENATE(TEXT(A2,"MMM")&" - "&text(EDATE(A2,1),"MMM")&" - "&TEXT(B2,"MMM")),IF(TEXT(A2,"MMM")=TEXT(B2,"MMM"),TEXT(A2,"MMM"),CONCATENATE(TEXT(A2,"MMM")&" - "&TEXT(B2,"MMM")))))但只有在開始日期和結束日期之間有長達 3 個月的時間時,它才會給我正確的值。

uj5u.com熱心網友回復:
使用 獲取月份中的日期差異,并使用 DATEDIF獲取每個中間月份的日期,并將月末日期轉換為:EOMONTHSEQUENCETEXT
| 開始日期 | 結束日期 | 幾個月 |
|---|---|---|
| 2022-07-01 | 2022-10-30 | 七月 - 八月 - 九月 - 十月 |
| 2022-08-02 | 2022-08-31 | 八月 |
| 2022-07-03 | 2022-11-01 | 七月 - 八月 - 九月 - 十月 - 十一月 |
拖動填充公式:
=ARRAYFORMULA(JOIN(" - ",TEXT(EOMONTH(A2,SEQUENCE(DATEDIF(A2,EOMONTH(B2,),"M") 1)-1),"mmm")))
或作為自調整陣列公式:
=MAP(A2:INDEX(A:A,COUNTA(A:A)),LAMBDA(a, ARRAYFORMULA(JOIN(" - ",TEXT(EOMONTH(a,SEQUENCE(DATEDIF(a,EOMONTH(OFFSET(a,0,1),),"M") 1)-1),"mmm")))))
這應該比獲取所有日期并逐個過濾掉它們更快、更有效,從而降低空間和時間復雜度。
uj5u.com熱心網友回復:
使用sequence(),edate()和join(), 像這樣:
=arrayformula( map(
A2:A, B2:B,
lambda(
start, end,
if(
isdate(start) * isdate(end),
join(
" - ",
text(
edate(
start,
sequence(
12 * (year(end) - year(start)) month(end) - month(start) 1,
1, 0
)
),
"MMM"
)
),
iferror(1/0)
)
)
) )
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/510303.html
