Excel formula 如何从两个单元格值中提取名称串联的命名常量值?

Excel formula 如何从两个单元格值中提取名称串联的命名常量值?,excel-formula,Excel Formula,我有一个名为“SheepGrams”的excel常量,值为500。我还需要其他动物的值,例如“小猪”、“小鸡克”。我想通过连接单元格值来获取它们的值 =间接(A1和B1)仅适用于命名范围,其中A1包含“清管器”,B1包含“克”。它不会返回命名常量值 =间接(A1和B1)返回#REF,但如果结果是命名范围,而不是名称管理器中的命名常量,则该方法有效我认为这可能是命名常量的限制,因为它们不返回范围,因此间接()不知道如何处理名称返回的结果 作为一种可能的解决方法,您可以创建一个UDF,如: Publ

我有一个名为“SheepGrams”的excel常量,值为500。我还需要其他动物的值,例如“小猪”、“小鸡克”。我想通过连接单元格值来获取它们的值

=间接(A1和B1)仅适用于命名范围,其中A1包含“清管器”,B1包含“克”。它不会返回命名常量值


=间接(A1和B1)返回#REF,但如果结果是命名范围,而不是名称管理器中的命名常量,则该方法有效

我认为这可能是命名常量的限制,因为它们不返回范围,因此
间接()
不知道如何处理名称返回的结果

作为一种可能的解决方法,您可以创建一个UDF,如:

Public Function INDIRECT2(rangeName As String) As String
    INDIRECT2 = Split(ThisWorkbook.Names(rangeName).RefersTo, "=")(1)
End Function

或者你可以把你的常数放在另一张纸上,使用命名范围,这样你就可以完成你想做的任何事情。

我认为这可能是命名常数的一个限制,因为它们不返回范围,所以
Indirect()
不知道如何处理名称返回的结果

作为一种可能的解决方法,您可以创建一个UDF,如:

Public Function INDIRECT2(rangeName As String) As String
    INDIRECT2 = Split(ThisWorkbook.Names(rangeName).RefersTo, "=")(1)
End Function

或者你可以把常数放在另一张纸上,使用命名范围,这样你就可以完成任何你想做的事情。

这听起来像是一个设计缺陷。大多数情况下,如果您使用的是
间接
,有一种更好的方法。为什么不在一张工作表中创建一个查找表,为这些不同的“克”值定义这些值,然后在需要这些值时引用此表?这听起来像是设计缺陷。大多数情况下,如果您使用的是
间接
,有一种更好的方法。为什么不在一张工作表中创建一个查找表,为这些不同的“克”值定义这些值,然后在需要这些值时引用此表?