复制到不同工作表

时间:2017-11-14 22:06:44

标签: excel excel-formula

我一直在努力解决这个问题的时间比我承认的要长,但是我有一个相当简单的OFFSET函数调用可以在一张纸上运行,但是如果我将它复制到另一张纸上它会给出一个#VALUE错误。

在名为"可交付的"我在一个单元格中有这个公式:

=OFFSET(Deliverable!$B$72,1,0,,3)

它工作正常。

如果我转到任何其他工作表并使用相同的确切公式,或在名称管理器中使用它,则会出现#VALUE错误。

如果我遗漏最后一个参数表示我想要的列数,它确实有效:

=OFFSET(Deliverable!$B$72,1,0)

但当然并没有给我我需要的范围。

知道发生了什么事吗?

我在Windows 7上使用Excel 2016。

- 更新资讯 - 简而言之,我的电子表格有两个单元格,我将其用作下拉列表,其中第二个单元格的列表在第一个单元格中选择。它们所基于的数据具有以下格式:

OptionA     A     B     C     D
OptionB     A     B
OptionC     D     E     F

因此,第一个下拉列表使用一个简单的数据验证源指向具有OptionA,OptionB等的列。一旦选择了该列,第二个下拉列表应包含所选择的选项的相应选项。因此,如果选择OptionB,则第二个下拉列表应显示A和B.

当我最初写这篇文章时,数据验证源只是一个简单的VLOOKUP条目,但列表通常有空白,因为每个条目的选项数量各不相同。想要解决一下,我最终得到了这个公式:     =OFFSET(Deliverable!B72,Deliverable!B87,0,1,COUNTA(OFFSET(Deliverable!B72,Deliverable!B87,0,1,5)))

不会有超过5个选项,并且数据中间没有空单元格可以过滤掉。

在一个电子表格中,我将其用作命名范围定义,然后为单元格数据验证源指定了命名范围,并且它有效。然而,在这个其他电子表格中,它给了我前面描述的错误。

但是,当我将语句直接输入数据验证源字段而不是名称管理器中时,它看起来就像预期的那样工作。

我采取了完全错误的做法吗?

2 个答案:

答案 0 :(得分:1)

你想要这个公式做什么?如上所述,它返回一个由三个水平单元组成的块。 #VALUE错误是Excel告诉你的方式"嘿,你正在尝试返回三个单元格,但是我无法将它们全部放在你称之为的单元格中公式来自"。

您在某些地方而不是其他地方看到结果的原因是因为一些名为Implicit Intersection的内容。给它一个旋转谷歌。但基本上,它只返回这三个结果中的任何一个对应于输入公式的列。如果你将那个完全相同的公式复制到F行,你会发现它在那里返回了一个#VALUE错误,因为它不知道它应该返回哪个单元格给出你从#n&#39撤回的列。 ; t匹配它返回的任何单元格。您不知道这一点的事实表明您使用的公式实际上并没有按照您的想法行事。

- 更新 -

好的,在您进一步说明之后,似乎您正在谈论Cascading Dropdown,即动态下拉菜单。有关Google如何设置这些内容的大量信息,但您可能会对我在某个时候发布的博客方法感兴趣,这种方法不仅可以提供此功能,还可以确保以后有人无法更改&# 39;上游'没有先清除'下游'他们应该想要做出改变。请参阅https://chandoo.org/wp/2014/02/25/robust-dynamic-cascading-dropdowns-without-vba/(以及https://chandoo.org/wp/2014/02/13/dynamic-cascading-dropdowns-that-reset/)。

请注意,与其他链接相比,这些链接谈的是一种稍微复杂的方法,但该方法的优点在于它还可以处理多于两个的级别,并且您的DV列表可以在Excel中生成时轻松维护表。

答案 1 :(得分:-1)

这听起来像一个数组方程式。尝试在其他工作表中按 Ctrl + Shift + Enter 将其验证为数组方程式。

每当您需要引用范围而不是单个单元格时,Excel需要知道您正在使用数组。