Представляя адрес ячейки Excel в формуле, используя строковые значения других ячеек Excel? - PullRequest
3 голосов
/ 09 декабря 2010

Скажем, я хочу получить ответ на этот тип formula = SUM(startcell:endcell), но компоненты startcell и endcell меняются.

Поэтому вместо использования C1 непосредственно в формуле для представления значения в ячейкеC1, я хочу иметь возможность использовать любые значения и B1, B2, and B3 для создания чего-то, что может представлять C1 в формуле?

Возможно, лучший способ задать вопрос - есть ли в Excel что-то вроде eval()?

alt text

в Python

Ответы [ 4 ]

8 голосов
/ 09 декабря 2010

Разъяснение формул Excel в тексте утомительно ... Я думаю, что изображение лучше

1 голос
/ 09 декабря 2010

Я думаю, что более полезной является формула адреса, которая позволяет построить строку адреса ячейки из указанных вами входных данных. Обозначение: = АДРЕС (номер_строки, номер_столбца, абсолютный_номер_флаг, bool_A1Style, sheet_text).

Итак, для вашего примера: - Чтобы вернуть Sheet1! R1C3, вы должны использовать = АДРЕС (B3, B2,, FALSE, B1) - Чтобы вернуть Лист1! C1, вы должны использовать = АДРЕС (B3, B2, TRUE, B1) или = АДРЕС (B3, B2 ,,, B1)

Затем вы можете использовать вашу функцию НЕПОСРЕДСТВЕННЫЙ на этом возвращенном адресе.

Обратите внимание, что если вы хотите, чтобы динамический диапазон суммировался с помощью функции sum (), вы можете использовать два адресных вызова для построения строки для всего диапазона.

например. Если вы добавили значение 5 в ячейки C3 и C4 вашего примера, чтобы указать строку и столбец для конечной ячейки, вы можете получить формулу = АДРЕС (B4, B3 ,,, B2) & ":" & ADDRESS (C4, C3 ) который будет возвращать 'Sheet1!'! $ C $ 1: $ E $ 5

Я пока не могу публиковать изображения, надеюсь, это имеет смысл в тексте!

0 голосов
/ 09 декабря 2010

alt text

0 голосов
/ 09 декабря 2010

Вы можете попробовать

formula = SUM(INDIRECT(B1),INDIRECT(B2),INDIRECT(B3))

И проведите больше тестов, чтобы увидеть, можете ли вы работать на диапазонах

...