我正在嘗試更完全地自動化計算電子表格中的值和匯總數據,我保存了有關池聯賽比賽結果的電子表格。
我有一個表格,其中包含有關每場比賽的大量信息,相關字段為:比賽日期、獲勝者、獲勝者開始讓分、獲勝者結束讓分、失敗者、失敗者開始讓分、失敗者結束讓分、比賽開始時間。
讓分在每場比賽結束時和下一場比賽前進行調整。找到一名球員最近的過去記錄(可能是贏家或輸家)並將他的最終讓分從該記錄複製到我現在輸入的起始讓分(贏家或輸家)是一件痛苦的事情。
我想要一個公式,可以找到他是贏家或輸家的最新記錄(最高日期和開始時間,如果他一天玩兩次),然後得到最終的讓分(來自相應的贏家或輸家) )。
根據 teylyn 的建議,這裡有一個指向該文件的 Dropbox 連結。相關選項卡是比賽結果:https://www.dropbox.com/s/1j9c6zsxjd3q4dt/Sample%20for%20Excel%20Question%20on%20Superuser.xlsx?dl=0
我添加了一個空白列 L 來測試事物,將結果與 K 中的結果進行比較,看看它們是否有效,這就是它存在的原因。當我將其放入 Dropbox 時忘記將其刪除。
答案1
問題陳述
工作表的名稱位於 ColumnsE
和中X
。對於每一行n
,≠ 。 Column 中的數字對應於 Column 中的名稱,而 Column 中的數字對應於 Column 中的名稱。對於第一行之後的任何行(假設第 42 行),如果可能的話,我們希望取得前一行的值。En
Xn
M
E
AG
X
K42
AF42
- 如果
E42
是“John”,則尋找包含“John”的最新行(在“列”E
或“列”中X
)。呼叫該行n
。如果=“John”,則設定等於。如果=“John”,則設定等於。En
K42
Mn
Xn
K42
AGn
如果
X42
是“Scott”,則尋找包含“Scott”的最新行(在“列”E
或“列”中X
)。呼叫該行n
。如果=“Scott”,則設定等於。如果=“Scott”,則設定等於。En
AF42
Mn
Xn
AF42
AGn
解決方案
為了保持一些理智,讓我們使用輔助列;假設AR
和AS
。假設(如範例文件所示)資料從第 2 行開始。
=MAX(($E$2:$E2=$E3)*(100*ROW($E$2:$E2)+COLUMN($M:$M)), ($X$2:$X2=$E3)*(100*ROW($X$2:$X2)+COLUMN($AG:$AG)))
進入AR3
(跳過AR2
)。以Ctrl+ Shift+結尾Enter,使其成為數組公式。同樣,設定AS3
為
=MAX(($E$2:$E2=$X3)*(100*ROW($E$2:$E2)+COLUMN($M:$M)), ($X$2:$X2=$X3)*(100*ROW($X$2:$X2)+COLUMN($AG:$AG)))
作為數組公式。 (這與AR3
除了兩次出現的$E3
已替換為 之外相同$X3
。)
K3
設定
=IF($AR3=0, "?", INDEX($A$1:$BG$999, INT($AR3/100), MOD($AR3,100)))
AF3
並
=IF($AS3=0, "?", INDEX($A$1:$BG$999, INT($AS3/100), MOD($AS3,100)))
(不是數組公式)。除了三個出現的$AR3
被替換為 之外,它們是相同的$AS3
。
當然,向下拖曳/填充。
輔助列尋找最近出現的名稱 — 尋找最近出現的,並 尋找最近出現的— 基本上是透過尋找前幾行中的最大值ARn
En
ASn
Xn
(前一個值=這個值) * 排())
即名稱匹配的最高行號。然後它將找到名稱的位置編碼為
100*行() + 列(我們想要複製的數據)
這兩個公式都會在 ColumnsE
和中查找,並傳回對應列或單元X
格的編碼座標。然後和公式只需解碼單元格位址並檢索值。M
AG
K
AF
213也是如此AR6
,因為「John」( E6
) 最近出現在第 2 行中,並且由於他出現在E2
(而不是X2
)中,因此我們希望複製第 13 列 (Column M
) 中的值。