Excel - 如何沿行增加公式引用

Posted

技术标签:

【中文标题】Excel - 如何沿行增加公式引用【英文标题】:Excel - how to increment formula reference along a row 【发布时间】:2015-05-14 10:30:24 【问题描述】:

我在 A 列下大约 1000 个单元格中保存了很长的文本字符串。

我创建了以下公式(FindN 包含一些 VBA),放置在单元格 B1 中:

=MID($A1,FindN("978",$A1,1),13)

我可以很好地将这个公式复制到 B 列。但是,我也想在每一行中复制这个公式,例如,跨行的单元格的公式应该如下:

单元格 C1:=MID($A1,FindN("978",$A1,2),13)

单元格 D1:=MID($A1,FindN("978",$A1,3),13)

单元格 E1:=MID($A1,FindN("978",$A1,4),13)

等等……

如果我跨行复制单元格 B1 中的公式,它将跨 =MID($A1,FindN("978",$A1,1),13) 复制 - 但我需要“1”每次递增 1。

我想我需要稍微调整一下公式,但对如何做到这一点有点迷失......

任何帮助将不胜感激。如果我需要进一步澄清,请告诉我。

【问题讨论】:

【参考方案1】:

使用COLUMN() - 它给出当前单元格的列号。您可以根据需要进行抵消。

在这种情况下,对于您的递增数字,请使用COLUMN() - 1,因此在 B 中您有 1,C; 2等

【讨论】:

这是更好的解决方案【参考方案2】:

您需要使用CELL 公式来获取当前列号。试试这样的:

=MID($A1,FindN("978",$A1,CELL("column";A1)+1),13)

我没有英文 Excel,我不确定CELL forumla 中的第一个参数是“列”

【讨论】:

太棒了,谢谢!是的,在我的 Excel 版本中是“col”。【参考方案3】:

试试这个:

Sub Fill()

With Sheets("Sheet1")
    For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
        .Cells(i, 1).FormulaR1C1 = "=MID($A1,FindN(" & _
                     Chr(34) & "978" & Chr(34) & _
                     ",$A1," & i - 1 & "),13)"
    Next i
End With

End Sub

【讨论】:

以上是关于Excel - 如何沿行增加公式引用的主要内容,如果未能解决你的问题,请参考以下文章

Excel公式复制和粘贴具有相同列字母的单元格,但在粘贴时将行数增加7

Android 在一个日期上增加100天得出的日期

excel中怎么用一个表的数据更新另一个表

office excel 文档一保存就未响应

为啥用EXCEL对一列进行填充公式,填到一半就出现这个#VALUE,手工再填也不行,怎么解决

MS Excel 2007:如何在每次打印输出后增加单元格中的数字