Всем добрый день! Постоянно получаю документы (акт КС-2) сформированные в сторонней программе (см. лист «Акт 16 граф» в прилагаемом файле). Данный акт может состоять из одного или нескольких разделов (в данном случае Раздел 1, Раздел 2, Раздел 3). По каждому разделу могут подбиваться итоги, а могут и не подбиваться (помечены зеленым). В частности такие строки как: Материалы Машины и механизмы ФОТ Накладные расходы Сметная прибыль Так же подбивается итог в целом по акту. Обязательно присутствует хотя бы одна из строк (помечены желтым): Материалы Машины и механизмы ФОТ Накладные расходы Сметная прибыль Как найти данные строки (только из итогов в целом по акту) и проставить соответствующие суммы как в «Лист1». Заранее спасибо.
Всем добрый день! Постоянно получаю документы (акт КС-2) сформированные в сторонней программе (см. лист «Акт 16 граф» в прилагаемом файле). Данный акт может состоять из одного или нескольких разделов (в данном случае Раздел 1, Раздел 2, Раздел 3). По каждому разделу могут подбиваться итоги, а могут и не подбиваться (помечены зеленым). В частности такие строки как: Материалы Машины и механизмы ФОТ Накладные расходы Сметная прибыль Так же подбивается итог в целом по акту. Обязательно присутствует хотя бы одна из строк (помечены желтым): Материалы Машины и механизмы ФОТ Накладные расходы Сметная прибыль Как найти данные строки (только из итогов в целом по акту) и проставить соответствующие суммы как в «Лист1». Заранее спасибо.and_evg
непонятно несколько моментов: 1. Почему пусто "искомое_значение"? 2. что значит выражение в просматриваемом векторе
Код
-1/('Акт 16 граф'!$A$37:$A$97=Лист1!A1)
3. из справки Значения в аргументе просматриваемый_вектор должны быть расположены в порядке возрастания: ..., -2, -1, 0, 1, 2, ..., A-Z, ЛОЖЬ, ИСТИНА; в противном случае функция ПРОСМОТР может вернуть неверный результат но в получаемых актах никакой сортировки нет. Не повлияет это на результат?
Всем СПАСИБО! Почти все работает! Интересно было бы разобраться с формулой
непонятно несколько моментов: 1. Почему пусто "искомое_значение"? 2. что значит выражение в просматриваемом векторе
Код
-1/('Акт 16 граф'!$A$37:$A$97=Лист1!A1)
3. из справки Значения в аргументе просматриваемый_вектор должны быть расположены в порядке возрастания: ..., -2, -1, 0, 1, 2, ..., A-Z, ЛОЖЬ, ИСТИНА; в противном случае функция ПРОСМОТР может вернуть неверный результат но в получаемых актах никакой сортировки нет. Не повлияет это на результат?and_evg
_Boroda_, Пожалуйста поправьте меня если я не правильно понял (хочется для себя уяснить). 1."искомое_значение" - пустое, аналогично нулю. Следовательно ищем заведомо несуществующий элемент. 2. Конструкция -1/('Акт 16 граф'!$A$37:$A$97=Лист1!A1), в случае если что то нашлось, возвращает массив состоящий из -1, в противном случае ошибку. 3. Так как функция ПРОСМОТР предполагает, что поиск происходит в отсортированном массиве по возрастанию и в случае неудачи возвращает наибольшее значение из найденных, то возвращается последняя строка.
_Boroda_, Пожалуйста поправьте меня если я не правильно понял (хочется для себя уяснить). 1."искомое_значение" - пустое, аналогично нулю. Следовательно ищем заведомо несуществующий элемент. 2. Конструкция -1/('Акт 16 граф'!$A$37:$A$97=Лист1!A1), в случае если что то нашлось, возвращает массив состоящий из -1, в противном случае ошибку. 3. Так как функция ПРОСМОТР предполагает, что поиск происходит в отсортированном массиве по возрастанию и в случае неудачи возвращает наибольшее значение из найденных, то возвращается последняя строка.and_evg
1. "искомое_значение" - пустое, аналогично нулю. Следовательно ищем заведомо несуществующий элемент." Несуществующий и, что очень важно, больший любого из возможных значений, элемент 2. "Конструкция ... в случае если что то нашлось, возвращает массив состоящий из -1, в противном случае ошибку" констукция в любом случае возвращает массив. А вот состоит он из -1 в случае, когда что-то нашлось, и ошибки, когда не нашлось 3. "в случае неудачи возвращает наибольшее значение из найденных" В случае неудачи (вообще ничего не найдено - это неудача) возвращается значение ошибки. А вот в случае, когда одно или несколько значений все-таки найдено, вот тогда да - "возвращается последняя строка". Но опять же, из тех, которые были найдены
1. "искомое_значение" - пустое, аналогично нулю. Следовательно ищем заведомо несуществующий элемент." Несуществующий и, что очень важно, больший любого из возможных значений, элемент 2. "Конструкция ... в случае если что то нашлось, возвращает массив состоящий из -1, в противном случае ошибку" констукция в любом случае возвращает массив. А вот состоит он из -1 в случае, когда что-то нашлось, и ошибки, когда не нашлось 3. "в случае неудачи возвращает наибольшее значение из найденных" В случае неудачи (вообще ничего не найдено - это неудача) возвращается значение ошибки. А вот в случае, когда одно или несколько значений все-таки найдено, вот тогда да - "возвращается последняя строка". Но опять же, из тех, которые были найдены_Boroda_
Спасибо за развернутый ответ. Но, если ИСТИНА=1 ЛОЖЬ=0 догадываюсь, что операция деления применяется для генерации ошибки на тот случай если ничего не нашлось. А если допустить, что в просматриваемом диапазоне 100% есть искомая фраза (как в моем файле), то получается что -1/1=1 равносильна операции -1*1=1 Однако конструкция -1*('Акт 16 граф'!$A$37:$A$97=Лист1!A1) дает неверный результат. Почему?
Спасибо за развернутый ответ. Но, если ИСТИНА=1 ЛОЖЬ=0 догадываюсь, что операция деления применяется для генерации ошибки на тот случай если ничего не нашлось. А если допустить, что в просматриваемом диапазоне 100% есть искомая фраза (как в моем файле), то получается что -1/1=1 равносильна операции -1*1=1 Однако конструкция -1*('Акт 16 граф'!$A$37:$A$97=Лист1!A1) дает неверный результат. Почему?and_evg
то получается что -1/1=1 равносильна операции -1*1=1
В Вашем варианте написания да, так и есть. Но не забывайте, что в знаменателе у нас не одно значение, а МАССИВ -1/('Акт 16 граф'!$A$37:$A$97=Лист1!A1) даст примерно вот так {#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:...}
то получается что -1/1=1 равносильна операции -1*1=1
В Вашем варианте написания да, так и есть. Но не забывайте, что в знаменателе у нас не одно значение, а МАССИВ -1/('Акт 16 граф'!$A$37:$A$97=Лист1!A1) даст примерно вот так {#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:...}_Boroda_
Тогда понятно. для -1/1(0)=-1(#ДЕЛ/0) получаем {#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:...}, а для -1*1(0)=-1(0) получаем {0:-1:0:-1:0:-1:0:-1:0:-1:...} В моем случае и выдает искомый ноль! СПАСИБО!
Тогда понятно. для -1/1(0)=-1(#ДЕЛ/0) получаем {#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:#ДЕЛ/0!:-1:...}, а для -1*1(0)=-1(0) получаем {0:-1:0:-1:0:-1:0:-1:0:-1:...} В моем случае и выдает искомый ноль! СПАСИБО!and_evg