如何按数值对非数字求和

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 个单元格。我不知道如何平均得分列中每个单元格的所有结果

Fle*_*ata 7

有几种方法可以做到这一点,我最喜欢的是使用较新版本的 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。:)


Jvd*_*vdV 5

或者使用FIND

=AVERAGE(FIND(B2:B6,"RAG"))
Run Code Online (Sandbox Code Playgroud)

如果还没有 Excel O365,则需要通过以下方式输入CtrlShiftEnter