我有一張桌子,上面有這樣的球員姓名:
| 播放器 |
|---|
| 約翰 |
| 埃里克 |
| 瓦萊麗 |
| 卡門 |
另一個表格包含比賽串列(比賽編號、比賽日期和參加比賽的球員名單)。是這樣的:
| 匹配 | 日期 | 玩家1 | 玩家2 | 玩家3 |
|---|---|---|---|---|
| 1個 | 15/11/2022 | 約翰 | 埃里克 | |
| 2個 | 15/11/2022 | 約翰 | 埃里克 | |
| 3個 | 15/11/2022 | 約翰 | 埃里克 | |
| 4個 | 16/11/2022 | 約翰 | 瓦萊麗 | 卡門 |
| 5個 | 16/11/2022 | 約翰 | 卡門 | |
| 6個 | 17/11/2022 | 約翰 | 卡門 |
現在有了這些資訊,我想在玩家表中添加一列,顯示每個玩家玩過的不同天數。是這樣的:
| 播放器 | 天數(出勤) |
|---|---|
| 約翰 | 3個 |
| 埃里克 | 1個 |
| 瓦萊麗 | 1個 |
| 卡門 | 2個 |
我怎樣才能做到這一點?
我的想法是:
- 對于每個玩家,從包含該玩家的比賽表中選擇所有記錄。例如對于玩家卡門我會選擇這些:
| 匹配 | 日期 | 玩家1 | 玩家2 | 玩家3 |
|---|---|---|---|---|
| 4個 | 16/11/2022 | 約翰 | 瓦萊麗 | 卡門 |
| 5個 | 16/11/2022 | 約翰 | 卡門 | |
| 6個 | 17/11/2022 | 約翰 | 卡門 |
- 從這些記錄中僅考慮日期列和當前玩家列
| 日期 | 播放器 |
|---|---|
| 16/11/2022 | 卡門 |
| 16/11/2022 | 卡門 |
| 17/11/2022 | 卡門 |
- 洗掉重復項
| 日期 | 播放器 |
|---|---|
| 16/11/2022 | 卡門 |
| 17/11/2022 | 卡門 |
- 最后統計元素個數
這是我的想法,但我是新手,無法實作。我該怎么做(或類似的事情)?謝謝!!
uj5u.com熱心網友回復:
嘗試:
=INDEX(QUERY(SPLIT(UNIQUE(FLATTEN(IF(C2:E="",,B2:B&"?"&C2:E))), "?"),
"select Col2,count(Col2) where Col2 is not null group by Col2 label count(Col2)''"))

更新:
=INDEX(IFNA(VLOOKUP(<column of names here>,
QUERY(SPLIT(UNIQUE(FLATTEN(IF(C2:E="",,B2:B&"?"&C2:E))), "?"),
"select Col2,count(Col2) where Col2 is not null group by Col2 label count(Col2)''"), 2, )))
uj5u.com熱心網友回復:
你可以試試這個:
players['Days_Attendance'] = [list(matches['Player 1']).count(e)
list(matches['Player 2']).count(e) list(matches['Player 2']).count(e) for e in
players['Player']]
我不知道你是否有很多列“Planer n”。如果是這種情況,您可以考慮創建一個具有干凈腳本的函式。
或者,對于 12 名玩家來說更復雜:
players['Days_Attendance'] = [sum(list(matches['Player ' str(n)]).count(e) for
n in range(1,12)) for e in players['Player']]
問候,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/536969.html
