我是新来的 - 我会尝试简洁(我认为我的搜索相当彻底)。使用MS Excel 2016,我有以下数组公式:
{= INDEX(ACD [ DrugA ],MATCH(A5& B5,ACD [细胞系]& ACD [激酶],0))}
" ACD"是同一工作簿中单独工作表中的命名表,它包含50列数据,每列大约500行。每列都是不同的药物"。
我有一个下拉列表,用于填充公式运行的工作表的单元格C1(让我们调用此工作表"查询表")。下拉列表中有50多种不同的" Drug"文字条目 - 除了" DrugA " - 从中选择(DrugB,DrugC等)。
我想从此下拉列表中选择一个条目,然后将该条目替换为" DrugA "在公式中,从而将公式重定向到我的" ACD"中的不同列值。表。因此,我认为必须有一个命令,我可以嵌入公式中,指示它取代" DrugA "使用从单元格C1中选择的条目。
我已经参与了两天无数谷歌搜索,目前还没有解决方案。看起来它应该很简单,但我尝试的所有简单的事情都会返回错误......这么多返回的错误。我有一些基本的vba技能我可以承担,但它似乎不应该是必要的。当然,只需更换" DrugA "所有排列的" C1"不起作用。我已经探索了许多命令选项,例如INDIRECT,REPLACE,SUBSTITUTE,但似乎LOSER是我重定向的地方。
任何能够保持理智的解决方案都将受到高度赞赏。
答案 0 :(得分:0)
您可以使用OFFSET来确定列。
考虑这张表。
首先,您的公式的无数组版本:
=INDEX(ACD[ccc],MATCH(A5&B5,INDEX(ACD[Cell Line]&ACD[Kinase],0)),0)
了解我的第一栏是药物aaa
。为了找到执行索引的列,OFFSET可以像这样使用:
OFFSET(ACD[aaa],0,MATCH(C1,ACD[#Headers],0)-1)
单词:在ACD表标题中找到C1中名称的列号,从该数字中减去1,并将该列数移到ACD [aaa]列的右侧。
整合到初始公式中:
=INDEX(OFFSET(ACD[aaa],0,MATCH(C1,ACD[#Headers],0)-1),MATCH(A5&B5,INDEX(ACD[Cell Line]&ACD[Kinase],0),0))
答案 1 :(得分:0)
谢谢你teylyn - 这样的快速反应比我希望的更多(但是对于编辑时间守护者而言,下面的内容太慢了)。
我需要仔细探索您的答案,以便更好地了解您提出的解决方案 - 这肯定会有助于扩展我的微薄技能。事实证明,我不知何故偶然发现了解决方案 - 尽管我不确定它为什么会起作用。
以下是现在有效的修订版:
{=INDEX(INDIRECT("ACD["&$C$1&"]"),MATCH(A5&B5,ACD[Cell Line]&ACD[Kinase],0))}.
似乎语法就是一切,&
是关键以及锁定单元格C1。这就是我去解决这个问题的地方:http://www.excel-bytes.com/how-to-use-index-and-match-in-a-table-with-indirect-in-excel/