написал: Получается, что код всегда состоит из девяти символов? Тогда все проще:
Не совсем. Код может быть разным, но значащая часть, которую надо вытащить состоит из 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)
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
Спасибо, это выглядит более изящно чем у меня получалось (с введением промежуточных столбцов).
Я уже даже начал думать насчет регулярных выражений. Это в принципе VBA, который я не хотел вмешивать, но с другой стороны там особого умения писать код не требуется, достаточно вставить модуль с функцией RegExpExtract если верить статье здесь https://www.planetaexcel.ru/techniques/7/4844/, а дальше работать с ней как с обычной формулой. Правда никогда в экселе регулярными выражениями не пользовался, да и вообще много-много лет назад последний раз с ними сталкивался, но научиться никогда не поздно.
Подскажите как изящно с использоваанием формул, но без VBA убрать из маски формата AУУ00012B нули перед значащими цифрами? Т.е. с помощью формулы получить AУУ12 из AУУ00012B (последний символ тоже желательно отсечь).
Все чуть усложняется тем, что маска может быть как AУУ00012B, так и AУУУ0013B (один лишний символ У иногда меняется на дополнительный ноль перед значащими цифрами чтобы общее кол-во символов в номере не менялось). Пока в голову приходят только громоздкие конструкции, отрезать последнюю букву справа, потом через REPLACE, избавиться от первых трех-четырех буквенных символов, и уже в конце работать с остатком вида 000012 переводя его в числовой формат, чтобы избавиться от незначащих нулей.
Добрый день. Работу выполнил doober. Все очень быстро и качественно. С учетом изменения изначального ТЗ в сторону его усложнения размер оплаты по инициативе заказчика (моей) пересмотрели в сторону увеличения . Уровень у кода doober существенно превышает мои скромные умения в VBA, что мотивирует подтянуть свои знания, для того чтобы можно было хотя бы поддержать и минимально поправить код при необходимости. Даже и не знаю радоваться что настолько продвинутый человек решил мой вопрос, или печалиться (шутка конечно )
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
Задача сделана. Все оказалось сложнее чем выглядело на первый взгляд, поэтому тестирование затянулось. doober огромный респект за скорость отклика на дополнительные хотелки и качество написанного кода.
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
Раздробить текстовый файл в формате 1С на несколько файлов, Раздробить текстовый файл в формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету
Надо раздробить текстовый файл в стандартном формате 1С (выписка по нескольким счетам) на несколько файлов, в каждом из которых будет информация по одному счету. Пояснения к задаче дам в личке исполнителю. Пример того что должно получиться (и входной файл и то что на выходе) есть. Надо по понятным правилам искать в общем файле куски, относящиеся к конкретным счетам и копировать их в отдельные файлы, добавляя в начале стандартный заголовок. В качестве решения хочу увидеть файл с кнопкой импортировать, и двумя ячейками, где указаны путь откуда забирать исходный файл в txt и куда сохранять результирующие файлы в txt. Поддержать и подправить при необходимости уже написаный код я смогу, но прошу для удобства тестирования сделать и сохранять промежуточный эксель, где на отдельных листах будут те данные что после сохранения станут результирующими txt файлами