leeand00 Asked: 2022-01-09 08:55:12 +0800 CST2022-01-09 08:55:12 +0800 CST 2022-01-09 08:55:12 +0800 CST 命名一个范围并在 Excel 中引用它? 772 是否可以将命名范围放在这样的公式中? =ISNUMBER(MATCH(D42,someworksheet!A:A,0)) 具体在哪里说A:A? microsoft-excel worksheet-function 1 个回答 Voted Best Answer Jeorje 2022-01-12T02:32:18+08:002022-01-12T02:32:18+08:00 您可以使用该INDIRECT()功能来执行此操作。 这非常简单:您只需构建一个与所需地址/引用的文字字符串匹配的字符串。这种构建字符串的过程与您构建的任何其他字符串完全一样,这意味着您也可以使用所有收集零件的方法。 所以这个概念是把函数放在INDIRECT()函数中的“D42”之后MATCH()。 在内部使用命名范围INDIRECT()时,考虑返回的内容非常重要,因为这决定了如何在函数中引用命名范围。广泛地说,如果命名范围“引用”文字文本(就像您的A:A可能那样),那么您按原样输入命名范围,周围没有双引号: =INDIRECT(SomeName) 在这种情况下,SomeName“指” ="A:A"。 如果您使用双引号,每个人都告诉您命名范围必须INDIRECT()在命名范围“引用”文字文本时包含在内,您将获得#REF!错误。没有布埃诺。 如果命名范围以可行的地址形式引用可行的地址,那么您必须在INDIRECT()函数内使用双引号。例如,如果SomeOtherName“引用” someworksheet!A:A(“引用”值中没有引用 - 它是一个可行的地址,您可以直接复制并粘贴到公式中,它会完全按照您找到的那样工作),那么您将使用它作为: =INDIRECT("SomeOtherName") 因此,您可以使用任何一种方式来定义您的命名范围。但是,如果命名范围“引用”一个可行的地址,Excel 将在您创建和定义命名范围时从您活动的工作表中添加工作表名称。如果您希望命名范围包含该工作表,INDIRECT()或者如果您不希望在INDIRECT()评估它之前使用字符串技术从其中删除该工作表名称,那么一切都很好。 如果您使用文字字符串("A:A"- 请注意双引号使其成为文字字符串,而不是可行的地址),那么您将使用以下公式:(使用上面的名称) =ISNUMBER(MATCH(D42, INDIRECT("someworksheet!"&SomeName), 0))) INDIRECT()将加入双引号的工作表名称和“!” SomeName ("A:A") to get "someworksheet!A:A". What's inside the doublequotes would be a valid address/reference, so 使用来自INDIRECT()`的文字字符串将返回您想要的结果。 如果您对返回工作表名称和“A:A”的命名范围感到满意,那么您将使用以下内容: =ISNUMBER(MATCH(D42, INDIRECT("SomeOtherName"), 0))) 命名范围周围的双引号非常重要。在这种情况下,它将获得可行的地址,并且在一步之后没有字符串构建,并返回它给出的值,就像另一个示例一样。 如果您想要问题中提到的内容,请使用第一个。 有很多理由选择一种方法而不是另一种方法。您的确切用途/需求将决定您将使用哪个。两者都没有任何理论上的偏好。 一般来说,任何时候您需要构建地址并将其用作真实地址,而不是字符串,INDIRECT()都是您的朋友。在从字面上指定公式中的地址和像使用INDIRECT(). 例如,OFFSET()可以建立一个地址,但直接从可以以多种方式指定的部分中进行,但它们都不能是像“someothersheet”这样的文本——所以介于直接写地址和完全创建地址之间的文本。 它有很多用途。以上几乎没有涉及到所有这些。它非常有用,您应该在帮助网站上查找并了解它。 在过去几乎所有的东西,现在对于可能使用它的电子表格,比如说,几十万次或者其余的计算负担同样巨大,它确实有一个缺点。它是一个volatile function,每次 Excel 计算时都会重新计算其中包含它的任何单元格。不仅仅是当 Excel 认为它需要时,因为影响它的某些东西发生了变化。以今天的计算机和内存水平,这已经无关紧要了,除非如上所述,一个人有一个巨大的计算负载,或者会使用它足以成为一个巨大的负载本身。大规模意味着,例如,100,000 或更多行和一些合理数量的列。如果您的电子表格计算缓慢,则需要考虑一些事项。此外,现代 Excel 具有LET()函数,如果您使用在任何给定单元格中多次计算相同的地址,LET()将允许您将计算的次数减少到只计算一次,而不是几次。所以它每天都变得越来越有用!
您可以使用该
INDIRECT()
功能来执行此操作。这非常简单:您只需构建一个与所需地址/引用的文字字符串匹配的字符串。这种构建字符串的过程与您构建的任何其他字符串完全一样,这意味着您也可以使用所有收集零件的方法。
所以这个概念是把函数放在
INDIRECT()
函数中的“D42”之后MATCH()
。在内部使用命名范围
INDIRECT()
时,考虑返回的内容非常重要,因为这决定了如何在函数中引用命名范围。广泛地说,如果命名范围“引用”文字文本(就像您的A:A
可能那样),那么您按原样输入命名范围,周围没有双引号:在这种情况下,
SomeName
“指”="A:A"
。如果您使用双引号,每个人都告诉您命名范围必须
INDIRECT()
在命名范围“引用”文字文本时包含在内,您将获得#REF!错误。没有布埃诺。如果命名范围以可行的地址形式引用可行的地址,那么您必须在
INDIRECT()
函数内使用双引号。例如,如果SomeOtherName
“引用”someworksheet!A:A
(“引用”值中没有引用 - 它是一个可行的地址,您可以直接复制并粘贴到公式中,它会完全按照您找到的那样工作),那么您将使用它作为:因此,您可以使用任何一种方式来定义您的命名范围。但是,如果命名范围“引用”一个可行的地址,Excel 将在您创建和定义命名范围时从您活动的工作表中添加工作表名称。如果您希望命名范围包含该工作表,
INDIRECT()
或者如果您不希望在INDIRECT()
评估它之前使用字符串技术从其中删除该工作表名称,那么一切都很好。如果您使用文字字符串(
"A:A"
- 请注意双引号使其成为文字字符串,而不是可行的地址),那么您将使用以下公式:(使用上面的名称)INDIRECT()
将加入双引号的工作表名称和“!”SomeName ("A:A") to get "someworksheet!A:A". What's inside the doublequotes would be a valid address/reference, so
使用来自INDIRECT()`的文字字符串将返回您想要的结果。如果您对返回工作表名称和“A:A”的命名范围感到满意,那么您将使用以下内容:
命名范围周围的双引号非常重要。在这种情况下,它将获得可行的地址,并且在一步之后没有字符串构建,并返回它给出的值,就像另一个示例一样。
如果您想要问题中提到的内容,请使用第一个。
有很多理由选择一种方法而不是另一种方法。您的确切用途/需求将决定您将使用哪个。两者都没有任何理论上的偏好。
一般来说,任何时候您需要构建地址并将其用作真实地址,而不是字符串,
INDIRECT()
都是您的朋友。在从字面上指定公式中的地址和像使用INDIRECT()
. 例如,OFFSET()
可以建立一个地址,但直接从可以以多种方式指定的部分中进行,但它们都不能是像“someothersheet”这样的文本——所以介于直接写地址和完全创建地址之间的文本。它有很多用途。以上几乎没有涉及到所有这些。它非常有用,您应该在帮助网站上查找并了解它。
在过去几乎所有的东西,现在对于可能使用它的电子表格,比如说,几十万次或者其余的计算负担同样巨大,它确实有一个缺点。它是一个
volatile function
,每次 Excel 计算时都会重新计算其中包含它的任何单元格。不仅仅是当 Excel 认为它需要时,因为影响它的某些东西发生了变化。以今天的计算机和内存水平,这已经无关紧要了,除非如上所述,一个人有一个巨大的计算负载,或者会使用它足以成为一个巨大的负载本身。大规模意味着,例如,100,000 或更多行和一些合理数量的列。如果您的电子表格计算缓慢,则需要考虑一些事项。此外,现代 Excel 具有LET()
函数,如果您使用在任何给定单元格中多次计算相同的地址,LET()
将允许您将计算的次数减少到只计算一次,而不是几次。所以它每天都变得越来越有用!