根据与行标题关联的单元格值返回列标题

时间:2015-12-04 22:32:49

标签: excel vba function excel-vba worksheet-function

这是我目前的设置。

Sheet 1中:

A2行:A5我列出了:

Dog 1
Dog 2
Dog 3
Dog 4

列B1:E1我已经列出了

Black
White
Brown
Grey

例如,在我列出的第一行(来自B2:E2): 需要,要求,识别,识别

在Sheet2上,设置如下:

Cell A1有一个1-4的下拉列表

Cell B1有“必需”

Cell C1具有“标识符”

目标: 我的目标是,无论我从sheet2上的下拉列表中选择哪种狗,我都希望公式扫描sheet1!A2:A5,找到狗然后扫描与该狗相关的水平行,识别“必需”和“标识符“并提取列标题并将其组织在必需&在sheet2上标识。

示例:

我从下拉列表中选择狗1(在sheet2上),它将查找sheet1!A2:A5然后识别狗1位于A2上,然后查找水平识别单元格B2中的“required”和“identifier”:E2 ,然后它将提取列标题“黑色”和“白色”,并在sheet2中的appropraite字段(“required” - cell B1)(“标识符” - 单元格C1)下输入这些标题。

我非常感谢你对此的帮助。解决方案可以是VBA或公式。非常感谢你提前。

1 个答案:

答案 0 :(得分:0)

您可以首先在工作表2上的A1单元格上放置“数据验证”,然后将列表限制为A2:A5,或者您可以选择整个A:A范围并选择“忽略空白“选项。这样您就可以通过合适的狗的下拉列表选择A1的值。

然后在B1上放置以下数组公式:

=StringConcat(", ",IF(INDIRECT("Sheet1!B"&(MATCH(A2,Sheet1!A2:A5,0)+1)&":E"&(MATCH(A2,Sheet1!A2:A5,0)+1))="REQUIRED",Sheet1!$B$1:$E$1,""))

请注意,这是通过按CTRL + SHIFT + ENTER输入的。除了将“REQUIRED”更改为“IDENTIFIER”之外,您可以为C1复制此内容。

StringConcat是由Chip Pearson制作的自定义UDF,您可以在此处找到:http://www.cpearson.com/excel/stringconcatenation.aspx。将他提供的代码复制到VBA模块中,即可参加比赛。