【问题标题】:How can I reference dynamically expandable/shrinkable excel tables in Excel 2010?如何在 Excel 2010 中引用动态可扩展/可收缩的 Excel 表格?
【发布时间】:2012-08-08 19:08:36
【问题描述】:

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

如果在 RawData 上我有 Table1 和 column1,我将如何引用数据表上此列中的数据,以说明 Table1 中数据的增长/收缩?

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

谢谢

附言。使用 VBA 不是一种选择。

【问题讨论】:

  • 您绝对可以使用=SUM(Table1[column1]) 之类的东西,它总是会引用 column1 的全部内容。你问的是这个吗?
  • 您使用什么样的函数来引用 RawData 表?
  • 对于这种情况有一些很好的公式解决方法,但它们都非常具体,因此很难看出哪种(如果有的话)方法可以解决您的问题。通常它是一个混合 ob countifsmatchifoffset 一起工作以在给定空间内动态选择和操作表。如果您可以在工作表中提供大量表格布局的详细信息,我很乐意提供答案。
  • @Stepan1010:我只想按原样获取列数据。用户将应用格式(条件格式也是如此)。这个想法是,如果原始数据增长,我希望数据扩展。我不担心聚合公式。我知道即使数据缩小或增长,我也可以处理这些问题。
  • 给你一个更具体的例子,假设在 RawData 表中,我有 Table1 和 Column1 今天包含值 1、2、3、4、5。用户想要申请一个简单的转换并将这些值乘以 10,因此在数据表中,用户需要显示 10、20、30、40 和 50。这可以通过例如数组公式来完成。但棘手的是,明天重新评估模板时,Table1 可以有 10 个值或 2 个值。用户的数据也应该增长或缩小,这就是我要寻找的。​​span>

标签: excel excel-formula excel-2010


【解决方案1】:

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

【讨论】:

  • 总有一种方法可以做你想做的事。但就像 Gimp 一开始说的那样,它们都是特定于公式的(自然是因为公式有不同的输入参数/参数的方式)。如果您能告诉我们您正在使用哪些返回错误的特定函数,我们可能会提供更多帮助。
【解决方案2】:

您是否尝试过 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),它会返回动态范围的值

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-05
    • 1970-01-01
    • 2022-11-24
    • 2017-02-16
    • 1970-01-01
    • 2022-08-03
    • 2022-01-12
    • 2020-07-16
    相关资源
    最近更新 更多