【问题标题】:Excel: Problems with autofill, when reference cells increment by 3 (vlookup)Excel:当参考单元格增加 3 时,自动填充出现问题(vlookup)
【发布时间】:2016-10-15 02:37:45
【问题描述】:

我正在努力提高我的 Excel 技能(当然也是为了给我的老板留下深刻印象),因为我正在处理一个相当大的数据集,其中包含几张原材料和许多原材料的统计数据。我收到了一张 Excel 表格,它并没有像其他人一样让我的生活变得更简单。

我想从 Sheet1 获取数据并在 Sheet2 上计算它们。原始数据如下所示:

   A   B     C      D   E     F      G   H     I
1| Week 1           Week2            Week 3
2| ID  Name  Value  ID  Name  Value  ID  Name  Value
3| 1   A     15     2   B     4      1   A     3
4| 2   B     9      3   C     14     3   C     23
5| 4   D     1      5   E     2      4   D     8
6| 7   G     16     6   F     7
7|                  9   I     2

数据集(周)具有不同的行数,因为源仅在有数据时记录(没有 0)。因此,为了将数据放在正确的位置,我对每个 ID 使用 vlookup,每周检查 ID 并写入值。我对每个 ID 都使用它,它有效(下面的 ID 1,在没有数据的地方使用 IFERROR 写入 0):
=IFERROR(VLOOKUP(1;Sheet1!A3:C6;3;FALSE);0)
最后一行(此处为 C6)会有所不同,因此我可能会使其变得简单并选择更高的数字(尽管不是很复杂)。

我的问题是我想将其自动填充到第 2 周和第 3 周的下一个单元格(以此类推,持续数周),这将是:
=IFERROR(VLOOKUP(1;Sheet1!D3:F6;3;FALSE);0) 和
=IFERROR(VLOOKUP(1;Sheet1!G3:I6;3;FALSE);0)。

但自动填充坚持让下一个单元格 =IFERROR(VLOOKUP(1;Sheet1!B3:D6;3;FALSE);0)。

是否有任何智能方法可以将自动填充增加 3(A:C->D:F),就像模式一样,而不是 1 (A:C->B:D)?

【问题讨论】:

  • 你可以使用 Indirect(),但这很容易被破坏,例如当你插入列时

标签: excel vlookup autofill


【解决方案1】:

有多种方法可以偏移列;我更喜欢非易失性¹INDEX function

=IFERROR(VLOOKUP($K5, INDEX($A:$ZZ, 0, (COLUMN(A:A)-1)*3+1):INDEX($A:$ZZ, 0, (COLUMN(A:A)-1)*3+3), 3, FALSE), 0)


¹ 当整个工作簿中的任何内容发生变化时,易失性函数都会重新计算,而不仅仅是当影响其结果的某些内容发生变化时。 volatile 函数的示例有 INDIRECTOFFSETTODAYNOWRANDRANDBETWEENCELLINFO 工作表函数的一些子函数也会使它们变得易变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-09
    • 2015-05-13
    • 2017-01-23
    • 2016-08-27
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-18
    相关资源
    最近更新 更多