2

Я работаю с большим файлом Excel ежемесячно. В этом файле я должен найти что-то вроде sum как в

=sum(S2:AC2)

Проблема в том, что столбец последней ячейки в диапазоне изменяется. Я хотел бы иметь возможность сделать что-то вроде этого:

В ячейке S1 скажем, я ввожу значение AC а потом могу написать

=sum(S2:value(S1)2)

и иметь такой же эффект, как если бы я написал

=sum(S2:AC2)

Я знаю, что это можно сделать. Я видел это очень давно. Это будет огромная экономия времени. У меня есть сотни строк для =sum(S2:AC2) . Но в следующем месяце все они могут измениться на =sum(S2:BF2) . Было бы неплохо иметь одно место для изменения конца диапазона.

Кстати, номер строки на самом деле тоже меняется, но вполне предсказуемо.

В идеале я хотел бы иметь возможность объединить имя, такое как:

=sum(S2: & S1 & row() )

где я использую row() чтобы получить текущий номер строки

3 ответа3

5

Это может быть достигнуто с очень элегантной формулой:

=SUM($S$2:INDIRECT($S$1&ROW()))
2

Одним из способов является использование НЕПОСРЕДСТВЕННОГО, как это

=SUM(INDIRECT("S2:"&S1&"2"))

.... но это означает "жесткое кодирование" номера строки ....

Если у вас нет пробелов в данных, может быть лучше определить "динамический именованный диапазон" на основе количества значений в строке, например, определить имя Range на основе этой формулы

=OFFSET($S$2,0,0,1,COUNTA($S$2:$IV$2))

тогда вы можете просто использовать

=SUM(Range)

1

Я справился с работой Но я не доволен этим.

Допустим, что в клетках:

 cell(AB1) = "AD"
 cell(AC1) = "AG"

тогда в строке x меня есть следующее

 cell(ABx)=AB$1 & row()
 cell(ACx)=AC$1 & row()

и тогда я могу установить

 cell(AAx)=sum(indirect(ABx &":"& ACx))

Хотя это работает, это означает, что мне нужно вручную создать два столбца с нужным кодом.

Было бы неплохо иметь возможность сделать что-то вроде

 cell(AAx)=sum(indirect(AB$1 & row() &":"& AC$1 & row()))

О, и это работает !!!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .