Данная функция (ПРОСМОТР) используется в двух вариантах. Как я понимаю, наш вариант это векторный (т.к. присутствует третий аргумент). Мне все же непонятен второй аргумент.
Код
ПРОСМОТР(2;1/(G$8:G12<>"");F$8:F12);
здесь: 2 - то что мы ищем 1/(G$8:G12<>"") - это как бы должно быть ГДЕ МЫ ИЩЕМ, а тут получается как массив, состоящий из единиц и ошибок. F$8:F12 - откуда берутся результаты...
Получается, как сказал "vikttur", что мы ищем двойку в массиве состоящий из единиц и ошибок (которые игнорируются), и так как двойки там нет, получаем значение которое соответствует последней единице... вроде так понял... Правильно ??
Наверное именно этой особенности нет у функции LOOKUP (Гугл таблиц).
БМВ, Подскажите, пожалуйста... 1. Почему в функции ПРОСМОТР искомое_значение=2 ?? ( ПРОСМОТР(2;1/(G$8:G12<>"");F$8:F12) ) В данных столбцах двойки может вообще не быть. 2. Как понять такое выражение (для просматриваемый_вектор): 1/(G$8:G12<>"") ??
У нас ведется учет по счетчикам (несколько счетчиков газа, несколько счетчиков электричества, а так же воды): - записи не добавляются ежедневно, а раз в несолько дней, произвольно. - при этом, записываются данные НЕ ВСЕХ счетчиков, а только некоторых, могут ввести лишь 1 счетчик, или несколько, редко когда все. - данный список продолжается вниз до бескончности (может быть очень длинным). Нужно составить формулы для вычисления статистики относительно данных предыдущей даты. Например, по газу, 20 и 22-го данные не вводили, поэтому ячейки статистики должны быть пустыми. Это я бы сделал с помощью функций ЕСЛИ и ЕПУСТО, это как бы не проблема. А вот для 23-го числа - нужно определить предыдущую дату когда были введены данные (15 апреля), и вычислить кол-во дней и расход/день относительно этой даты. При этом, пробелы для каждого счетчика могут быть разные, от 1 и до 20-30 строк... Желательно не использовать макросы. Данный учет ведется в Гугл-таблицах, может там не все возможности десктопного приложения.
Kuzmich,спасибо за идею с интервалом дат! Хотя моя задача - сделать отчет только для одного дня, интервал тоже будет очень кстати. Пока не совсем понял как работать с автофильтром в процедурах, но думаю этот способ проще чем перебор по строкам... Попробую его реализовать. Хотя мне так и не понятно как обмениваться данными между ячейками двух открытых книг, не имея в процедуре конкретных ссылок (А1, С3), а просто номер строки и столбца! Было бы клево сделать так: 1. в реестре применить фильтр (останутся только нужные строки) 2. Определить диапазон данных, выделить его и скопировать - тут проблема в том, что в отчете данные одной строки должны быть в другом порядке, чем в реестре. 3. В файле отчета - вставить.
Я хотел делать так: 1. Пройти по всем! ячейкам, где содержатся даты 2. Если дата совпадает с нужной - скопировать ячейки данной строки в файл отчета, в нужном порядке, потом переместить активную ячейку вниз. 3. Продолжить поиск до конца списка реестра.
TheBestOfTheBest,Они и находятся с папке С:\1 Отчет должен работать так: - нужно распечатать отчет по 15.10.2018 - вводим эту дату, формируется отчет (все записи от 15.01.2018) и выводятся на печать. - нужно распечатать отчет по 16.01.2018 - вводим эту дату, старые записи на странице отчета удаляются, появляются новые под шапкой, и отправляются на печать - и т.д.
TheBestOfTheBest,спасибо. Но у меня не работает. Вот что я вижу (скриншоты). Кроме того, я вижу у вас 16 и 17е число... мне нужно чтобы данные новой даты заменили старые данные, а не накапливались внизу. Может подскажете вашу идею, как вы это сделали, и я попробую разобраться... Но мне кажется что процедурами проще, тем более что у меня почти готово, только обращение с ячейкам между книгами не работает.
Вот попытался создать то же что и на работе. Но не могу загрузить ни архив, ни файлы отдельно - загружаются только до 90% Загрузил архив на свой гугл-драйв. Скачать
Спасибо за ответ, но дело не в этом. На работе там переменные были написаны правильно. Ошибка была с синтаксисе... Не помню точно, но по смыслу что то типа "подобное не поддерживается". Сейчас я попробую сделать примерно то же самое дома, выложу файлы.
В цикле перемещаю ActiveCell по списку дат, вниз. Если нахожу нужную дату - нужно скопировать несколько ячеек из данной строки в СurrentWB Пытался делать примерно так:
Буду очень признателен тем кто помогут написать макрос... сам не программирую, что то делал когда то на ВБА, но сейчас не могу справиться.
Есть два файла Excel: реестр в котором другой макрос добавляет записи, одна строка - одна запись, в столбце А - дата. Второй - отчет. В нем нужно подключиться к первому, отыскать все записи указанной даты (они могут быть разбросаны по списку), и скопировать эти строки в файл отчета. При этом, в файле отчета ячейки находятся не в том же порядке как и в реестре. Нужно копировать каждую ячейку отдельно.
Самому как бы удалось сделать цикл, в нем двигаю активную ячейку вниз, проверяю чтобы дата=содержимому... Но вот копировать не удается... Подскажите, как решить эту задачу...
У меня на Win_8 (x32 и x64) а так же на Win_10 (x64), MS Excel 2010 при копировании ячеек (Ctrl+C) очень часто, прям через раз, выскакивает попап: "Ошибка открытия буфера обмена". http://prntscr.com/858h09 Подскажите, как от этого избавиться.
Привет. Я пользуюсь русской версией Офиса-2010. У шефа - английская. Тоже 2010. В моем отчете используется функция ТЕКСТ, как то так: =ТЕКСТ(R3;"чч:мм") Когда я отправляю отчет шефу, он открывается, функция ТЕКСТ правильно конвертируется в TEXT, только вот формат "чч:мм" остается прежним! Из за этого вся цепочка расчетов превращается в ОШИБКИ. В английской версии должно быть так: TEXT(R3;"HH:mm").
Вопрос: Как сделать, чтобы отчет правильно открывался как в английской, так и в русской версии??