我正在製作一個電子表格來追蹤選舉結果並返回當選代表。我們採用的是比例代表制,改進的聖拉古法。選舉結果被輸入電子表格,然後除以給定數字(1.4、3、5 等,根據適用法律的規定,最多 15,總共八個商),得出商來分配席位。使用條件格式,電子表格現在會突出顯示八個最高的數字,顯示誰獲得了哪個位置。這一切都按預期進行。
我們需要 a) 傳回八個成功候選者的列表,b) 讓該列表傳回儲存格參考(例如,D7),而不是數字。我嘗試過使用該LARGE
函數,並使用本質上為 的公式成功返回了 C24:C31 中的前八個商=LARGE($C$2:$J$21, ROW()-23)
。但是,我無法讓它傳回這些商的網格座標。
下面的螢幕截圖顯示了我想要實現的目標的模型。以綠色突出顯示的單元格因條件格式而突出顯示;它們是 C2:J21 中的八個最大值。以黃色突出顯示的單元格是我想要實現的目標。說清楚;儲存格引用 C2:J5 中的資料是透過公式產生的,同樣,C24:C31 中的值也是上面以綠色突出顯示的相同的八個值;它們是公式生成的。隱藏的第 6 行到第 21 行本質上是第 1 行到第 5 行的重複。Google雲端硬碟
答案1
這很棘手。我們可以用
=MIN(如果($C$2:$J$21=價值, 行($C$2:$J$21)))找出第一行的編號
value
出現。同樣地,=MIN(如果($C$2:$J$21=價值, 列($C$2:$J$21)))找出第一列的編號,其中
value
出現。以上是數組公式。
如果 中的前八個值C2:J21
是唯一的,
我們可以使用上面的內容來尋找該網格中的值。然後
指數($A$1:$J$21,行號,列號)將索引該單元格,我們可以使用
CELL("地址", INDEX(以上))取得該儲存格的行和列位址。
所以,輸入
=CELL("地址", INDEX($A$1:$J$21, MIN(IF($C$2:$J$21=C24,ROW($C$2:$J$21))), MIN(IF($C $C$21:$J$21=C24,ROW($C$2:$J$21))) $2:$J$21=C24,列($C$2:$J$21)))))進入儲存格
B24
,按Ctrl+ Shift+ Enter,然後向下拖曳/填滿到B31
。
筆記:
CELL("address", …)
傳回絕對地址(帶有美元符號)。如果您不需要它們,您可以使用=替換(單元格(等等等等等等)、「$」、「」)
- 這不能很好地處理重複值。例如,如果
E3
還包含 8(除了D4
),它將報告它們都在D3
(第一行和第一列)中。這可能很難修復,但可以解決測試 是否發生過這樣的巧合,允許手動修正。 - 雖然這可以在一個單元格中完成,但從長遠來看,如果您使用輔助列作為行和列值,可能會簡化您的工作。
這個答案部分是基於一個技巧這個答案巴里·胡迪尼。