MyD*_*ons 3 worksheet-function microsoft-excel office365
我的问题几乎由如何在 Excel 中为非数字值分配数字值回答
我们使用 RAG 状态(红色、琥珀色绿色),我想平均一组这些值。
EG,如果有 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!
Run Code Online (Sandbox Code Playgroud)
在第二个工作表中,我添加了另一个表
G 3
A 2
R 1
Run Code Online (Sandbox Code Playgroud)
这应该意味着我可以查一下。所以,在对应于平均分数的单元格中,我添加了
=VLOOKUP(B13,Scores!A1:B3,1)
Run Code Online (Sandbox Code Playgroud)
这仅计算 1 个单元格。我不知道如何平均得分列中每个单元格的所有结果
有几种方法可以做到这一点,我最喜欢的是使用较新版本的 Excel 365:
XLOOKUP 允许您传递一个范围作为其查找值,让您使用类型化数组作为查找数组和返回数组。所以在这个例子中,XLOOKUP 将返回一个包含 5 个数字的数组,然后可以将其传递给 AVERAGE 函数。
=AVERAGE(XLOOKUP(B2:B6,{"R","A","G"},{1,2,3}))
Run Code Online (Sandbox Code Playgroud)
编辑:作为对此的扩展,您可以通过将上述函数包装在另一个 XLOOKUP 调用中并反转数组,将平均值重新转换为 RAG 分数。我已经使用 ROUNDDOWN 来确保查找值是一个整数,但我想如果您觉得很慷慨,可以使用 ROUNDUP!
=XLOOKUP(ROUNDDOWN(AVERAGE(XLOOKUP(B2:B6,{"R","A","G"},{1,2,3})),0),{3,2,1},{"G","A","R"})
Run Code Online (Sandbox Code Playgroud)
如果您有旧版本的 Excel(即没有 XLOOKUP),那么您使用 VLOOKUP 是正确的,但请记住,您需要为表中的每一行 VLOOKUP 一个值,然后对该列表求平均值。
第三种选择,当您尝试对这些分数进行其他数学运算时,最终可能会让您的生活更轻松,只需首先将它们输入为 3,2,1。:)
或者使用FIND:
=AVERAGE(FIND(B2:B6,"RAG"))
Run Code Online (Sandbox Code Playgroud)
如果还没有 Excel O365,则需要通过以下方式输入CtrlShiftEnter