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

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

КОМЕНТАРІ • 38

  • @user-ye1wk3ze9m
    @user-ye1wk3ze9m 3 роки тому +6

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

    • @user-ye1wk3ze9m
      @user-ye1wk3ze9m 3 роки тому +1

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

  • @user-po3zj6fl3u
    @user-po3zj6fl3u 3 роки тому +2

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

  • @SamSambl4
    @SamSambl4 3 роки тому +7

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

  • @krakeno86
    @krakeno86 3 роки тому +2

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

  • @user-bm8yq2hh6h
    @user-bm8yq2hh6h 3 роки тому +1

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

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

    • @sadsexty
      @sadsexty 4 місяці тому

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

  • @alekseivagin5204
    @alekseivagin5204 3 роки тому +1

    Супер!

  • @autodeletant270
    @autodeletant270 3 роки тому

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

  • @user-jw9fx1xk5s
    @user-jw9fx1xk5s 3 роки тому +4

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

  • @user-pv7qh5tj7u
    @user-pv7qh5tj7u 3 роки тому

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

  • @user-sc6wz7ni9v
    @user-sc6wz7ni9v 3 роки тому +1

    супер)

  • @TheDar642
    @TheDar642 3 роки тому

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

  • @user-jk6ui5bb2y
    @user-jk6ui5bb2y 4 місяці тому

    круто!

  • @user-wi6gp2dw6h
    @user-wi6gp2dw6h 3 роки тому +1

    Пушшшка))))

  • @ptnpnh2992
    @ptnpnh2992 Рік тому

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

  • @user-gh2ml3cf5o
    @user-gh2ml3cf5o 3 роки тому +2

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

  • @user-so6xi8rj8v
    @user-so6xi8rj8v 3 роки тому +3

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

    • @BilyalKhassenov
      @BilyalKhassenov  3 роки тому +2

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

  • @tatianarodionova9472
    @tatianarodionova9472 3 роки тому

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

  • @ownerkz4901
    @ownerkz4901 2 роки тому

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

  • @bananamastersup
    @bananamastersup 3 роки тому

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

  • @self_developer5537
    @self_developer5537 3 роки тому +2

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

    • @self_developer5537
      @self_developer5537 3 роки тому +1

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

  • @Curtisrull
    @Curtisrull 2 роки тому

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

  • @Svetkaumka
    @Svetkaumka 2 роки тому

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

  • @user-qn5by5iv7u
    @user-qn5by5iv7u 2 роки тому +1

    2021

  • @alvathewanderer9663
    @alvathewanderer9663 Рік тому

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

  • @SerTur72
    @SerTur72 3 роки тому

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

  • @Midavok
    @Midavok 3 роки тому

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

    • @user-qn5by5iv7u
      @user-qn5by5iv7u 2 роки тому

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