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