VetCAD

Альтернатива ВПР ИНДЕКС ПОИСКПОЗ ПРОСМОТР ПРОСМОТРX (Excel vba VPRpa)

    1 оценка

Петр-и-Алекс

размещено: 24 Марта 2021
Альтернатива ВПР ИНДЕКС ПОИСКПОЗ ПРОСМОТР ПРОСМОТРX (Excel vba VPRpa)

Специальный релиз для инженеров, позволяет работать с таблицами Excel намного проще.
Лично мне в стандартном Excel не хватает простых средств поиска числа в таблице. Такую простую задачу, как «найти в произвольном столбце таблицы число, большее заданного, и получить соответствующий найденному из другого столбца» не решить без танцев с бубном. Так же не просто «найти в произвольном столбце таблицы последнее (а не первое) число, равное заданному». Есть еще проблема: какие числа считать «равными»? Числа 10 и 9.9998 равны?
Проблема Excel в том, что невозможно оперировать таблицей как единым и постоянным объектом, для обработки «таблицу» необходимо разодрать на самостоятельные лоскуты «векторов». А перед этим таблицу необходимо переформировывать то так, то этак, смотря по решаемой задаче. Например, для поиска «меньшего»надо перекроить «по убыванию», а для поиска «большего» - уже «по возрастанию». А еще значения в ячейках «векторов» не могут быть «любыми», а должны быть определенными: запись числа не должна содержать пробел, а в России еще не должна содержать «точку». Пустая ячейка скорее всего будет интерпретирована как «ноль». Все это сильно отвлекает от решения прикладной задачи.
А хочется, что б было так: вставил в Excel таблицу (хоть скопипастеннуюиз системы «кодекс») - и сразу можешь пользоваться ею, как единым и в дальнейшем неизменяемым объектом.
Того ради создан этот проект. Самые важные отличия от функций Excel:
- поиск значений ведется в «таблице». «Таблица» - единый, неизменяемый под сиюминутные задачи объект.
- столбцы и строки таблицы могут располагаться в любом произвольном порядке. Никаких требований (типа «по возрастанию») не предъявляется;
- пользователь указывает, в каком столбце таблицы внести поиск, из какого столбца брать «ответ». Столбец таблицы можно указать или его порядковым номером, или его «названием». Названием столбца считается содержание первой строки таблицы;
- проект интерпретирует содержимое ячейки как «число», если человек понимает содержимое ячейки «как число». Например это значит, что пробелы перед числом не препятствуют работе, а в качестве десятичного разделителя допустимы и «точка», и «запятая»;
- при поиске чисел текстовые и пустые ячейки игнорируется;
- пустая ячейка считается «не содержащей число», а не «нулем» и не «разделителем диапазона»;
- легко организовать поиск не пустой ячейки, ближайшей к найденной «пустой».
Эта версия проекта решает такие задачи:
а) Найти в указанном столбце таблицы последнее (или первое) число, равное заданному (с определенной точностью), и вернуть содержание соответствующей ячейки из другого столбца;
б) Найти в указанном столбце таблицы ближайшее большее заданному числу (или ближайшее меньшее) и вернуть …;
в) Найти в указанном столбце таблицы максимальное значение (или минимальное) и вернуть …;
г) Во всех вариантах поиска можно запросить возврат номера строки найденного числа (а не значение ячейки из столбца).
В особых ситуациях проект вернет диагностическое сообщение. Если задан поиск «ближайшего меньшего», а заданное число сравнения и так меньше меньшего в столбце, то функция вернет символ “”. Если в качестве значения числа сравненияошибочно подставлено«не число», то проект сообщит и об этом.
В «скачивании» находится книга Excel с модулем, содержащим функции проекта. В книге есть страница с детальной инструкцией и с реальным примером.
В качестве примера выбрана работа с таблицей 7 из ГОСТ 30055-93 «Канаты из полимерных материалов и комбинированные. Технические условия». Пример демонстрационный, но таблица реальная и может пригодится. Да и сам пример легко адаптируется под конкретную задачу.
Как этим воспользоваться:
Те, кто совсем не в теме vba Excel и побаивается наломать дров, поступаете так: 1) открываете мою книгу; 2) создаете новую страницу; 3) мою страницу удаляете; 4) сохраняете книгу со своим названиеми обязательно в варианте «книга Excel с поддержкой макросов». Новые функции будут доступны в созданной Вами книге наряду со штатными средствами. И вызываться будут штатно как родные.
Знатокам vba и рассказывать ничего не надо.
Остальные могут: 1) нажать одновременно Alt и F11; 2) в открывшемся редакторе vba в СВОЕЙ книге «создать модуль»; 3) скопипастить в него все содержимое единственного «модуля» моей книги: 4) сохранить книгу в правильном формате. Если с этим непонятности – смотрим интернет на тему «vba начало работы» или «vba редактор».
Автор будет рад отзывам и даже простому «спасибо».

Комментарии

Комментарии могут оставлять только зарегистрированные участники
Авторизоваться
Комментарии 1-3 из 3
Петр-и-Алекс , 26 марта 2021 в 10:21
#1
Забыл отметить в инструкции:
В варианте с использованием "названия столбца", название столбца не должно быть "числом", должно содержать "буквы". Например так: "N1"
ДмитрийV , 30 марта 2021 в 05:47
#2
ишь ты, спасибо!!!
Петр-и-Алекс , 12 апреля 2021 в 10:45
#3
Немного статистики: сотня скачиваний за 19суток; ни одной оценки; всего одно "спасибо". Удивился столь низкому "спросу". В моей жизни "задача ВПР" встречается на порядок чаще, чем пресловутая "интерполяция". Сюрприз однако...
zip

0.04 МБ

СКАЧАТЬ