Извлечение чисел из текста в Excel & VBA (Серия VBA 35)

Поделиться
HTML-код
  • Опубликовано: 4 окт 2024
  • Привет! В этом видео мы напишем пользовательскую функцию VBA для извлечения чисел из текстовых строк, например: из “Test 123 v1” будем получать “123_1”.
    Это видео отлично подходит также и для того, чтобы потренировать свои навыки работы в VBA, так как поставленная в нём задача имеет очень частный характер.
    В решении понадобится использовать циклы For … Next, конструкции If, Else, End If, а также функции Len и Mid в VBA. Всё это мы обсудим и разберем в сегодняшнем видео.
    Приятного просмотра! 😊
    Хочешь поддержать мой канал? Это можно сделать с помощью функции «Спонсорство»:
    / @bilyalkhassenov

Комментарии • 38

  • @АнтонФилиппов-ч4т
    @АнтонФилиппов-ч4т 3 года назад +6

    Офигенный урок и очень полезный для многих людей. Спасибо большое.

    • @АнтонФилиппов-ч4т
      @АнтонФилиппов-ч4т 3 года назад +1

      Уважаемый Bill K., как бы Вы решили такую задачу. Предположим есть папка с файлами эксель:
      Заказ 1.xlsx
      Заказ 2.xlsx
      В эту папку постоянно копируются новые заказы, заказ 3, заказ 4 и т.д.
      И есть другой файл эксель (реестр заказов) в который из этих файлов(из папки с заказами) вручную вносятся данные. Например в ячейках этого файла (реестра заказов) указывается "заказ 1" и вносится дополнительная информация "болт 1шт."
      Подскажите пожалуйста, как при помощи vba прописать код так, чтобы проверялась папка с заказами на предмет появления новых файлов, и если появляется новый файл, то как перенести из вновь появившегося файла данные в реестр.
      Если Вас не затруднит, объясните пожалуйста на каком-нибудь простом примере. Буду очень Вам благодарен. Думаю не только я один.

  • @krakeno86
    @krakeno86 3 года назад +3

    Спасибо за видео. Не знал, что собственную функцию можно сразу в ячейку прописывать. Это так можно избавиться на листе от кучи кнопок, запускающих мелкие обрабатывающие скрипты

  • @SamSambl4
    @SamSambl4 3 года назад +7

    Спасибо за труд!

  • @СергійСтахнюк-ъ8е
    @СергійСтахнюк-ъ8е 3 года назад +2

    Спасибо Билял! Уроки по VBA очень полезны и актуальны.

  • @Stas_Gutsal
    @Stas_Gutsal 3 года назад +5

    Ух ты круто, Билял большое спасибо за видео.

  • @Dmitrii-Zhinzhilov
    @Dmitrii-Zhinzhilov 3 года назад

    Билял, огромная благодарность! Это просто гениальная функция! VBA - мощь!

  • @Aleksandr.Bartov
    @Aleksandr.Bartov 3 года назад +2

    Хорошая подача материала.

  • @SerTur72
    @SerTur72 3 года назад +1

    Как всегда замечательный урок

  • @Toni_Viper
    @Toni_Viper 3 года назад +4

    Как всегда круто! Спасибо за урок.
    Если у вас Office365 то тоже самое можно сделать при помощи формулы.
    =ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ОБЪЕДИНИТЬ(;;ЕСЛИ(ЕЧИСЛО(--ПСТР(B3;ПОСЛЕД(ДЛСТР(B3));1));ПСТР(B3;ПОСЛЕД(ДЛСТР(B3));1);" ")));" ";"_")
    Логика у нее точно такая же, только я все текстовые значения заменяю на "пробел", затем при помощи функции СЖПРОБЕЛЫ() оставляю пробелы между цифрами, а при помощи ПОДСТАВИТЬ() меняю пробел на "_"

    • @metercoolov
      @metercoolov 3 года назад

      Что за функция обьединить ?

    • @sadsexual
      @sadsexual 7 месяцев назад

      Вы сэкономили мне несколько дней моей жизни ахах

  • @Евгений-10.11
    @Евгений-10.11 3 года назад +1

    Билял, приветствую! Терпеливо я ждал возвращение уроков по VBA)) Дождался!!! Спасибо, очень вовремя и кстати! Урок замечательный, как и всегда. Кроме того, в комплексе с решением задачи в Excel! Спасибо! Радуй подписчиков новыми темами VBA, по возможности - очень актуально!!!👍

  • @ptnpnh2992
    @ptnpnh2992 Год назад +1

    Чел круто и урок и ава тоже😁

  • @ПетрОкладников-ш2б
    @ПетрОкладников-ш2б 3 года назад +4

    Для подобных задач (разбор буквенно-числовой каши) подходит еще использование регулярных выражений RegExp, для осуществления ранней привязки (отображения всех свойств и методов) необходимо подключить к проекту VBA ссылку на библиотеку «Microsoft VBScript Regular Expression»

  • @СергійЧалий-ч8и
    @СергійЧалий-ч8и 6 месяцев назад

    круто!

  • @autodeletant270
    @autodeletant270 3 года назад

    Классный урок!!! не знал что так можно)

  • @alekseivagin5204
    @alekseivagin5204 3 года назад +1

    Супер!

  • @НатальяШульгина-я6к

    Спасибо большое!!! У меня получилось!

  • @TheDar642
    @TheDar642 3 года назад

    круто.. то что надо

  • @ИИванов-ь6с
    @ИИванов-ь6с 3 года назад +2

    Спасибо тебе за твой труд. Скажи пожта, как ты вставляешь графику (стрелки) в свое видео?

  • @ИванБудько-д8х
    @ИванБудько-д8х 3 года назад +3

    Спасибо) много полезного для себя извлек. Хотелось бы узнать будет ли видео по формам VBA?

    • @BilyalKhassenov
      @BilyalKhassenov  3 года назад +2

      Здравствуйте! Рад, что видео Вам понравилось! 😊
      По поводу пользовательских форм: на самом деле уже есть целый плейлист, посвященный тематике пользовательских форм VBA. Вот ссылка: ruclips.net/video/y93n1WtaBJs/видео.html
      Этот курс, правда, еще не полностью завершен, но в нём раскрыто уже большое количество тем.
      С уважением,
      Билял

  • @ЕвгенийЛапшин-з1д
    @ЕвгенийЛапшин-з1д 3 года назад +1

    Пушшшка))))

  • @self_developer5537
    @self_developer5537 3 года назад +2

    Очень понятно и доступно, спасибо большое за такие видео, Билял!
    Можешь подсказать еще какие-нибудь ресурсы (можно на английском), кроме твоего канала, где можно посмотреть доп. теорию или (что важнее) порешать какие-нибудь задачки на VBA? Посмотрел все твои видео, прорешал задания, но все еще не уверен, насколько этого достаточно для того, чтобы заявлять в резюме, что я знаю VBA (в общем, я боюсь с треском провалить какое-нибудь техническое собеседование по этой теме:) )

    • @self_developer5537
      @self_developer5537 3 года назад +1

      @@vladimirvladimirchuk7877 будущий аналитик, по крайней мере надеюсь им стать)

  • @alvathewanderer9663
    @alvathewanderer9663 Год назад

    Добрый день. Отличный код. Но не понятно почему-то числа выделяются без разделительного знака, несколько раз проверил код.

  • @Svetkaumka
    @Svetkaumka 3 года назад

    Здравствуйте👋👋👋
    А есть ди функция, которая переведёт значение ячейки в слова. Например: 43 руб 05 коп - сорок три рубля пять копеек ?

  • @tatianarodionova9472
    @tatianarodionova9472 3 года назад

    Добрый день! А можно ли числа в тексте разделять не в одной ячейке через "_", а на несколько рядом стоящих ячеек? Заранее благодарю за ответ.

  • @Curtisrull
    @Curtisrull 2 года назад

    Подскажите, пожалуйста. Вроде как один в один скопировал код, и мне пишет Compile error Variable not defined, выделяя желтым самую первую строку. В упор не вижу что не так, все переписал как тут

  • @bananamastersup
    @bananamastersup 3 года назад

    Можно выложить файл на гугл драйв для скачки?

  • @ownerkz4901
    @ownerkz4901 2 года назад

    а это че за программа который вы код писали

  • @АлексейСоков-ь8и
    @АлексейСоков-ь8и 3 года назад +1

    2021

  • @SerTur72
    @SerTur72 3 года назад

    К сожалению с числами с плавающей запятой это не работает

  • @Midavok
    @Midavok 3 года назад

    Как будут обрабатываться отрицательные числа?
    Как будут обрабатываться числа с дробной частью, разделенных точкой или запятой?
    Как будут обрабатываться дробные числа в экспоненциальном формате?
    Ответ на эти вопросы один: РЕЗУЛЬТАТ БУДЕТ НЕВЕРНЫМ.

    • @АлексейСоков-ь8и
      @АлексейСоков-ь8и 3 года назад +1

      Да, эти варианты функцией не предусмотрены. Но данный видеоурок содержит в себе всю необходимую информацию для того, чтобы учесть эти варианты самостоятельно. В этом нет ничего сложного: просто нужно для каждого случая (дробь, отрицательные числа и т.д.) предусмотреть дополнительные проверки через условный оператор "If" перед добавлением каждого символа в результат функции.

  • @АндрейВасильевич-й9с
    @АндрейВасильевич-й9с 3 года назад +1

    супер)