При составлении строительных смет используют Классификатор Строительных Ресурсов (КСР) от минстроя РФ, документ там публикуется в формате PDF. Проблемы: 1. Внутри документа PDF не текст, а одна картинка, сделанная из тысяч страниц таблицы КСР. Пользоваться документов в таком формате неудобно. 2. КСР был создан приказом минстроя № 597 от 02.04.2017, но серия последовавших изменений и дополнений была учтена лишь в версии от 08.08.2018г. После этого публиковались ещё 27 групповых изменений и дополнений без итогового документа, учитывающего эти изменения. Из-за указанных проблем некоторые интернет-ресурсы публиковали свои более удобные версии КСР, но они были часто неточными, неполными, противоречили друг другу, не учитывали все изменения.
17.11.2022 приказом № 969 минстрой опубликовал новый КСР, систематизированный и учитывающий все предыдущие изменения. Но это PDF (35 МБайт) с графической картинкой таблицы уже на 5468 страниц. Пользоваться таким документом практически невозможно ни для поиска, ни для копирования-вставки, не говоря уже об использовании в автоматизации. При попытке преобразования в Word/Excel/CSV/TXT – программа может крутиться часами и зависнуть с сообщением о нехватке памяти. Остается разве что распечатать и листать эти ~5.5 тысяч листов.
Мне все же удалось программно из PDF создать таблицу КСР в удобном Excel-формате. Предлагаю 2 версии: 1. ZVI_КСР1_969-22.xlsx (6238КБ) - 3 столбца, как в PDF
Файлы выложены на Яндекс-диске, так как их размеры больше лимита этого форума. P.S. Благодарю за консультации, советы и проверки коллег по форуму: Jack Famous и Sokol92
Изменено: ZVI - 23.12.2022 21:04:02(Обновлена ссылка на КСР1)
Информирую о том, что в Windows 10 библиотека FM20.DLL элементов формы MSForms как в 32-х, так и в 64-х битных версий Office работает с преобразованием десятичных чисел в текстовое значение контролов TextBox, ListBox и ComboBox иначе, чем это было ранее. Возможно, конечно, что это какие-то особенности установки Office, но проявляется не только у меня - неплохо было бы проверить и на других компьютерах с Win10. У меня в Win10 64 бит проблема есть как в 32 битной версии Excel 2010, так и в 64-битной версии Excel 2016.
Проблема проявляется, когда в качестве разделителя целой и дробной части десятичного числа в операционной системе используется не точка, а запятая, как в русской локализации. Если ранее VBA код TextBox1 = 1.23 или TextBox1.Value = 1.23 помещал в TextBox1 текстовое значение 1,23 с запятой, то теперь в Win10 помещает текстовое 1.23 с точкой. И получается, что IsNumeric(TextBox1.Value) = False, а CDbl(TextBox1.Value) приводит к ошибке, чего ранее не было.
Обойти проблему можно использованием TextBox1.Text = 1.23 или TextBox1.Value = CStr(1.23), тогда в результате будет запятая, а не точка. Здесь 1.23 - число для примера, понятно, что это число может быть задано неявно, например, как Range("A1").Value и т.п.
Хуже обстоит дело с элементами ListBox и ComboBox, которые так ListBox1.List = Range("A1:A4").Value теперь тоже заполняются с использованием точки вместо запятой в качестве разделителя целой и дробной частей числа. Можно, конечно, применять ListBox1.AddItem CStr(1.34) , но это медленнее. В других элементах MSForms нет такой проблемы, например, Label2 = 1.23 помещает, как и ранее, текстовое значение 1,23 с запятой.
В принципе, то, что TextBox1.Value теперь независимо от локализации, а TextBox1.Text – зависимо, может быть интересным, но все же это явная ошибка совместимости версий, прошу учесть всем, у кого в коде это критично.
Видел кратко сегодня 2 темы Лунтика по замене скрытой функции РАЗНДАТ на обычные формулы. Пока отвлекся, уже одну тему закрыли, а другую удалили. Сильно не вникал в задачу иначе бы точно запутался )) Но так как что-то уже было надергано из источника, то выложу здесь вариант для дат, больших текущей, аналогично использованию РАЗНДАТ с параметрами "m" и "md". В столбце F - формулы с использованием РАЗНДАТ а в столбце G - обычными формулами.
Не нашел в правилах ни требования, ни рекомендаций по поводу того, что в одной теме должен быть только один вопрос. Тем не менее, это правило применяется, например, здесь есть такая фраза: "Вопросы удалил. Один вопрос - одна тема. [МОДЕРАТОР]". Логичным было бы дополнить правила этим требованием. Либо не применять его.
Получил пару писем от нового пользователя, у которого количество сообщений на форуме равно нулю. Почему-то в папке Сообщения- Входящие ничего от этого пользователя нет, прошу проверить не глюк ли это.
В начале полученных писем был такой текст: Информационное сообщение сайта Планета Excel ------------------------------------------
Вы получили персональное сообщение с форума на сайте planetaexcel.ru.
Появился смысл разбираться с ними, так как теперь они станут популярными не только для избранных. В принципе, большая часть новизны новой версии Excel - в этих и некоторых других надстройках. Помнится, кто-то из активных разработчиков приложений в Access высказал опасение, что эти надстройки создают альтернативу их решениям и составят большую конкуренцию для них.
Надстройка позволяет производить поиск и выборку данных в 2-х таблицах, в которых схожие данные ключевых столбцов записаны с какими-то отличиями (сокращения, порядок слов, опечатки и т.п.). Можно обрабатывать и одну таблицу для поиска в каком-либо столбце дубликатов с нечетким совпадением.
Функциональность подобна многим известным версиям интеллектуального ВПР, но значительно расширена. Реализована без формул, а с помощью наглядного визуального конфигурирования. В результате создается выборка не по одному столбцу, как в ВПР, а по заданному составу столбцов обеих таблиц.
Интерфейс очень удобный и продуманный, множество настроек, возможность добавления пользовательской таблицы замен, весовых коэффициентов, достаточно подробное и внятное описание алгоритма (на английском языке).
Первое впечатление - очень приятное
Работает в версиях Excel, начиная с 2007 но только в 32-битных , операционная система - XP и выше 32 или 64 битная. Время работы, как и при любом нечетком поиске, резко увеличивается при увеличении размеров обрабатываемых таблиц. Для установки нужно запускать setup.exe , а не FuzzyLookupAddInForExcelSetup.msi
Обнаружил, что в такой, например, формуле: =СРЗНАЧ(ЕСЛИ(C5:N5*ЕЧИСЛО(ПОИСК(ПРАВБ(C3:N3;2);"СрСб"));C5:N5)) при входе в режим изменения сообщения после "СрСб" добавляется лишняя точка с запятой и еще пара пробелов.
При этом флажок "Показывать графические смайлы в этом сообщении" отключен.
Вот так выглядит формула, если нажать кнопку Изменить: =СРЗНАЧ(ЕСЛИ(C5:N5*ЕЧИСЛО(ПОИСК(ПРАВБ(C3:N3;2);"СрСб" ;) );C5:N5))
Получил от Microsoft по рассылке для MVP приведенное ниже сообщение, которое, возможно, заинтересует молодежь с правильными амбициями:
"На следующей неделе Микрософт проводит в Москве и Санкт Петербурге серию интервью на SDE/SDET позиции. В этом году люди набираются на позиции как в Рэдмонде, так и в Москве. Это замечательная возможность помочь вашим друзьям и знакомым попасть в Microsoft, если конечно они толковые программисты.
ВНИМАНИЕ: Приглашаются только студенты старших курсов, аспиранты, и те, кто недавно был таковыми. Устроиться можно интерном на следующее лето или получить оффер на штатную позицию по окончании учебы. Подать заявление можно здесь: www.microsoft.com/university , и сделать это надо как можно скорее (интервью на следующей неделе)."
Поясню, что SDE означает Software Development Engineer (инженер-программист), а SDET - Software Development Engineer in Test (инженер-тестировщик ПО).
Excel представляет числа с 15-ю значащими цифрами, поэтому большИе числа нужно представлять в текстовом виде. То есть, либо выделять их в формулах двойными кавычками, например: "12345678901234567890", либо установить текстовый формат ячейки и вписать в такие ячейки текстом числа, на которые будут ссылаться формулы надстройки. Можно комбинировать большие числа с обычными.
Функции больших чисел начинаются с "x", например, xAdd() - сложение.
Для сложения двух больших (текстовых) чисел используется функция: =xAdd("БольшоеЧисло1";"БольшоеЧисло2";КоличествоЗначащихРазрядов)
По умолчанию КоличествоЗначащихРазрядов=30, если устраивает, то этот параметр можно не указывать.
Введите, например, в ячейку A1 с общим форматом такую формулу: =xAdd("12345678901234567890123456789";"111111111122222222234567891") После нажатия Enter результат сложения будет равен: "12456790012356790112358024680"
Вместо чисел в двойных кавычках могут быть ссылки на текстовые ячейки, в которых записаны большие числа.
Для вычитания можно поставить минус перед одним из слагаемых в xAdd() либо применить функцию вычитания: =xSub("12345678901234567890123456789";"111111111122222222234567891")
Пример умножения: =xMult("12345678901234567890123456789";"111111111122222222234567891") Результат: "1,37174210027434842017985050455E+54"
Пример деления с 50-ю значащими разрядами: =xDiv("12345678901234567890123456789";"111111111122222222234567891";50) Результат: "111,11111009999999998876544243669126385757915675311"
Можно и иначе (проще) с помощью функции xEval("Вычисляемое_Выражение"). Пример сложения с умножением на 2 и делением на 3: =xEval("(12345678901234567890123456789 + 111111111122222222234567891) * 2 / 3 ") Результат: "8304526674904526741572016453,33"
--- Из-за непонятных проблем искажения сообщений вынужден создать копию темы (автор запроса - Гость), чтобы выложить обновленный вариант надстройки. В 1-й версии (вчерашней) вызов из меню не выполнялся - приношу свои извинения. В исправленной прилагаемой 2-й версии все работает. --- ZVI