求助:通过参考编号从另一工作表批量填充DnD怪物列表
DnD遭遇战怪物列表提取解决方案
问题根源
你需要在Initiative工作表输入遭遇编号后,从ENCOUNTER PROTO表提取对应怪物列表,但现有公式存在明显缺陷:
XLOOKUP仅返回首个匹配的怪物,下拉时因固定引用$G$2,会重复显示同一结果,无法遍历所有符合条件的怪物。INDEX+SMALL+IF未正确启用数组计算(旧版Excel需组合键触发,Google Sheets需添加ARRAYFORMULA),且缺少错误处理,当行号超出匹配怪物数量时会返回#NUM!。
可行方案
Google Sheets 一键提取
在Initiative工作表的目标起始单元格(比如E5)输入以下公式,自动填充所有匹配怪物,无需手动下拉:
=ARRAYFORMULA(IFERROR(FILTER('ENCOUNTER PROTO'!$D$6:$D$105, 'ENCOUNTER PROTO'!$B$6:$B$105=$G$2), ""))
- 逻辑:
FILTER精准筛选对应遭遇编号的怪物,ARRAYFORMULA自动扩展结果到所有行,IFERROR确保无匹配时显示空值而非错误提示。
Excel 适配方案
动态数组版(Excel 365/2021)
直接输入公式,自动溢出所有匹配结果:
=IFERROR(FILTER('ENCOUNTER PROTO'!$D$6:$D$105, 'ENCOUNTER PROTO'!$B$6:$B$105=$G$2), "")
旧版Excel
在起始单元格输入以下公式后,按Ctrl+Shift+Enter触发数组计算,再下拉填充足够多的行:
=IFERROR(INDEX('ENCOUNTER PROTO'!$D$6:$D$105, SMALL(IF('ENCOUNTER PROTO'!$B$6:$B$105=$G$2, ROW('ENCOUNTER PROTO'!$D$6:$D$105)-5), ROW()-4)), "")
- 新增
IFERROR处理无匹配或超出数量的情况,避免#NUM!错误;必须通过组合键触发数组计算,才能遍历所有符合条件的怪物。
配合Initiative自动排序优化
如果要直接按 initiative 值排序(方便追踪攻击顺序),可将提取公式嵌套进SORT(假设ENCOUNTER PROTO表E列是怪物基础initiative值):
# Google Sheets/Excel 365 =ARRAYFORMULA(IFERROR(SORT(FILTER('ENCOUNTER PROTO'!$D$6:$E$105, 'ENCOUNTER PROTO'!$B$6:$B$105=$G$2), 2, FALSE), ""))
- 参数
FALSE代表按initiative降序排列,改为TRUE可切换为升序。
内容的提问来源于stack exchange,提问作者Jonathan Rogers
相关产品推荐
相关产品推荐

