如何在excel 2010中引用动态可扩展/可收缩的excel表格?

如何在excel 2010中引用动态可扩展/可收缩的excel表格?,excel,excel-formula,excel-2010,Excel,Excel Formula,Excel 2010,我们的系统使用模板电子表格,每个模板有两个表格,数据和原始数据。RawData包含excel表格,其中包含由应用程序填充的数据。用户负责根据原始数据表中的数据创建所需的报告(在数据表上)。现在,表中的数据可以变化,一个表今天可以有5行,第二天可以有10行 如果在原始数据中,我有带第1列的表1,我将如何在数据表中引用该列中的数据,以解释表1中数据的增长/收缩 我想我可以使用数组公式和引用,并使用数组公式{=Table1[column1]},但是当我定义它时,我总是必须指定固定数量的行。似乎无法指定

我们的系统使用模板电子表格,每个模板有两个表格,数据和原始数据。RawData包含excel表格,其中包含由应用程序填充的数据。用户负责根据原始数据表中的数据创建所需的报告(在数据表上)。现在,表中的数据可以变化,一个表今天可以有5行,第二天可以有10行

如果在原始数据中,我有带第1列的表1,我将如何在数据表中引用该列中的数据,以解释表1中数据的增长/收缩

我想我可以使用数组公式和引用,并使用数组公式{=Table1[column1]},但是当我定义它时,我总是必须指定固定数量的行。似乎无法指定数组公式将扩展到的行/列的数量,也无法从公式中派生该数量,这与动态范围的工作方式类似。如果我选择太多行,数组公式会将#NA值放在超出可用项的单元格中

谢谢


注:使用VBA不是一个选项。

目前,我不可能做我想做的事情,除非我求助于透视表或利用一些假设(利用一个表不能有超过某个已知行数的知识)。

目前,我不可能做我想做的事情,除非我求助于透视表或使用一些假设(使用一个表不能超过某个已知行数的知识)。

您是否尝试过NamedRange公式条目中的偏移函数?你可以把你的桌子放在它自己的纸上,然后使用它。您只需确保高度和宽度引用中始终包含数据*

=OFFSET(Reference, Rows, Cols, Height, Width)
Reference = Start of your table
Rows = 0 - no offset
Cols = 0 - no offset
Height = COUNTA($A:$A) - counts the number of entries in column A
Width = COUNTA($6:$6) - counts the number of entries in row 6
如果我将这个命名范围称为“testrange”,那么我可以直接转到一个单元格,说
=rows(testrange)
,它将返回动态范围的值


*您可以像“MAX(1,COUNTA($A:$A))”那样将COUNTA包装在MAX中,以防止在表中没有数据时出现引用错误

您是否尝试过NamedRange公式条目中的OFFSET函数?你可以把你的桌子放在它自己的纸上,然后使用它。您只需确保高度和宽度引用中始终包含数据*

=OFFSET(Reference, Rows, Cols, Height, Width)
Reference = Start of your table
Rows = 0 - no offset
Cols = 0 - no offset
Height = COUNTA($A:$A) - counts the number of entries in column A
Width = COUNTA($6:$6) - counts the number of entries in row 6
如果我将这个命名范围称为“testrange”,那么我可以直接转到一个单元格,说
=rows(testrange)
,它将返回动态范围的值


*您可以将COUNTA封装在MAX中,例如“MAX(1,COUNTA($A:$A))”,以防止在表中没有数据时出现引用错误

您肯定可以使用类似于
=SUM(Table1[column1])
的内容,它将始终引用column1的全部内容。这就是你要问的吗?你用什么样的函数来引用原始数据表?对于这种情况,有一些很好的公式解决方法,但它们都是非常具体的,所以很难看出哪种方法(如果有的话)可以解决你的问题。通常,它是一个混合的ob
countifs
match
if
,和
offset
在给定空间内动态选择和操作一个表。如果您能在工作表中提供大量表格布局的详细信息,我很乐意提供答案。@Stepan1010:我只想按原样获取列数据。用户将应用格式(以及条件格式)。我的想法是,如果原始数据增长,我希望数据能够扩展。我不担心总公式。我知道即使数据收缩或增长,我也能处理这些问题。给你一个更具体的例子,比如说,在RawData表中,我有一个表1,其中列1包含值1、2、3、4、5。用户希望应用一个简单的转换并将这些值乘以10,因此在数据表中,用户需要显示10、20、30、40和50。例如,这可以通过数组公式来实现。但棘手的是,明天重新评估模板时,表1可能有10个值或2个值。用户的数据也应该增长或收缩,这就是我所寻找的。您肯定可以使用类似于
=SUM(Table1[column1])
的内容,它将始终引用column1的全部内容。这就是你要问的吗?你用什么样的函数来引用原始数据表?对于这种情况,有一些很好的公式解决方法,但它们都是非常具体的,所以很难看出哪种方法(如果有的话)可以解决你的问题。通常,它是一个混合的ob
countifs
match
if
,和
offset
在给定空间内动态选择和操作一个表。如果您能在工作表中提供大量表格布局的详细信息,我很乐意提供答案。@Stepan1010:我只想按原样获取列数据。用户将应用格式(以及条件格式)。我的想法是,如果原始数据增长,我希望数据能够扩展。我不担心总公式。我知道即使数据收缩或增长,我也能处理这些问题。给你一个更具体的例子,比如说,在RawData表中,我有一个表1,其中列1包含值1、2、3、4、5。用户希望应用一个简单的转换并将这些值乘以10,因此在数据表中,用户需要显示10、20、30、40和50。例如,这可以通过数组公式来实现。但棘手的是,明天重新评估模板时,表1可能有10个值或2个值。用户的数据也应该增长或收缩,这就是我所寻找的。总有一种方法可以满足您的需求。但正如Gimp一开始所说,它们都是特定于公式的(当然,因为公式有不同的输入参数/参数的方式)。如果你能告诉我们你正在使用的返回错误的特定函数,我们可能会