Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Цитата
написал:
Получается, что код всегда состоит из девяти символов? Тогда все проще:

Не совсем. Код может быть разным, но значащая часть, которую надо вытащить состоит из 9 символов.
Условно говоря может быть так
AУУ0101200B
AУУУ001300B
а может так
AУУ0000001B-020-R45FFI-00
AУУУ000002B-020-R01FJF-00
или даже когда-нибудь так
AУУ0999998B-020-R9ORJL-00
AУУУ999999B-020-R50KJI-00
При этом маска первых11 символов всегда одна и та же, а первый и последний символ служебные и к номеру как к таковому отношения не имеют (я их обрезаю).

Цитата
написал:
Но ТЕКСТ в таком виде не будет корректно работать, если есть буквы ГМДЧС
Увы, буква М будет. Но вот этот короткий вариант =ПОДСТАВИТЬ(ЛЕВБ(A1;4);0;)&--ПСТР(A1;5;6) великолепен. Ровно то что надо. Коротко и красиво!


Вот итоговый вариант, который меня на 100% устраивает =SUBSTITUTE(MID(A1;2;3);0;)&--MID(A1;5;6)

Еще раз благодарю всех кто поучаствовал!
Изменено: Algench - 05.09.2025 18:08:59
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Еще раз отдельное спасибо _Boroda_ именно его формулу
Цитата
=ЛЕВБ(A1;ПОИСК(0;A1)-1)&--ПСТР(ЛЕВБ(A1;ДЛСТР(A1)-1);ПОИСК(0;A1);9)
взял за основу, минимально ее подправив. Да по правде вообще фактически и не правил, так, в одном месте ДЛСТР(A1)-1 на конкретное число заменил. :oops:  
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Цитата
БМВ написал:
=ПОДСТАВИТЬ(ЛЕВБ(A1;4);0;)&--ПСТР(ЛЕВБ(A1;ДЛСТР(A1)-1);ПОИСК(0;A1);99)
Вот эта тоже отлично работает.


Цитата
Sergey Stoyanov написал:
=ЕСЛИОШИБКА(ЛЕВБ(A1;3)&(--ПСТР(A1;4;ДЛСТР(A1)-4));ЛЕВБ(A1;4)&(--ПСТР(A1;5;ДЛСТР(A1)-5)))
Эта работает.

Цитата
Sergey Stoyanov написал:
точнее достаточно 4-й символ проверять. =ЛЕВБ(A1;3)&ЕСЛИОШИБКА(--ПСТР(A1;4;1);ПСТР(A1;4;1))&(--ПСТР(A1;5;ДЛСТР(A1)-5))
а эта первый ноль не заменяет.
Изменено: Algench - 05.09.2025 10:55:02
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Цитата
_Boroda_написал:
Примерно так и сделал=ЛЕВБ(A1;ПОИСК(0;A1)-1)&--ПСТР(ЛЕВБ(A1;ДЛСТР(A1)-1);ПОИСК(0;A1);9)
Идеально работает!


Цитата
ПавелW, написал:
=ЛЕВБ(A1;4)&--ПСТР(ЛЕВБ(A1;ДЛСТР(A1)-1);ПОИСК(0;A1);99)
Не убирает первый незначащий ноль (четвертый по счету символ) для случая с тремя буквами в начале номера.

Цитата
ПавелW, написал:
=ЛЕВБ(A1;3)&--ПСТР(ЛЕВБ(A1;ДЛСТР(A1)-1);ПОИСКПОЗ(1=1;ИНДЕКС(ЕЧИСЛО(-ПСТР(A1;{1;2;3;4;5;6;7;8;9};1)););99)
зато эта конструкция отлично работает



Цитата
Alex написал:
=LET(_txt_base;A1;_txt1;ЕСЛИОШИБКА(ПСТР(_txt_base;1;ПОИСКПОЗ(1;--(ПСТР(_txt_base;СТРОКА(ДВССЫЛ("1:"&ДЛСТР(_txt_base)));1)="0");0)-1);_txt_base);_txt2;ПСТР(ПРАВСИМВ(_txt_base;ДЛСТР(_txt_base)-ДЛСТР(_txt1));ЕСЛИ(СУММПРОИЗВ(--(ЕСЛИОШИБКА(ПОИСК({0;1;2;3;4;5;6;7;8;9};_txt1);0)>0))>0;1;ПОИСКПОЗ(1;--(ПСТР(ПРАВСИМВ(_txt_base;ДЛСТР(_txt_base)-ДЛСТР(_txt1));СТРОКА(ДВССЫЛ("1:"&ДЛСТР(_txt_base)));1)<>"0");0));ДЛСТР(_txt_base));_txt_result;_txt1&_txt2;ЛЕВСИМВ(_txt_result;ДЛСТР(_txt_result)-1))
Я боюсь даже не смог понять что здесь написано :)  После перевода на английскую версию экселя у меня эта формула не отработала, и даже не знаю, причина в том что мне онлайн транслятор формулу перевел неправильно, или в том что у меня эксель 2016, а не 2021
Изменено: Algench - 05.09.2025 10:45:34
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Коллеги, всем огромное спасибо, все решения прекрасны, все попробую.
Но решения ПавелW и _Boroda_ чисто визуально выглядят симпатичнее ))
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Цитата
написал:
=ЗНАЧЕН(СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(ЛЕВСИМВ(A1;ДЛСТР(A1)-1);"0";ПОВТОР(" ";10));10)))
Спасибо, это выглядит более изящно чем у меня получалось (с введением промежуточных столбцов).

