【问题标题】:Paste absolute references in a formula but increase by 1在公式中粘贴绝对引用但增加 1
【发布时间】:2018-07-29 15:26:29
【问题描述】:

我有一个电子表格,其中有分布在工作表上的公式(它们之间平均大约有五个单元格)。

我想从 A1 中复制一个公式并将其粘贴到单元格 A6 中,但该公式仅将单元格引用增加 1。

例如:

=IF(ISBLANK(sheet1!$a$2),"",sheet1!$a$2)

并将其粘贴到单元格 A7 中,但现在绝对引用为

=IF(ISBLANK(sheet1!$a$3),"",sheet1!$a$3)

其中大约有 200 个要添加到工作表中,所以我不想手动编辑每个。

【问题讨论】:

  • 没有办法自动做到这一点除非模式是完全确定的。模式是确定性的吗?
  • 正要说与@ImaginaryHuman072889 相同的内容,但您也许可以在按键上创建一个宏来模拟这一点,指定为 Ctrl+Alt+V,使用单个单元格作为计数器行或名称管理器中的其他内容,但始终先尝试 VBA,即使它不起作用,所以我们可以为您提供帮助而不是免费代码。

标签: excel excel-formula vba


【解决方案1】:

尝试以这种方式使用间接:

=IF(ISBLANK(INDIRECT("Sheet1!$A$" & ROW()+1)),"",INDIRECT("Sheet1!$A$" & ROW()+1))

如果你喜欢使用 VBA,你可以使用这个简单的循环

Sub Test()
    Dim r As Long

    For r = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 6
        Cells(r, 1).Formula = "=IF(ISBLANK(Sheet1!$A$" & r + 1 & "),"""",Sheet1!$A$" & r + 1 & ")"
    Next r
End Sub

【讨论】:

  • fwiw,"""" 可以替换为 TEXT(,) 以避免在带引号的字符串中加倍双引号。
【解决方案2】:

使用 A 列上的 INDEX 和一些数学来创建交错。

=IF(ISBLANK(INDEX(Sheet1!$A:$A, INT((ROW(1:1)-1)/5)+1)), "", INDEX(Sheet1!$A:$A, INT((ROW(1:1)-1)/5)+1))

我认为 INT 可以被 ROUND 替换为“模糊”交错 “它们之间平均大约有 5 个单元格”。

增加交错的其他可能性可能是 COUNT、COUNTA、COUNTIF 甚至是 COUNTIFS,但您没有提供足够的信息来作为任何具体建议的基础。

【讨论】:

  • 那将是一个常数代数模式,对吧?从 A6 到 A7 不会使增量上升,看来 OP 的结构并不一致
  • 我疲惫的老眼睛将我的附录添加到错误的响应中。见我的补充;上面的叙述。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多