You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets:如何用单个公式计算玩家物品总价值

如何用单个公式计算每位玩家的物品总价值

我有两张表格:
一张是记录游戏玩家(P1、P2等)所持物品数量的表格:

nameP1P2P3P4
A21
B
C11
D11
E32

另一张是物品价值对应表:

namevalue
A10
B5
C4
D1
E5

我需要用单个公式计算每位玩家的物品总价值,尝试过组合VLOOKUP、SUM、FILTER但没成功。期望输出如下:

nametotal value
P139
P21
P320
P45

解决方案

适用于Excel 365/2021(支持动态数组)

假设玩家物品表的区域是A1:E6(表头在第一行),物品价值表是G1:H6(表头在第一行),在空白单元格(比如J2)输入以下公式,会自动溢出所有玩家的总价值:

=LET(
    players, TRANSPOSE(A1:E1),
    qtys, TRANSPOSE(A2:E6),
    values, XLOOKUP(A2:A6, G2:G6, H2:H6, 0),
    totals, MMULT(qtys, values),
    HSTACK(players, totals)
)

公式说明

  • LET:给中间变量命名,简化公式结构
  • TRANSPOSE(A1:E1):将玩家表头行转成列,得到P1-P4的列表
  • TRANSPOSE(A2:E6):转置物品数量区域,让每一行对应一个玩家的各物品数量
  • XLOOKUP:匹配每个物品对应的价值,无匹配时返回0(本次场景不会出现)
  • MMULT:通过矩阵乘法完成「数量×价值」的逐组求和,得到每个玩家的总价值
  • HSTACK:将玩家列表和总价值列表横向合并成最终结果表格

兼容旧版Excel(无动态数组)

如果使用不支持动态数组的旧版Excel,可以针对单个玩家计算,比如计算P1的总价值:

=SUMPRODUCT((B2:B6)*(XLOOKUP(A2:A6, $G$2:$G$6, $H$2:$H$6, 0)))

将公式中的B2:B6替换为对应玩家的列区域(比如P2对应C2:C6),再下拉填充即可得到所有玩家的总价值。


内容的提问来源于stack exchange,提问作者Kyle H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 13:20:19