Я уже даже начал думать насчет регулярных выражений. Это в принципе VBA, который я не хотел вмешивать, но с другой стороны там особого умения писать код не требуется, достаточно вставить модуль с функцией RegExpExtract если верить статье здесь https://www.planetaexcel.ru/techniques/7/4844/, а дальше работать с ней как с обычной формулой.
Правда никогда в экселе регулярными выражениями не пользовался, да и вообще много-много лет назад последний раз с ними сталкивался, но научиться никогда не поздно.
Изменено: Algench - 04.09.2025 15:11:50
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Цитата
написал:
а может быть значение, например, таким AУУУ00130B, то есть 0 после значащих цифр?
Да, конечно, это же обычный номер. Иначе бы я просто все нули поиском и заменой выпилил.  
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Спасибо!
А где именно это в Power Query спрятано?
Формула для парсинга номера, Как изящно с использованием формул, но без VBA убрать из номера вида AУУ0001B незначащие нули?
 
Добрый день.



Подскажите как изящно с использоваанием формул, но без VBA  убрать из маски формата AУУ00012B нули перед значащими цифрами?
Т.е. с помощью формулы получить AУУ12 из AУУ00012B (последний символ тоже желательно отсечь).

Все чуть усложняется тем, что маска может быть как AУУ00012B, так и AУУУ0013B  (один лишний символ У иногда меняется на дополнительный ноль перед значащими цифрами чтобы общее кол-во символов в номере не менялось).
Пока в голову приходят только громоздкие конструкции, отрезать последнюю букву справа, потом через REPLACE, избавиться от первых трех-четырех буквенных символов, и уже в конце работать с остатком вида 000012 переводя его в числовой формат, чтобы избавиться от незначащих нулей.

Может кто-то предложит более красивое решение?
Изменено: Algench - 04.09.2025 14:36:47
Отзывы о работодателях и исполнителях, Посмотрите, прежде чем взять/предложить работу
 
Добрый день.
Работу выполнил doober.  Все очень быстро и качественно. С учетом изменения изначального ТЗ в сторону его усложнения размер оплаты по инициативе заказчика (моей) пересмотрели в сторону увеличения .
Уровень у кода doober существенно превышает мои скромные умения в VBA, что мотивирует подтянуть свои знания, для того чтобы можно было хотя бы поддержать и минимально поправить код при необходимости. Даже и не знаю радоваться что настолько продвинутый человек решил мой вопрос, или печалиться (шутка конечно  :) )
Изменено: Algench - 27.08.2025 13:41:20
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
 
Задача сделана. Все оказалось сложнее чем выглядело на первый взгляд, поэтому тестирование затянулось.
doober огромный респект за скорость отклика на дополнительные хотелки и качество написанного кода.  
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
 
Подтверждаю.
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
 
Ок, взято в работу by doober
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
 
Надо раздробить текстовый файл в стандартном формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету.  Пояснения к задаче дам в личке исполнителю. Пример того что должно получиться (и входной файл и то что на выходе) есть. Надо по понятным правилам искать в общем файле куски, относящиеся к конкретным счетам и копировать их в отдельные файлы, добавляя в начале стандартный заголовок.
В качестве решения хочу увидеть файл с кнопкой импортировать, и двумя ячейками, где указаны путь откуда забирать исходный файл в txt и куда сохранять результирующие файлы в txt.
Поддержать и подправить при необходимости уже написаный код я смогу, но прошу для удобства тестирования сделать и сохранять промежуточный эксель, где на отдельных листах будут те данные что после сохранения станут результирующими txt файлами

Бюджет 1000р.
Изменено: Algench - 20.08.2025 14:20:26
Страницы: 1
Наверх