Ответ на пост «Правила работы в Excel»1
эксель штука хорошая, и мне всегда его хватало без программирования, все, что нужно посчитать, считалось формулами.
Ровно до тех пор, пока не пришлось в одном месте объединять ячейки.
В одну ячейку надо просто внести произведение значения ячейки слева с значением отдельной, рассчитанной по другим значениям, ячейки.
Ну, типа =RC[-1]*R123C5
Вот внес в одну ячейку - и растягивай на весь столбец, в чем проблема?
Проблема в том, что некоторые RC[-1] - результат объединения ячеек, уже не тянется.
Ну, тут все относительно просто - копируешь текст формулы, входишь в ячейку, F2 и вставляешь формулу.
И так иногда раз 50-70.
А вот соседняя ячейка...
Если в строке объединенных ячеек нет
=(RC[-1]+RC[-6])/(RC[-8]-RC[-9]+RC[-7])*RC[-11]
Если есть - то так:
=(R2C14+R2C9)/(R2C7-R2C6)*RC[-11] - эта формула растянута на 5 ячеек столбца.
А следующая - на две:
=(R7C14+R7C9)/(R7C7-R7C6+R7C8)*RC[-11]
И вот таких, только слегка отличающихся - на той странице, с которой я пример брал, примерно с полсотни.
И это в них просто нет значения одной ячейки - оно нулевое, и я его просто не учитываю, для строки с не объединенными ячейками оно стоит (RC[-7]), потому что я эту строку копирую.
А эту не могу.
И вот честно - если бы мне это нужно было делать каждый день - пришлось бы лезть в VBA, который я сильно не люблю, а пару раз в месяц я могу и посидеть полчасика, клаву потоптать...
таг, ну поскольку любой ручной труд (даже полчаса в месяц) вызывает у меня аллергию, то можно сделать так:
1. принимаем (с грустью) что форма не наша и править ее нельзя (если можно, то убираем объединение и условным форматированием прячем содержимое ячеек, равных следующей, это визуально будет как и было, видно будет только нижнюю ячейку).
2. делаем слева служебный столбец с формулой =ЕСЛИ(K2=0;A1;A1+1). "К" это после добавления слева 1 столбца будет столбец Заказ (я решил что именно он основа и причина группировки. Эта формула обеспечит нам новое число при каждом новом заказе и старое при старом.
3. в хитрых формулах те ячейки которые были заморожены меняем на впр, в котором ищем ячейку из первого служебного столбца, а возвращаем тот столбец, который был. тут уже сложно понять, ща будут скрины)
4. из-за того что слева много одинаковых чисел впр нам будет возвращать всегда самое первое, а это и есть те замороженные ячейки, которые руками правились полчаса. в принципе меняя только 3 аргумент впр мы будем обращаться к любому нужному столбцу. Формула тянется спокойно.
5. получился например такой вариант формулы =(ВПР(A2;A:R;15;0)+ВПР(A2;A:R;10;0))/(ВПР(A2;A:R;8;0)-ВПР(A2;A:R;7;0))*E2
это вместо =(R2C14+R2C9)/(R2C7-R2C6)*RC[-11]