我在制作依赖下拉列表时遇到了一些问题。
我想选择我的冒险者的名字,然后选择一项技能。该技能应该对该职业有效且可用。
样本数据 :
Class, Name, Skill
Magic, Aldous, Fireball
Melee, Cordelia, Fury
Magic, Hmurr, Heal
Magic, Joe, Fireball
每个职业都共享相同的技能。(例如,魔法用户可以在火球、治疗、祝福、复活等之间进行选择,但近战或远程用户则不能,因为他们有自己的技能)。
每个类别都有一个预定义的名称列表。
可以使用辅助列/表来制作依赖下拉列表,但我认为这会适得其反,因为我的第三列没有足够的唯一值。
您建议我如何排序我的数据?
以下是我尝试过的:
感谢您的帮助!它看起来是这样的
=IF(E8<>"","t_dk_skill","")
检查列是否已填充,则用给定的字符串填充单元格,否则留空。
=
IFERROR(INDEX(tabel1,ROWS(H1:$H$1)),
IFERROR(INDEX(tabel2,ROWS(H1:$H$1)-ROWS(tabel1)),
IFERROR(INDEX(tabel3,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)),
IFERROR(INDEX(tabel4,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)),
IFERROR(INDEX(tabel5,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)-ROWS(tabel4)),
IFERROR(INDEX(tabel6,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)-ROWS(tabel4)-ROWS(tabel5)),
IFERROR(INDEX(tabel7,ROWS(H1:$H$1)-ROWS(tabel1)-ROWS(tabel2)-ROWS(tabel3)-ROWS(tabel4)-ROWS(tabel5)-ROWS(tabel6)),"")))))))
格式良好的表格。参考这个
有用!
谢谢!
答案1
我认为您想要做的是根据类别来驱动名称和技能命名范围,而不是让技能由名称驱动。我将工作表设置为如下所示:
我为 D3:D5 创建了一个命名范围,用于验证 B2。
我还创建了名为 MagicNames、MeleeNames、RangedNames、MagicSkills、MeleeSkills 和 RangedSkills 的命名范围。
我将 B3 的验证设置为基于所选类别和“名称”的连接
=INDIRECT($B$2&"Names")
然后,这会将 B3 的命名范围设置为等于 MagicNames、MeleeNames 或 RangedNames。
B4 的验证基于所选类别和“技能”的串联
=INDIRECT($B$2&"Skills")
根据评论的新答案:
这次我创建了一个姓名列表,旁边是他们的班级。我创建了 2 个命名范围;1 个基于 D2:D10 的姓名,另一个称为 LOOKUP,即 D2:E10。
然后我为每个类别的技能创建了命名范围(G2:G4、H2:H4 等)
名称用于 B2 中的验证。然后,对于 B3 上的数据验证,我在 LOOKUP 命名范围内使用了 B2 的 VLOOKUP。
=INDIRECT(VLOOKUP($B$2, LOOKUP, 2, 0))
这次查找返回了类别名称,然后用于调用适当的命名范围来列出技能。