使用Excel的INDEX函数与COLUMN和MATCH
我正在尝试使用与MATCH,COLUMN和Data Validated Cell结合的INDEX函数。
这是我写的函数,但是抛出的错误是有错的。
=INDEX(ShipsData,MATCH(B3,ShipsData[Name],0),COLUMN(ShipsData[Max_Level]))
这是有效的,但并不是我想要的那样。
=INDEX(ShipsData,MATCH(B3,ShipsData[Name],0),13)
我应该指出这两件作品都不是作为条件之间的数据validation的最大值,第二件作品放置在一个单元格中。
附加信息:
ShipsData是表格的名称,B3是一个数据validation单元格,其中包含所有可能的船舶的下拉列表,表格中有两列,名称分别为Name和Max_Level。
我所要做的是validation一艘船的等级,使其在最低等级(1)和最高等级之间(包含)。
如果您需要更多信息,我可以提供。
编辑:
我解决了部分问题,公式现在在一个单元格中完成,表头中有一个错字Max_Level。
但是,当我将这个公式传递给数据validation时,它给了我一个关于'我们发现这个公式存在问题'的消息,它不会被插入,但是现在这个函数在一个单元中工作。
在我的系统上,你的公式显示#REF错误。
您的问题在第一个实例是INDEX函数的列参数正在查找表中的列号; 并且您的引用将返回Max_Level列的绝对列号。 所以当且仅当表开始于列1(列A)时,这将工作。
尝试这个:
=INDEX(ShipsData,MATCH(B3,ShipsData[Name],0),COLUMN(ShipsData[Max_Level])-COLUMN(ShipsData)+1)
如果您的公式显示“您input的公式包含错误”,则可能是因为您已经移动了一些东西,Max_Level(或Name)不再是表的一部分。
你可以通过在一些空白单元格中input:
=ShipsData[
并看到列标题可用显示在下拉列表中。
例如:
对于A1单元格的自定义数据validation,假设Name和Max_Level (不包括它们的头文件)分别占用E2:E10和F2:F10的范围:
=AND(A1>=1,A1<=INDEX($F$2:$F$10,MATCH($B$3,$E$2:$E$10,0)))
如果您希望保留“结构化表格参考”(当然更具dynamic性),则首先需要转到“名称pipe理器”(“ 公式”选项卡)并将“ 限制”定义为:
=INDEX(ShipsData[Max_Level],MATCH(Sheet5!$B$3,ShipsData[Name],0))
之后上述自定义数据validation变成:
=AND(A1>=1,A1<=Limit)
问候