Excel – как увеличить формулу ссылки по строке

У меня действительно длинные строки текста, сохраненные примерно в тысячах ячеек в столбце A.

Я создал следующую формулу (некоторые VBA включены для FindN), помещенные в ячейку 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 каждый раз ,

Я думаю, мне нужно немного подкорректировать формулу, но немного проиграл, как это сделать …

Любая помощь будет принята с благодарностью. Пожалуйста, дайте мне знать, если я уточню дальше.

Для получения текущего номера столбца вам понадобится использовать формулу CELL . Попробуйте что-то вроде этого:

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

У меня нет английского Excel и я не уверен, что первый аргумент в CELL forumla – это «столбец»,

Используйте COLUMN() – он дает номер столбца текущей ячейки. Вы можете компенсировать это по мере необходимости.

В этом случае для вашего увеличивающего числа используйте COLUMN() - 1 , так что в B вы имеете 1, C; 2 и т.д.

Попробуй это :

 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 
Давайте будем гением компьютера.