Google 工作表查询功能

Google Sheets QUERY function

我正在尝试创建一个查询函数,该函数将根据 f 列中的内容对 B、C 和 D 列中的数字进行平均

示例:

buckape 1000    10  1000    defense e6vowe0
aiden   500 9   900 defense e6vowe0
faxyst  400 8   800 defense e6vowe0
lumi    300 4   500 defense e6vowe0
refresh 200 2   400 defense e6vowe0
sahsook 100 1   200 defense e6vowe0
doltic  0   1   100 defense e6vowe0 

目前,我能够像这样对按 F 列分组的行进行平均:

=Query(A:F, "select F, avg(B), avg(C), avg(D) where F is not null and E='defense' group by F",-1)

这反过来又会导致我按 ID 显示平均值(这很好)

event ID    avg heal    avg kills   avg damage
e6vowe0     357.14      5.00        557.14
hfgk3og0    514.29      5.29        814.29

但是,我正在努力让它(希望在相同的公式中)也除以每个原始数字(即 B2 / B 基于 F 的平均值),然后对 C 列和 D 列也重复该过程.

希望这是有道理的,希望这里有人比我更了解查询功能。谢谢

尝试:

=ARRAYFORMULA(IF(A2:A="",,{A2:A, B2:D/QUERY(QUERY(A:F, 
 "select avg(B),avg(C),avg(D)
  where F is not null 
    and E='defense' 
  group by F", 0), "offset 1", 0)}))

更新:

=ARRAYFORMULA(IF(E2:E="defense", {A2:A, B2:D/
 IFNA(VLOOKUP(F2:F, QUERY(QUERY(A:F, 
 "select F,avg(B),avg(C),avg(D)
  where F is not null  
    and E='defense' 
  group by F", 0), "offset 1", 0), {2,3,4}, 0))}, ))