[英]How to use sumif with arrayformula in google sheet
從google forms,我們將得到車輛編號的輸入。 在一段時間內,其中一些車輛可能是相同的。 在此期間,我們可能已經注意到這輛車的交通違法行為。 我們是否可以編寫代碼/函數來匯總所述車輛違反的罪行?
Col A:Timestamp Col B:Vehicle No. (從谷歌表格獲得的數據) Col C:Entry Count(通過 VLookup/Query 獲得 ~ 類似於基於 Col B 的計數) Col D:Violation Count(如果是,則為 1,空單元格表示否) Col E:Total Violation Count ~ 希望根據 Col B 求和總數。
因此,每次提交新的谷歌表單時,谷歌表格都會檢查該車輛在 Col E 中累積和自動化的違規總數。
感謝您的指導。
如果您需要在車輛的每一行有相同的違規總數,那么它將是:
=ARRAYFORMULA(
IF(
ROW(D:D) = 1,
"Total Violation Count",
IFNA(VLOOKUP(
D:D,
QUERY(
D:E,
"SELECT D, COUNT(D)
WHERE E IS NOT NULL
GROUP BY D"
),
2,
))
)
)
如果您需要違規次數的運行總和:
=ARRAYFORMULA(
IFS(
ROW(D:D) = 1,
"Total Violation Count",
A:A = "",,
True,
IFNA(VLOOKUP(
MATCH(D:D, UNIQUE(FILTER(D2:D, D2:D <> "")),) * 10^INT(LOG10(ROWS(D2:D)) + 1) + ROW(D:D),
SORT(
{
SEQUENCE(COUNTUNIQUE(D2:D)) * 10^INT(LOG10(ROWS(D2:D)) + 1),
IF(SEQUENCE(COUNTUNIQUE(D2:D)), 0);
FILTER(MATCH(D2:D, UNIQUE(FILTER(D2:D, D2:D <> "")),) * 10^INT(LOG10(ROWS(D2:D)) + 1) + ROW(D2:D), E2:E <> ""),
MMULT(
(FILTER(D2:D, E2:E <> "") = TRANSPOSE(FILTER(D2:D, E2:E <> "")))
* (SEQUENCE(COUNTA(E2:E)) >= SEQUENCE(1, COUNTA(E2:E))),
SEQUENCE(COUNTA(E2:E), 1, 1,)
)
}
),
2
))
)
)
請注意,第二個解決方案有一個限制:n^2 < 10 000 000,其中 n 是違規記錄的數量。 這是谷歌表格對單元格總數的限制,也適用於中間計算。
未使用F:F
列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.