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

Excel 2021中D&D角色表Tot_Class列自动计算公式求助

D&D角色表Tot_Class列自动计算公式方案(Excel 2021)

针对Excel 2021中D&D角色表的需求,以下是借助LET函数实现Tot_Class列自动计算的完整方案,可同时统计各职业累计等级并拼接最后出现的子类:

完整公式

=LET(
    CurrentLevel, [@Level],
    FilteredRows, FILTER(Table1[[Class]:[Subclass]], (Table1[Level] <= CurrentLevel) * (Table1[Level] > 0)),
    UniqueClasses, UNIQUE(INDEX(FilteredRows,,1)),
    ClassLevels, BYROW(UniqueClasses, LAMBDA(c, SUM(--(INDEX(FilteredRows,,1)=c)))),
    LastSubclasses, BYROW(UniqueClasses, LAMBDA(c, INDEX(FilteredRows, MAXIFS(Table1[Level], Table1[Level]<=CurrentLevel, Table1[Class]=c), 2))),
    ClassStrings, BYROW(HSTACK(UniqueClasses, ClassLevels, LastSubclasses), LAMBDA(x, IF(INDEX(x,3)<>"", INDEX(x,1)&INDEX(x,2)&" ("&INDEX(x,3)&")", INDEX(x,1)&INDEX(x,2)))),
    TEXTJOIN(", ", TRUE, ClassStrings)
)

公式说明

  1. 变量定义
    • CurrentLevel:提取当前行的等级值,作为统计的截止节点
    • FilteredRows:筛选出所有等级≤当前等级且等级>0的职业、子类数据行
    • UniqueClasses:从筛选结果中提取唯一的职业名称列表
    • ClassLevels:对每个唯一职业,统计其累计等级数
    • LastSubclasses:对每个唯一职业,找到其最后一次出现(对应最高等级行)的子类
    • ClassStrings:将职业名、累计等级、子类按格式拼接(子类为空时仅显示职业+等级)
    • TEXTJOIN:将所有职业的格式化字符串用逗号分隔,拼接成最终结果

使用注意事项

  • 把公式中的Table1替换为你的实际表名,[Class]、[Subclass]、[Level]替换为对应列的名称
  • 若子类列存在空白值,公式会自动跳过括号部分,仅显示“职业+等级”格式
  • 确保Excel 2021已启用动态数组功能(默认开启)

示例效果

假设角色表数据如下:

LevelClassSubclass
1战士狂怒野蛮人
2战士狂怒野蛮人
3法师塑能学派

第三行的Tot_Class列将生成:战士2(狂怒野蛮人),法师1(塑能学派)

内容的提问来源于stack exchange,提问作者Lyriander NB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 04:47:02