我正在嘗試使用此公式使其起作用
=ARRAYFORMULA(IF(ISDATE_STRICT(S2:S) ; (MATCH(MAX(AB2:AB),AB2:AB;0)-1) ; "" ))
如果有一個日期, Column "S" 我希望它顯示Column "S"文本中出現的空白總和
=ARRAYFORMULA(IF(ISDATE_STRICT(S2:S) ; ArrayFormula(MATCH(FALSE ; ISBLANK(AB2:AB) ; 0)-1) ; "" ))
我也試過這個,但結果我只得到 0。
知道如何使它作業嗎?
這是樣本表。

更新:
我們從 Q 列開始。我們可以取一個范圍 Q2:Q 但該范圍包含很多空行。下一個最好的方法是檢查最后一個非空行并將其設定為導致 Q2:Q73 的范圍的結尾。但是靜態 73 不會在資料集增長或縮小的情況下執行,因此為了動態獲得 73,我們將 Q:Q 乘法的 MAX 不為空并且該情況的行號,例如。Q:Q<>"" 將只輸出 TRUE 或 FALSE 所以我們得到的是
...
TRUE * 72 = 1 * 72 = 72
TRUE * 73 = 1 * 73 = 73
FALSE * 74 = 0 * 74 = 0
...
所以得到 Q2:Q73 的公式是:
=Q2:INDEX(Q:Q; MAX((Q:Q<>"")*ROW(Q:Q)))
它也可能是:
=INDEX(INDIRECT("Q2:Q"&MAX((Q:Q<>"")*ROW(Q:Q))))
但是輸入時間很長……接下來,我們使用新的 LAMBDA 函式,該函式允許我們使用占位符參考單元格/范圍/公式。簡單的 LAMBDA 語法是:
=LAMBDA(x; x)(A1)
在哪里x,A1我們可以用 LAMBDA 的第二個 ( ) 引數做任何我們想做的事情x,例如:
=LAMBDA(a, a a*120-a/a)(A1)
你可以把它想象成:
LAMBDA(A1, A1 A1*120-A1/A1)(A1)
或者只是:
=A1 A1*120-A1/A1
這里的問題是我們重復 A1 4 次,但使用 LAMBDA 我們只做一次。另外,想象一下如果我們有 100 個字符長的公式而不是 A1,那么與“舊方式”公式相比,帶有 lambda 的最終公式將短 300 個字符。
回到我們的公式……x是 Q2:Q73 的表示。現在讓我們專注于 VLOOKUP。基本上,這里的想法是 IF Q 列包含一個我們回傳該日期的日期,否則我們從上面回傳最后一個日期。簡單的說:
=ARRAYFORMULA(VLOOKUP(ROW(Q2:Q73);
IF(ISDATE_STRICT(Q2:Q73); {ROW(Q2:Q73)\Q2:Q73}); 2; 1))

正如您所看到的,Y2、Y3 和 Y4 是相同的,所以我們需要做的就是將它們數起來,然后取出一個以排除 Q2,但只包括 Q3 和 Q4,例如。3-1=2. 為此,我們使用簡單的查詢,其中輸出為:
date count
30.06.2022 3
所以我們需要做的就是將 Q 列中的日期與 QUERY 輸出配對,因為我們使用外部 VLOOKUP 輸出如下:
3
#N/A
#N/A
9
#N/A
#N/A
...
現在是-1修正的正確時間,因為我們有這些錯誤ERROR-1=ERROR,3-1=2所以-1修正后的輸出是:
2
#N/A
#N/A
8
#N/A
#N/A
...
我們現在需要做的就是用 IFERROR 隱藏錯誤,輸出是 X 列
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/514667.html
上一篇:如何在mysql中將YYYY-MM-DDHH:MM:SS轉換為HH:MM:SS?
下一篇:如何將日期舍入到最近的月份?
