基于另一个单元格值的动态命名范围

时间:2017-12-08 11:12:30

标签: excel

我有两列,col A包含1到9999的ID号,B列包含名称列表。我想为列B创建一个动态命名范围,其中关联的ID值介于999和9000之间。通常我会使用OFFSET函数来定义命名范围。是否可以根据col A中的值扩展功能以排除col B中的记录?

如果可能的话,我想避免过滤,vba,数据透视表或操纵原始数据。

谢谢

1 个答案:

答案 0 :(得分:0)

这是一个只有1个限制的解决方案,即ID列上的过滤器应该产生连续值,例如:过滤器可以是ID> = 5和/或ID< = 1000

如果这是可以接受的,解决方案将是:

与ID(A栏)和&名称列(列B),创建第三列(列C),例如Name2 where

Name2 = =IF(AND($A2>=start_val,$A2<=end_val),B2,"")

ID  Name    Name2
1   A   
2   B   
3   C   C
4   D   D
5   E   E
6   F   F
7   G   G
8   H   
9   I   
10  J   

为您的过滤器创建另外两个名称范围

start_val   3
end_val     7

最后,使用公式:

创建一个命名范围
xyz = OFFSET(Name2,MATCH(start_val,ID,0)-1,,1+MATCH(end_val,ID,0)-MATCH(start_val,ID,0),)