谷歌表格查询功能

时间:2021-02-17 16:58:25

标签: arrays function google-sheets google-sheets-formula google-query-language

我正在尝试创建一个查询函数,该函数将根据 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/基于 F 的 B 的平均值),然后也对 C 列和 D 列重复该过程。< /p>

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

1 个答案:

答案 0 :(得分:0)

试试:

=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))}, ))

enter image description here

相关问题