现在已经找了很长一段时间,由于缺乏独特的术语无法找到任何解决方案,所以也许这里的专家可以提供帮助。
所以我得到了这个300+列的表,这些列就像这样填充
第1行标题/名称。
第2行当创建范围的“新名称”时,范围公式将位于“参考”输入区域。
第3/22行范围公式中使用的信息。
要在另一张纸上的数据验证中使用范围公式,我需要命名这些范围。如果我手动输入“新名称”,我可以将范围公式从第2行复制到“引用”输入区域,只有300列,这将是漫长的一天劳动。那时我发现了 CRTL + SHIFT + F3 组合,这使得有可能一次创建大量命名范围标题/名称和选择。不幸的是,这使用选择的位置作为源,在我的情况下,它应该是位置单元格内的公式,它必须是源...
那么有没有办法使用“从选择中创建名称”工具,该工具使用单元格内的公式作为源而不是位置?
这是一张有助于描述问题
的图片答案 0 :(得分:0)
对于每次验证,您应该能够使用1个命名范围来解决此问题(再加上2个以使公式更简单)。
第一个命名范围(all_headers
)应定义为:
=OFFSET('C'!$A$1,0,0,1,COUNTA('C'!$1:$1))
它返回一个带有C
表单标题(产品名称或代码)的范围。我们假设第一列是A,它们之间没有空列。
接下来我们需要选择正确的列。这有点棘手。在要验证颜色的行中,您需要具有与C
工作表标题中使用的完全相同的产品名称或代码。如果此信息在单元格A2中,您应该:
使用以下公式定义新的命名范围col_header
:
=INDEX(all_headers,1,MATCH(A2,all_headers,0))
上面的动态命名范围是 relative ,这就是为什么在定义它之前选择合适的单元格非常重要的原因。
最后一步是参考所选列中的颜色列表来定义命名范围val_list
:
=OFFSET(col_header,2,0,COUNTA(OFFSET(col_header,2,0,50,1)),1)
您提到第二行不包含数据,这就是为什么公式中有2
个参数两次的原因。如果您将其删除,请改用1
。 50
是最大颜色数 - 您可以调整它。
现在,您可以在任何单元格中使用val_list
进行验证。如果左侧的单元格包含C
工作表标题中的有效产品名称/代码,则应该为您提供正确的列表。