【问题标题】:Increment row reference based on index in selection, and not same row number between sheets根据选择中的索引增加行引用,并且工作表之间的行号不同
【发布时间】:2021-08-10 13:49:52
【问题描述】:

我有一个包含两张工作表的工作簿。工作表 1 在 A 列中的每一行都有值,直到第 2000 行。工作表 2 应将工作表 1 中每一行的值复制到多行。像这样:

Sheet1:
a1 | 123
a2 | 456
a3 | 789

对于 Sheet2:

Sheet2:
a1 | 123
a2 | 123
a3 | 456
a4 | 456
a5 | 789
a6 | 789

复制相当简单,我只是将下一行的引用放在从 Sheet1 收集行值的行中:

a2: =a1

但是,选择并拖动 Sheet2 中的 a1 和 a2 行以将相应的公式复制到下一行,该公式未引用 Sheet1 中的正确行。会发生这样的事情:

Sheet2:
a1 | 123
a2 | 123
a3 | 789
a4 | 789

Sheet2 中的单元格 a3 引用 Sheet1 中的单元格 a3,而不是下一行的单元格 a2。我已经尝试了几个带有索引、偏移量等的函数,但它们似乎都没有绕过工作表之间的自动同行引用。有什么快速的想法吗?

【问题讨论】:

  • 如果总是只有两个值=INDEX(A:A,ROUNDUP(ROW()/2,0))?
  • 是的,它是行之间的固定间隔,所以这实际上适用于快速解决方案!谢谢 :) 但是,通用方法仍然有用,以防万一计数出现问题
  • 你基本上必须想出“输出”行和“输入”行数之间的关系。不一定涉及舍入,这仅适用于您的示例,但可以是简单的算术或使用 MOD。

标签: excel


【解决方案1】:

“通用方法”恕我直言是其中之一..:

  1. 只需编辑第一条评论中的“2”即可。
  2. 使用ROW()OFFSET() 的参数
  3. “手动”使用INDIRECT 构建引用
  4. 手动设置第 1 2 行,第 3 行往前使用=IF(A2=A1,INDIRECT("Sheet1!A"&(row()+1)/2,TRUE),A2) 并向下拖动。

这是你要找的吗?

【讨论】:

  • 很高兴它解决了.. 也归功于@SJR..(在解决方案中用作 1)
猜你喜欢
  • 2012-10-07
  • 2013-10-09
  • 1970-01-01
  • 1970-01-01
  • 2022-09-30
  • 2014-04-02
  • 2019-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多