我對在 excel 中做“高級”的東西很陌生,所以我自己無法弄清楚這一點。我正在使用以下 Google 表格電子表格:

基本上我想為計算元素實作的演算法如下:
- 對于每個元素組(I、II、III、IV),找到最高元素值。
- 將這些元素值相加。
- 令 M 為找到的唯一元素組的總數。
- 在所有其他剩余元素值中,從每個單獨的組中洗掉這 M 個最高值,將遇到的 7-M 最高值相加,不考慮元素組。
這應該適用于任何 M=1、2、3、4 和 7 可以替換為 5 到 10 之間的任何數字。
在這種情況下,每個單獨組的最高元素是:
I: 0.3 -- II: 0.1 -- III: 0.3 -- IV: 0.2
然后,我們查看除這些值之外的最高值,直到總共有 7 個值,也就是說,從串列中洗掉這些值,我們查看剩余的 3 個最高值。這些是 0.3 兩次和 0.2 一次。總和變為 1.7。
我已經嘗試過僅考慮元素組 IV 來執行此操作,同時假設它只出現一次。我不確定它在這種情況下是否完全有效,但除此之外,我還試圖擴展它以使其適用于考慮所有元素組的演算法。我用的是
=IFERROR(QUERY({ROW(B2:D11),B2:D11},"select Col1 where Col2='IV' limit 1",0),0) sum(sortn(FILTER(D2:D11, ROW(D2:D11)<>ArrayFormula(IFERROR(QUERY({ROW(B2:D11),B2:D11},"select Col1 where Col2='IV' limit 1",0),0))), 6, 0, 1, false))
這個想法是,如果 IV 存在,我添加它的值,然后對已洗掉 IV 條目值的排序串列的前 6 位求和。
Anyone have an idea how to remove multiple rows at the same time, or any other way to make this algorithm work? I haven't got much experience in SQL or things alike, but I'm sure I could make this algorithm work in Python using dataframes or lists.
Edit: I did think of/tried to recursively use FILTER(FILTER...)) etc. 4 times to filter out 1 value from a specific element group, count how many times such an element was found, and created a sorted list of length 7-M to sum over it again, but I didn't get this to work and I'm not sure if this is the way to go.
uj5u.com熱心網友回復:
對于每個元素組(I、II、III、IV),找到最高元素值。
=SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1)

將這些元素值相加。
=SUM(SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1))

設 M 為找到的唯一元素組的總數
=COUNTUNIQUE(A2:A)

更新:
=SUM(SORTN(FILTER(C2:C, NOT(REGEXMATCH(A2:A&" "&C2:C&" "&
COUNTIFS(A2:A&C2:C, A2:A&C2:C, ROW(A2:A), "<="&ROW(A2:A)), TEXTJOIN("|", 1,
QUERY(TRANSPOSE(SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1)),,
9^9)&" 1")))), 7-COUNTUNIQUE(A2:A), 0, 1, 0))
SUM(SORTN(SORT({A2:A, C2:C}, 2, 0), 9^9, 2, 1, 1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/447318.html
標籤:sorting google-sheets count sum google-sheets-formula
上一篇:MySQL8.0其他新特性
