我的问题几乎被回答了如何在 Excel 中将数字值分配给非数字值
我们使用 RAG 状态(红色、琥珀色、绿色),我想对一组这些值求平均值。
例如,如果有 5 种 RAG 状态,即红色、红色、琥珀色、绿色、绿色,则平均值为琥珀色。我通过将值 1 分配给红色、2 分配给琥珀色、3 分配给绿色来计算。因此,(1+1+2+3+3) / 5 = 2
我用 Excel 很难做到这一点
我的桌子看起来像
Voter's name Score
Anna R
Ben A
Charles G
Donna G
Eddie R
Average HELP!
在第二张工作表中,我添加了另一个表格,
G 3
A 2
R 1
这意味着我可以查找。因此,在与平均分数对应的单元格中,我添加了
=VLOOKUP(B13,Scores!A1:B3,1)
这只计算了 1 个单元格。我不知道如何对“分数”列中每个单元格的所有结果进行平均
答案1
有几种方法可以做到这一点,我最喜欢的是使用较新版本的 Excel 365:
XLOOKUP 允许您传递一个范围作为其查找值,让您使用类型化数组作为查找数组和返回数组。因此,在此示例中,XLOOKUP 将返回一个包含 5 个数字的数组,然后可以将其传递给 AVERAGE 函数。
=AVERAGE(XLOOKUP(B2:B6,{"R","A","G"},{1,2,3}))
编辑:作为对此的扩展,您可以通过将上述函数包装在另一个 XLOOKUP 调用中并反转数组,将平均值重新转换为 RAG 分数。我使用了 ROUNDDOWN 来确保查找值是一个整数,但我想如果您觉得慷慨的话,您可以使用 ROUNDUP!
=XLOOKUP(ROUNDDOWN(AVERAGE(XLOOKUP(B2:B6,{"R","A","G"},{1,2,3})),0),{3,2,1},{"G","A","R"})
如果你使用的是旧版本的 Excel(即没有 XLOOKUP),那么使用 VLOOKUP 是正确的,但请记住,你需要对表中的每一行使用 VLOOKUP 来获取一个值,然后使用 AVERAGE那列表。
第三个选项,当您尝试对这些分数进行其他数学运算时,可能会使您的生活变得更轻松,首先只需将它们输入为 3,2,1。:)
答案2
或者使用FIND
:
=AVERAGE(FIND(B2:B6,"RAG"))
如果尚未安装 Excel O365,则需要通过CtrlShiftEnter