Для поиска номера строки первой пустой ячейки в диапазоне, ввожу в ячейку A1 формулу: =ПОИСКПОЗ(ИСТИНА();(A2:A50="");ЛОЖЬ()) жму Ctrl+Shift+Enter и все работает.
Теперь хочу адреса A2:A50 записать в общем виде (что бы потом в другие диапазоны копировать) меняю A2 на АДРЕС(СТРОКА()+1;СТОЛБЕЦ()), а A50 - на АДРЕС(СТРОКА()+49;СТОЛБЕЦ()) получается: =ПОИСКПОЗ(ИСТИНА();(АДРЕС(СТРОКА()+1;СТОЛБЕЦ()):АДРЕС(СТРОКА()+49;СТОЛБЕЦ())="");ЛОЖЬ()) не работает.
Даже когда явно задаю адрес: =ПОИСКПОЗ(ИСТИНА();(АДРЕС(2;1):АДРЕС(50;1)="");ЛОЖЬ()) тоже не работает.
Да не за что. Уважаемый vikttur дал хороший совет, поскольку ДВССЫЛ - это т.н. "летучая" функция и пересчитывается от любого чиха на листе. Эти пересчеты, конечно же, нагружают машину и замедляют работу. Я вам показал для вашего варианта, а vikttur предлагает принципиально другое решение, более удачное, на мой взгляд.
vikttur, Пытливый, Я просто не понял как я привяжу формулу написанную ув. vikttur к своей задаче. Там и строка и столбец заданы конкретно, а в АДРЕСе я привязываюсь к строке и столбцу ячейки, в которой находится формула и могу копировать (не растягивать) ее в другие ячейки.
vadi61, по-моему, Вы переусложняете. Относительная ссылка A2:A50 будет меняться автоматически при копировании или "растягивании" ячейки с формулой. Кстати, можно короче
А мне не понятна эта махинация с СТРОКА и СТОЛБЕЦ. Если копировать формулу не из строки формул, а вместе с ячейкой, то и формула при вставке будет ссылаться на сдвинутый диапазон, ссылки то в формуле относительные. Может я что то упустил?
Казанский написал: при копировании или "растягивании" ячейки с формулой
Цитата
gling написал: Если копировать формулу не из строки формул, а вместе с ячейкой
К сожалению я не могу копировать или растягивать ячейки - собъется форматирование. Многие ячейки имеют или другой фон или другой цвет шрифта. Мне именно нужно в адресной строке скопировать формулу как текст и вставить ее в уже отформатированную (по-другому) ячейку.
vadi61 написал: К сожалению я не могу копировать или растягивать ячейки - собъется форматирование... Мне именно нужно в адресной строке скопировать формулу как текст и вставить ее в уже отформатированную (по-другому) ячейку
Есть 2 решения: 1. Использовать спец. вставку - Формулы. 2. Включить стиль ссылок R1C1 (Параметры - Формулы). В этом стиле формула с одинаковой относительной ссылкой выглядит одинаково во всех ячейках.
вот пример. Сам оригинал достаточно большой - это фрагмент.
В файле отображается перечень деталей. К каждой детали (по сути в отдельную мини-табличку) сгруппированы цены продаж. Цены меняются, поэтому эти мини-таблички растут по высоте (добавляются строки). Актуальная цена (нижняя ячейка колонки Е) и маркировка документа, в которой эта цена указана (колонка F) должны отображаться в верхней строке мини-табличек (там, где указаны Арт.-№, и название детали). Все мини-таблички отделены друг от друга пустой строкой. Во время работы все мини-таблички скрыты и виден только перечень деталей. Чтобы автоматически обновлять цену в этом перечне (верхняя строка каждой мини-таблички) я использовал такой механизм. Нахожу первую пустую строку диапазона (конец мини-таблички), подымаюсь на строку выше и адрес полученной ячейки сохраняю как промежуточное значение (колонки A и B во вторых строках мини-табличек. В реальности этих значений не видно, поскольку шрифт и фон этих ячеек одного цвета. Здесь я специально для наглядности сделал шрифт черным). Ну а потом использую эти адреса для отображения нужных значений в верхней строке каждой мини-таблички.
В зависимости от типа детали (уплотнительные элементы, крепежные элементы и пр.) мини-таблички отличаются по цвету. Детали в список добавляются.
В рамках одного файла я эту задачу решил формулой (см. выше), которую указал в своем вопросе. Но теперь стала задача распространить этот механизм на другие файлы (металлические детали, детали из пластмассы и др.), а там и цвета другие и колонок больше.
Вот я и подумал, если не указывать жестко в формуле строки и колонки, а добиться того, чтобы они вычислялись сами, в зависимости от того в какой ячейке находится формула, то один раз сделав Ctrl+C, можно будет простым многократным Ctrl+V решить задачу. Растяжкой, копированием ячеек или специальной вставкой мне кажется эту задачу решать значительно трудоемче (либо потом цвета восстанавливать прийдется, либо миллион кликов по спец. вставкам).
До конца не дочитал - много очень :) =ИНДЕКС(E3:E20;ПОИСКПОЗ(1=1;E3:E20="";)-1) Из-за того, что приходится искать пустую строку, получается формула массива (как и у Вас в файле). Лучше в ячейку вписать определенное значение - число, текст (если его не нужно видеть - цвет текста равный цвету заливки). В таком случае формула получается легкой: =ИНДЕКС(E3:E20;ПОИСКПОЗ("конец";E3:E20;)-1) Диапазон не закреплять, задать размер не меньше максимальной высоты блока. Естественно, должно соблюдаться условие, что пусто (лучше, как замечено, значение) гарантированно будет в искомом диапазоне.
Еще совет. Плюсик группировки лучше располагать в строке-заголовке, так логичнее и пустая строка скроется. См. пример