Пишу простую, но реальную программу. Python + Excel.

  Рет қаралды 143,309

Клуб дедов-программистов

Клуб дедов-программистов

Күн бұрын

Пікірлер
@FDM_UA
@FDM_UA 2 жыл бұрын
Спасибо автору! Описан нормальный путь создания скрипта от постановки задачи до практической реализации в конкретной области. Использование простых конструкций позволяет понять происходящее для начального уровня, кому и предназначены эти видео. Замечания в комментариях по улучшению предложенного кода расширяют кругозор. Их авторам также спасибо!
@progway8574
@progway8574 2 жыл бұрын
В очередной раз убеждаюсь, что реальные задачи намного интереснее и эффективнее. Нужно как-нибудь попробовать. Спасибо большое за видео!
@abzalbotbayev
@abzalbotbayev 2 жыл бұрын
Это вообще законно, объяснять так понятно и наглядно? )) Спасибо!
@oldcoders
@oldcoders 2 жыл бұрын
😆😆😆
@Akkaunt__Yerjan
@Akkaunt__Yerjan 2 жыл бұрын
Вы бы skillbox посмотрели как там наглядно про основы взлома показывали)).
@sergey_ra
@sergey_ra Жыл бұрын
​@@Akkaunt__Yerjan есть на ютубе?) Подскажите, если да
@sergey_ra
@sergey_ra Жыл бұрын
​​@@Akkaunt__Yerjan помню вначале нулевых изучал фак по фриинету, будучи студентом безденежным, да ещё и музыкантом, вот у меня к пела голова😂 Научился инет добывать, да ещё и не обворовывая людей при этом :)) Данные для авторизации тырил конечно, проникая в компы через гостевой доступ для авторизации. И оказалось, что у прова мультилогины были у всех😅 РОЛ вроде это был😂
@daniilr7368
@daniilr7368 2 ай бұрын
Законно-ли это?! - Незаконно это нихрена!)
@sergiimatiavin3573
@sergiimatiavin3573 2 жыл бұрын
У Excel для решения подобной задачи без программирования есть собственный мощный инструмент - сводная таблица. Но пример полезный, спасибо.
@oldcoders
@oldcoders 2 жыл бұрын
👌 но у нас цель - программирование
@user-vv5hh4ci4j
@user-vv5hh4ci4j 4 ай бұрын
Как вы из Excel сводной таблицы будете выводить например не сайт? А через Python это реально. Пример, мини магазин, крохотный сайт с каталогом товаров. Продавцы забивают в Excel и данные автоматом появляются на сайте.
@МихаилЧ-д2х
@МихаилЧ-д2х 2 жыл бұрын
Нет необходимость так сортировать словарь (преобразования сортированного списка кортежей обратно в словарь) достаточно написать for key, value in sorted(subcategories_dict.items()): т.к. по сути словари это неупорядоченные последовательности. То что в последних версиях python перебор элементов словаря идёт по порядку их занесения в словарь, не гарантирует аналогичное поведение в более ранних версиях python
@oldcoders
@oldcoders 2 жыл бұрын
О, круто, спасибо!!
@eugenedukatta9355
@eugenedukatta9355 2 жыл бұрын
Меня сортировка словаря тоже слегка насторожила. Погуглил - оказывается начиная с версии Питон 3.6 словарь сохраняет порядок элементов в порядке их добавления. В более ранних версиях такого нет.
@TurboDeaz
@TurboDeaz 7 ай бұрын
@@eugenedukatta9355 с версии 3.9
@ПашаПорфирьев-з4к
@ПашаПорфирьев-з4к 2 жыл бұрын
Было бы замечательно и профессионально, после выхода комментариев, создать следующее видео, автор решит ту же задачу, но учтёт полезные комментарии, и немного усложнить задачу. К примеру что-то запишет в один файл с таким именем, а что-то в другой файл с другим расширением в другом виде. Методов много, хочется примеры на все методы. Т.е. к примеру, четыре видео, и в них раскрыты все методы работы со строками на простой реальной программе! Это лучший канал для самообучения! В остальных видео много просто примеров, а здесь реальные программы! Спасибо за видео! Успехов каналу и ведущему! Жду новые видео по всем разделам Python, что бы можно было освоить их и вырасти от джуна до мидла!
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо! Я тоже думаю о том, чтобы изменить программы с учётом советов, данных в комментариях, и записать видео об этом .
@kostashvetsov9258
@kostashvetsov9258 2 жыл бұрын
@@oldcoders 🤝🤝🤝
@Otgonbayarin
@Otgonbayarin 2 жыл бұрын
Можно усовершенствовать программу, если добавить файл базы данных MySQL и в него писать необходимые значения и сохранять, переносить таким образом вместо файла ini. Ну и потом написать графический интерфейс, можно на Kivy для мультиплатформенности.
@oldcoders
@oldcoders 2 жыл бұрын
Дело в том что мне такой вариант совершенно не нужен. Ни графический интерфейс ни БД. У меня этот скрипт встроится в мое большое веб-приложение. И я там использую ini файлы чтобы не хардкодить, не записывать в код то, что может меняться в зависимости от разных ситуаций. Чтобы с приходом нового сезона например не переписывать основной код приложения. Просто обновил ini файл, изменил если надо руками, добавил что надо - и готово. Приложение работает с новым сезоном . Без залезания в код.
@abracadabra5491
@abracadabra5491 Жыл бұрын
@@oldcoders а почему ini файлы, а не тот же json?
@axel-cjuh5426
@axel-cjuh5426 Жыл бұрын
Объяснение, подача, реальные задачи, вы просто популяризатор программирования!
@vasilejosu3431
@vasilejosu3431 11 ай бұрын
Огромное спасибо! На работе часто используют Excel, и Python может очень помочь. Было бы ещё круче в конце видео записать данные в новый xlsx файл через цикл.
@НеважноКто-ы5й
@НеважноКто-ы5й 2 жыл бұрын
Спасибо большое, мне как новичку и самоучке, тяжело найти наглядный пример. А тут прям то что нужно! Понимаю что возможно не оптимальное решение, но сам процесс поиска ответов, очень помог мне. Ещё раз спасибо, для меня очень полезная информация! Судя по коментариям и я дед)
@i.e.2650
@i.e.2650 2 жыл бұрын
Спасибо за клевую практику и прикладное применение всех этих циклов, словарей и джоинов!!!!
@arudskyy
@arudskyy 2 жыл бұрын
Я также ловлю кайф от работы с python. Был тоже опыт работы с Excel: однажды получилась очень удачный и стройный скрипт - на штатный разработчик Excel/VB начал у меня выяснять где же основной модуль реализации и не поверил, что этот скрипт и был всей рабочей программой
@nikprilutskiy7064
@nikprilutskiy7064 2 жыл бұрын
Привет! Спасибо за видео! По поводу наполнения словаря подкину еще один вариант. Можно воспользоваться методом get(), что бы избежать конструкции if-else: subcategories_dict[subcategory] = subcategories_dict.get(subcategory, [ ]) + [sku] т.е. перед тем как записать значение ключа мы проверяем что у нас там уже есть по этому ключу через get(), если ничего нет то применяется второй аргумент у get() что положить туда, если ничего не нашлось. В случае, если найдется, то мы к списку просто прибавим еще одно значение.
@oldcoders
@oldcoders 2 жыл бұрын
Спасибо!! Возьму на заметку!
@yawneed
@yawneed 2 жыл бұрын
Для этого есть defaultdict чтобы такие кастыли не писать
@АнтонМакаренко-д1п
@АнтонМакаренко-д1п Жыл бұрын
Спасибо за ответ. Когда я писал код попримеру в else выдавало ошибку, sku было стрингом, что не позволяло добавлять в него через аппенд. Твоё решение все исправило!
@QWERTY-om5fg
@QWERTY-om5fg Жыл бұрын
Дед, ты лучший! Создаешь топовый контент! Спасибо!
@ВладимирМерк-й2я
@ВладимирМерк-й2я 2 жыл бұрын
привет. Здорово, что показываешь реальные задачи с реальными алгоритмами) Продолжай в том же духе). По коду хотелось бы добавить, что можно избавиться от конструкции if-else стандартным методом dict.setdefault(key, list()).append(value) - т.е. если значение ключа есть, то он будет добавлен в список, а если такого ключа нету, тогда будет создан такой ключ в словаре и в него уже добавлен value. Надеюсь понятно написал))
@oldcoders
@oldcoders 2 жыл бұрын
О, круто! Спасибо большое!!
@a.d.8390
@a.d.8390 2 жыл бұрын
@@oldcoders ещё удобно использовать defaultdict() стандартного модуля collections. Особенно если нужно получить вложенность в словаре наподобие json.
@Gr3gnov
@Gr3gnov 2 жыл бұрын
Можно просто subcategories_dict = defaultdict(list) Таким образом можно указать, что в словаре в качестве значений будут листы. И можно смело делать subcategories_dict['любой ключ'].append(sku)
@oldcoders
@oldcoders 2 жыл бұрын
Класс!
@КузяИванов-е6ч
@КузяИванов-е6ч Жыл бұрын
У меня ест многолетний опыт анализа данных в Excel. И эту задачу в Excel можно выполнить примерно за полторы минуты. Может 3 минуты. Загружаем всю таблицу в модель данных (Power Pivot). Создаём одну меру на DAX CONCATENATE. После чего выводу ее в сводную таблицу. Все. Выглядит гораздо быстрее чем способ на видео. А касаемо программирования... Я только в прошлом месяце начал учить Python для анализа данных. Знаю совсем немного. Но я бы в данном случае использовал бы Pandas. Подключился к таблице с переводом ее в DataFrame. Оставил бы только две нужные колонки. После чего загуглил (или чатгпт) как в Пандасе делать конкатинацию, так как такого ещё не учил. Мне кажется это будет проще и быстрее чем выщитывать номера колонок. А вдруг в следующей выгрузке добавиться колонка с новой информацией? Тогда номер колонки измениться и весь алгоритм пойдет лесом. А если привязаться к названию, то куда бы колонка не переехала, то ничего не поломается. Хотя может вмешаться человеческий фактор и измениться название колонки в таблице, но предусмотреть все невозможно.
@e.m.3378
@e.m.3378 7 ай бұрын
А какая библиотека для вывода в эксель из питона?
@Abramov_Andrey
@Abramov_Andrey Жыл бұрын
Супер! Если еще будут примеры работы питона с экселем, по возможности, пжт, выкладывайте. Очень интересно) Спасибо!
@oldcoders
@oldcoders Жыл бұрын
👌 Есть еще одно видео на канале у меня, посмотрите, pandas + excel
@КириллМеха
@КириллМеха 2 жыл бұрын
Спасибо! Хороший пример. Решал недавно задачу с курса по работе с файлами, тут практически то же самое)
@RiantHoff
@RiantHoff 2 жыл бұрын
Словарь по итогу отсортирован по ключу, как строке (1.10, 1.11 идут впереди 1.2), а нужно как по числу. В программе не хватает вот этого последнего штришка. :)
@oldcoders
@oldcoders 2 жыл бұрын
Просто мне не нужно было это. Это задача не учебная а реальная. Такой сортировки более чем достаточно, времени тратить на ненужную «досортировку» - смысла нет. И видео усложнять - тем более.
@ilyakarimov7198
@ilyakarimov7198 Күн бұрын
Какой-же вы крутой!!! Давно уже был подписан, заблокировали ютуб, подписка осталась, вот сейчас нашел vpn нормальный и снова с удовольствием буду продолжать учится, за все время подписки я на месте не стоял, понемногу усваивал python, подтягивал english и набор текса вслепую... не скажу что мои результаты суперские, но однозначно во всем стало лучше!!! Спасибо вам, что снимаете подобные видео!!! Успехов!!!
@ТатьянаДанилова-д8н
@ТатьянаДанилова-д8н 2 жыл бұрын
Видео еще не смотрела, думаю, там все как всегда очень хорошо, но елочка на батарее очень милая, спасибо за настроение ☺️🧡
@oldcoders
@oldcoders 2 жыл бұрын
☺️🎄
@ExcelStore
@ExcelStore Жыл бұрын
Материал изложен в доступной для понимания форме. Спасибо.
@GlExcel
@GlExcel Жыл бұрын
в 8:42 - чтобы посчитать кол-во столбцов - достаточно их выделить и посмотреть на "подсказку" которая будет появляться правее курсора. Подсказка вида: 1048576R x 12C
@no101vmv
@no101vmv 2 жыл бұрын
1. if else обычно стараются сократить. Я бы сделал "в случае если в словаре нет ключа" - создад запись с ключем где значение будет пустой массив. А потом аппендить туда значения без елсе. Мне так комфортнее) Не знаю кому как. Ну и еще одно замечание. А самое главное замечание кеоторое мне бросилось в глаза - сортировка не верная. Потому что саб категория должна сортироваться 1.1, 1.2, 1.3, ...., 1.10 а не 1.1, 1.10, 1.2. Для этого когда складываем в словарь можно сразу сделать category_dic и subcategory_dic и во втором писать только второе число подкатегории. И сортировать его как число а не как строку. В целом такая структура будет удобнее для дальнейшего использования.
@maths781
@maths781 2 жыл бұрын
Спасибо большое за ролик. Интересно слушать взрослых программистов.
@Максим-т5ш8и
@Максим-т5ш8и 2 жыл бұрын
Тоже делал подобную штуку для работы. Я это назвал прокинутым ВПР. Моя первая полезная программа))😊
@Juvelir97
@Juvelir97 2 жыл бұрын
Очень полезно и в отличном темпе для начинающе-продолжающих! Спасибо! Подписка однозначно
@IvanIvanov-rp6og
@IvanIvanov-rp6og 2 жыл бұрын
Можно вместо списка для артикулов использовать множество, тогда в строке артикулов не будет повторений dict.setdefault(key, set()).add(value) А при выводе использовать f-строку вместо строки с "+" и вставить sorted() в join, потому что множество выдает свои элементы в случайном порядке string_values = ', '.join(sorted(value)) string_to_write = f'{key} = {string_values} '
@oldcoders
@oldcoders 2 жыл бұрын
👍👍 спасибо
@S_putnik
@S_putnik 2 жыл бұрын
А если через метод get?
@IvanIvanov-rp6og
@IvanIvanov-rp6og 2 жыл бұрын
@@S_putnik Через метод get мне нравится больше
@nuklotron7465
@nuklotron7465 Жыл бұрын
к тому же множества работают быстрее списков)
@ГерманМаслеников
@ГерманМаслеников Жыл бұрын
​@@IvanIvanov-rp6ogкак помню, если ключа нет то выводит ошибку
@MrTubeer
@MrTubeer 2 жыл бұрын
Я люблю программирование. Но дальше теории никак не двинусь и по этому получаю удовольствие от просмотра таких роликов
@oldcoders
@oldcoders 2 жыл бұрын
Поставьте себе задачу, очень простую. И решите ее. Если совсем нет задач - решайте их на codewars. Какой смысл знать теорию и не использовать ее?
@Gimli_Dwarf
@Gimli_Dwarf 2 жыл бұрын
Берешь задачу - сортировка и подготовка данных из таблицы в 10000 строк, чтобы провести расчет и вывести результаты в word. Сначала пробуете на VBA, понимаете, что это полный изврат и переписываете на linq C#.... Profit.
@edrdr
@edrdr 2 жыл бұрын
Попробуй заняться микроконтроллерами. Esp32 + micropython. Дёшево и сердито, вдруг в тебе спит гений
@no101vmv
@no101vmv 2 жыл бұрын
Теория нужна что бы практика лучше давалась. Но основное все же практика а не теория на старте карьеры особенно
@konanicopol7451
@konanicopol7451 Жыл бұрын
Офигенно, я сам финансист и начал изучать программирование. Не думал что python можно использовать в excel
@mrrappbit
@mrrappbit Жыл бұрын
Спасибо! Не пробовал работать с pprint и было интересно про чтение данных из ексель, применю в работе и автоматизирую процессы
@Bop1ezh
@Bop1ezh 2 жыл бұрын
Познавательно и круто! Спасибо за видео и разъяснения. Однако, я хотел бы уточнить пару моментов. 1-й - кроме макросов в Excel есть прекрасный ETL в виде PowerQuery, где тоже самое можно сделать при помощи интерфейса и нескольких кликов мышки. 2-ой - на 17:50 видно, что сортировка не идеальна, т.к. после. п.3.1. (20 строчка в IDE) идёт п.3.10. (21 строчка в IDE), а ещё ниже п.3.2. (26 стока в IDE). Подскажите, пожалуйста, как это скорректировать? Спасибо!
@oldcoders
@oldcoders 2 жыл бұрын
Да, можете почитать в комментариях, об этом уже рассуждали. Чуть более сложную сортировку пришлось бы делать. Например отделять номер от названия подкатегории, переводить его в тип float , сортировать его и т.д. Мне это было не нужно, такой первичной сортировки было достаточно.
@johnbelyaev4031
@johnbelyaev4031 Жыл бұрын
Очень полезное видео !!!Как раз подобную программу реализую как начинающий программист, свой проект)Спасибо вам за труды. Подписка однозначно и рекомендации друзьям и знакомым!
@alvares2729
@alvares2729 2 жыл бұрын
Удачи в Новом году! Буду с нетерпением ждать новые видосы🤗
@СргійЯким
@СргійЯким Жыл бұрын
Давно шукав схоже відео для роботи з хl, шикарне пояснення )))
@karkozov
@karkozov Жыл бұрын
Я бы словарь сортировал иначе, через генератор, как кто-то предложил If/else при записи можно заменить конструкцией dict[key] = dict.get(key, []) + [value] Если нет значения по ключу, он в него записывает пустой список и конкатенирует со списком значения Либо dict.setdefault(key, []).append(value) И при создании результирующей строки использовал f-string Получилось бы что-то типа String_write = f”{key} = {‘, ‘.join(value)} ” - здесь сразу список значений распаковывается в строку с разделителями) вообще познав однажды f-строки невозможно их разлюбить
@АнтонПономарев-х3п
@АнтонПономарев-х3п 2 жыл бұрын
Хорошее видео с ходом рассуждения и реальный код👍
@vvvarvfx
@vvvarvfx Жыл бұрын
Используйте f-строки, а не конкатенацию в чистом виде,f-строки прекрасны! Спасибо за ролик!
@antonchernov9171
@antonchernov9171 6 ай бұрын
Огромное спасибо за видео! Я только начал изучать Python и мне было очень интересно увидеть практическую пользу всего, что я изучаю 😂 Еще раз благодарю 👍🏻
@Ren_ova
@Ren_ova 2 жыл бұрын
Здравствуйте! Сортировка не совсем корректная: 1.1 потом идут 1.10, 1.11, 1.12, а после 1.2, далее где еще есть два знака после точки в номере категории все таким же образом отсортировано Как сделать правильно не знаю) пусть знатоки подскажут😊
@ringilendimion
@ringilendimion 2 жыл бұрын
Как вариант - сделать номера категорий с добавлением ведущего нуля: 1.01 вместо 1.1 и т.д.
@no101vmv
@no101vmv 2 жыл бұрын
@@ringilendimion нет, нужно просто словарь словарей. И ключами делать целое число, что бы сортировать не как строки а как числа. Собственно по этому тут и проблема с сортировкой что он сортирует строки по сути. Даже если флоат то тоже не подходит. Нужно сделать двухуровневый словарь. Точнее он может быть тут любой глубины. Суть в том что бы категорию первую берем до первой точки, вторую между первой и второй точкой и так далее. И если категория оставшаяся больше не имеет дробной части то кладем сюда уже артикли
@mike7105mike
@mike7105mike 2 жыл бұрын
@@no101vmvможно воспользоваться параметром key функции sorted, и туда запихать свою функций, которая будет бить ключ словаря по пробелу, брать первый элемент и приводить его к float
@oldcoders
@oldcoders 2 жыл бұрын
Там еще засада - есть категории где две точки . Типа 3.2.6 брюки . Сложновато получится .
@no101vmv
@no101vmv 2 жыл бұрын
@@oldcoders если в одной категории товары могут быть как с одинарной вложенностью так и с двойной и более - то возможно стоит ввести понятие обьекта категория у которой есть 2 поля. Подкатегория(по сути категория), возможно название текущей категории и итемы текущей категории. Подкатегория это такой же объект категории. Но это уже выглядит как отдельный урок
@evgenyjagushinsky6695
@evgenyjagushinsky6695 Жыл бұрын
Отлично сказано!!! Раз освоил свой язык программирования, так и используй его!
@850scout
@850scout Жыл бұрын
вы такой молодец.поддерживаете своими роликами.Спасибо!
@pavelzaytsev_moscow
@pavelzaytsev_moscow Жыл бұрын
Спасибо! Отличный информативный контент. Удачи в Новом году и новых идей в развитии канала🎉
@MsRestartround
@MsRestartround 7 ай бұрын
Маркировать пункты списка бокалами пива - это отличная идея.
@oldcoders
@oldcoders 7 ай бұрын
Шалю немного :)
@Standa015
@Standa015 Жыл бұрын
Бесконечно можно смотреть на три вещи: как огонь горит, вода течёт и профессионал работает. Так что посмотрю ка ещё раз. Это было красиво, я кайфонул. А вот использование огрызка удивило :)
@oldcoders
@oldcoders Жыл бұрын
Ой я не профессионал точно, я не работаю программистом. Я любитель 😀 Мак - потрясающий комп, я ему не нарадуюсь уже много лет. И для программирования очень хорошо подходит.
@Standa015
@Standa015 Жыл бұрын
Всё программисты которых знаю я работают в основном а Linux. Сам хотел обзавестись Qubes OS, ну или Tails на ноуте использовать:)
@oldcoders
@oldcoders Жыл бұрын
Для повседневной жизни линукс менее удобен чем мак. Линукс хорош для сервера, куда свои приложения выкладывать будете. И макОС она тоже unix подобная система, считайте тот же линукс.
@AnuarAitkazin
@AnuarAitkazin 2 жыл бұрын
Ждем 3 часть про Python Django
@kornevsergey
@kornevsergey 2 жыл бұрын
Я бы так решил. Прикинул пару путей. в т.ч. и через возможности самого эксель. Посмотрел бы пару гайдов. Захотел эту задачку сделать сам. Прикинул сколько времени уйдет. Почесал репу. Написал бы тезисно ТЗ. Закинул 2-3м программистам на аутсорсе. Или даже одному кто онлайн. Взял бы оценку времени. Согласовал стоимость. Запустил бы в работу. опустим моменты некоторые.. тестанул бы сам и отдал пользователю. Получив ответ что все работает как надо, закрыл бы тиккет. ВОт, такой вот я программист))))
@Time2paw
@Time2paw Жыл бұрын
Дед, спасибо. Всё как по учебнику - если код нельзя прочитать как предложение, этот код нужно переосмыслить.
@pazakharov
@pazakharov Жыл бұрын
питон это кнчн хорошо, но главное имхо - делать быстро и результативно. И эта таска элементарно решается за 3-5 минут сугубо экселем :)
@oldcoders
@oldcoders Жыл бұрын
Еще вариант - поручить кому то сделать эту задачу. Еще эффективнее.
@BROnik
@BROnik 2 жыл бұрын
Очень круто и полезно! з.ы.: Все еще жду 3ю часть по Джанго 🙃 С Новым Годом!
@oldcoders
@oldcoders 2 жыл бұрын
Будет, будет.. собираюсь с силами .. 😀
@АлександрБобрус-г3э
@АлександрБобрус-г3э Жыл бұрын
@@oldcoders Дай Вам всевышний сил немеренно для благого дела! А мы очень ждем!!!
@СергейКондулуков-з9ч
@СергейКондулуков-з9ч 9 ай бұрын
Ну здорово. И Питон и Эксель изучаю на Степик. Сейчас посмотрю Хекслет.
@Teraed
@Teraed Жыл бұрын
Спасибо интересно. Один вопрос если у нас в исходном файле будет за двоенная строка (Артикул + Подгруппа товара), то и в финале два одинаковых артикула в подгруппе товара выйдет? Если да, то как дописать проверку, и может добавить вывод дублей в отдельный файл для правки исходника. А то ошибка в одной цифре артикула и песчаная толстовка идет как черная.
@harddi7316
@harddi7316 2 жыл бұрын
Жаль нельзя поставить сразу два, а лучше три лайка ) пробовал с ноги сесть за написание скриптов для экселя 3 месяца назад на работке, потратил прилично времени и ничего не понял, все не работало и я забросил... сейчас после бесплатных курсов на степике (парни там реально наваливают знаний, если нужна ссыль маякните) все предельно понятно в этом видео, надо потихонечку разбираться со сторонними библиотечками.
@volodink
@volodink 2 жыл бұрын
Поглядите в сторону pandas, сразу есть функционал группировок. Крутое видео, так держать!
@oldcoders
@oldcoders 2 жыл бұрын
Да, я пандас использую, но про него будет отдельное видео
@volodink
@volodink 2 жыл бұрын
@@oldcoders можно показать, как другой библиотекой модно решить туже задачу
@oldcoders
@oldcoders 2 жыл бұрын
Что-то типа того, да
@ВадимЯценко-ъ3ц
@ВадимЯценко-ъ3ц 2 жыл бұрын
Я бы воспользовался defaultdict из модуля collections тем самым объявив бы values словаря с типом list
@maxnorge
@maxnorge 2 жыл бұрын
Библиотека Pandas имеет хороший функционал по таблицам, выборкам, группировкам, вводу/выводу файлов и т.д. Спасибо за видео!
@oldcoders
@oldcoders 2 жыл бұрын
Да, я ее использую. В этом видео нет.
@andreyflash6001
@andreyflash6001 2 жыл бұрын
Тоже про Pandas подумал. Но в исходном excel файле (в названии столбцов таблицы) заметил объединённые ячейки. У меня Pandas такое читать отказывается. Есть вообще способ открыть excel файл с объединёнными ячейками через Pandas?
@AZaycev
@AZaycev 2 жыл бұрын
Всё хорошо, но маленький недочёт.. Сортировка отработала не совсем должным образом.. 1.1, 1.10.., 1.2.. Мне кажется должно было.. 1.1, 1.2, 1.10... и тд. :) Видео очень понравилось, особенно рубрика реальных задач. Большое спасибо за видео!
@oldcoders
@oldcoders 2 жыл бұрын
И вам спасибо! Дело в том что это реальная программа и я делал ее так, как нужно мне. Мне такой «неидеальной» сортировки достаточно. Если бы мне по какой то причине нужна была строгая сортировка - конечно я бы ее сделал.
@AZaycev
@AZaycev 2 жыл бұрын
@@oldcoders понял, в целом я конечно так и подумал) Я в таких ситуациях использую сортировку natsort :)
@oldcoders
@oldcoders 2 жыл бұрын
Понял. А я не люблю лишние модули импортировать. Если чтото можно сделать на ядре Питона, без потери в быстродействии и времени разработки - делаю на ядре.
@andynaz7044
@andynaz7044 Жыл бұрын
@@oldcoders это не доблесть! ядро питона специально очень ограниченное по сравнению с другими языками, именно для мотивации исполшьзовать сторонние быблиотэки )
@facetroll777
@facetroll777 5 ай бұрын
В случае когда в самой таблице тебе не нужно работать с её оформлением или картинками в таблице, openpyxl лучше не использовать. Проще загрузить таблицу через pandas в DF и работать с DF, и дальше создать уникальный список подзаголовков, и собрать словарь артикулов, где ключ подзаголовок, значение список с артикулами.
@DenisTrebushnikov
@DenisTrebushnikov Жыл бұрын
всё отлично, объяснение и пример, но: 1) это скрипт, а не программа, т.к. используется императивный подход, впрочем, это уже вопрос семантики. 2) задача не выполнена, т.к. условие "и формирование нового .xlsx файла" в рамках видео не выполнено PyCharm (Win) - ctrl+b (и тоже для выхода обратно) для pop-up подсказки - достаточно ctrl+q (второе нажатие открывает сбоку вкладку Документации) - прыгать в исходник бывает излишне; а данная комбинация также подсказывает ваши функции и классы (и даже вашу документацию, если она присутствует и создана по правилам)
@tsvjatoslav
@tsvjatoslav Жыл бұрын
Я бы делал через библиотеку pandas: import pandas as pd df = pd.read_excel("Бланк заказа.xlsx", skiprows=5, usecols=[1, 11]) df = df.dropna() df = df.groupby(df.columns[1])[df.columns[0]].apply(list).reset_index() data_dict = df.set_index(df.columns[0]).to_dict()[df.columns[1]] data_dict - уже отсортированный по ключам словарь
@etoneya930
@etoneya930 Жыл бұрын
Листал комментарии, искал кто же напишет в 7 строк на пандас
@goviktor
@goviktor 2 жыл бұрын
Очень хорошее и информативное видео. Спасибо - шикарная работа !!!!!
@erlaf8477
@erlaf8477 Жыл бұрын
01:02 в Задаче было создать новый файл с этой таблицей соответствия. Ожидал увидеть новый файл таблицы ".xlsx", а реализовано в ".ini".
@oldcoders
@oldcoders Жыл бұрын
Мне нужен был именно ini файл. В эксель сохранить ничего сложного, изменилась бы пара строчек.
@Edmond_Dantes28
@Edmond_Dantes28 7 ай бұрын
Это конечно круто и мне было интересно посмотреть, но такую вещь очень легко сделать в сводной таблице excela)))) я думаю у меня было ушло на это максимум 15 минут)) Пс. Спасибо за информацию, было очень интересно
@denatle
@denatle Жыл бұрын
Кстати о исходниках и "если хочется, то можно здесь всё сломать". Надо бы рассказать людям про virtual environment'ы. Меньше "но на моём компе работает" будем слышать)
@drevo100
@drevo100 2 жыл бұрын
Спасибо, очень интересно. Возможно ли сделать подобный видео-разбор с данными, которые бы писались в БД (желательно постгрес). Если бы еще на арендованном серваке было бы вдвойне полезно.
@oldcoders
@oldcoders 2 жыл бұрын
Я с БД только в Джанго работал, больше никак. В ролике про «Джанго часть 2» про это рассказывал. Но там не SQL, там ORM.
@Отомчтовголове
@Отомчтовголове 2 жыл бұрын
Не с 7 строки, а со строки содержащую "Артикул" + 1. С такой остановкой не важно будет как создан файл exl. Да и со столбцом тоже надо описывать поиск. Это не сложно и позволит избежать ошибки в файле с номерами строк и столбцов.
@oldcoders
@oldcoders 2 жыл бұрын
Да, можно было. Просто у меня это была одноразовая задача, в приоритете - быстрота написания кода. В последующем я ее включу в большой свой проект - там да, именно так и буду делать - парсить заголовок по названию столбца.
@Отомчтовголове
@Отомчтовголове 2 жыл бұрын
@@oldcoders Я программирую, но не на Phyton, однако, заметил, что стоит сразу писать очевидные вещи, что-бы потом не забыть или не попасться на мелочи. И моя пометка больше к начинающим программировать. За урок, конечно, спасибо.
@matt-hh5zv
@matt-hh5zv Жыл бұрын
На практике это как будет работать? Файл-скрипт надо закинуть в папку с файлом, затем запустить файл-скрипт и по окончании создастся новый файл с отсортированными данными из экселевского файла?
@oldcoders
@oldcoders Жыл бұрын
Я бы сказал так - запустить IDE, создать папку (проект), туда скопировать этот файл - скрипт, установить необходимые библиотеки, в эту же папку положить эксель файл и только тогда запустить. Геморой для не-программистов конечно. Поэтому лучше конечно все делать в виде веб-приложения. (Но сложнее делать конечно)
@maksim.mironov
@maksim.mironov 2 жыл бұрын
Спасибо, с удовольствием посмотрел, аж ручки зачесались что-либо попрограммировать..
@АлексейДуховный-ф1г
@АлексейДуховный-ф1г 2 жыл бұрын
У вас преподавательский талант
@ПетрОкладников-ш2б
@ПетрОкладников-ш2б Жыл бұрын
Пришлось перейти с vba на python в связи с задачей где vba уже не тянет: надо было обрабатывать и рассчитывать с высокой точностью по данным в excel файлах размером порядка 300-500 mb (500 тыс. строк и 150 столбцов) за 10 лет (в результате сформирован dataset на 15 gb). Столкнулся с проблемой библиотеки openpyxl - непредсказуемая обработка чисел: то например вместо исходного числа 0,3 выдает 0,2999999, или вместо -0,002 -2e-3. Пришлось оборачивать дополнительными функциями. Может есть какие-нибудь опции чтобы подавить такую обработку?
@oldcoders
@oldcoders Жыл бұрын
docs-python.ru/tutorial/operatsii-chislami-python/problemy-chisel-plavajuschej-zapjatoj/ здесь не дан ответ вам? А вообще с такими большими объемами данных вам уже лучше смотреть на Базы Данных. Они работают быстро, четко, им хоть миллионы строк нипочем. Один раз загнать ваш датасет в БД и уже с БД работать.
@tsvjatoslav
@tsvjatoslav Жыл бұрын
Используй библиотеку pandas
@elaeff6585
@elaeff6585 2 жыл бұрын
Спасибо за видео. Но, не понятно, как записать в эксель полученные данные?
@oldcoders
@oldcoders 2 жыл бұрын
В openpyxl есть прекрасный метод save класса workbook. Формируете в памяти ваш workbook и потом его записываете. Посмотрите документацию openpyxl.readthedocs.io/en/stable/tutorial.html#data-storage
@elaeff6585
@elaeff6585 Жыл бұрын
@@oldcoders так отразите это в ролике, спасибо большое.
@oldcoders
@oldcoders Жыл бұрын
Возможно, если сниму опять про Эксель . Но вообще, нельзя только повторять за видеороликами, надо уметь искать в документации нужные вам вещи. Программист не должен ждать когда выйдет видео где говорится как сделать какую то вещь. Он должен сам находить решение.
@vernnms78
@vernnms78 2 жыл бұрын
Очень познавательно! Не программирую, но с удовольствием посмотрел и вник в код.
@kalisto4281
@kalisto4281 Жыл бұрын
Большое спасибо за ролик, подскажите пожалуйста что за ide используется?
@oldcoders
@oldcoders Жыл бұрын
PyCharm Community
@УтреннийКапучино
@УтреннийКапучино 2 жыл бұрын
Мне вообще видео в тему! Как раз думал исполнить что то подобное с данными ЕХ таблицы. Спасибо!
@andredru4278
@andredru4278 Жыл бұрын
Спасибо. Очень понятные и наглядные комментарии.
@rrroll
@rrroll Жыл бұрын
хороший формат, все понятно, спасибо & так держать!
@Олф-з5ч
@Олф-з5ч 6 ай бұрын
Добрый день. Подскажите пожалуйста, а почему не pandas был выбран?
@oldcoders
@oldcoders 6 ай бұрын
Не помню уже чем я руководствовался, но вообще у меня есть видео и с pandas
@dnk1761
@dnk1761 2 жыл бұрын
Привет! Спасибо за видео! Классная идея с обучением на реальной задаче. Немного душных комментов по самому видосу - слишком много внимания берут на себя перебивки с музыкой, я бы музыку или подрезал или вообще убрал. Если добавить в начале что-то типа оглавления - так будет смотреть еще интереснее. Можно еще рассказать сколько времени заняла работа и сколько за это могут заплатить) спасибо за видос! Афтор пеши исчо
@oldcoders
@oldcoders 2 жыл бұрын
Есть же оглавление - разделы под видео. За такую программу никто платить не будет, это минимальный базовый уровень владения языком. Времени заняло минут 30. За советы спасибо!
@megustabmwf
@megustabmwf 2 жыл бұрын
Приветствую. А где можно скачать такой ексель файлик для примера?
@oldcoders
@oldcoders 2 жыл бұрын
Ой.. сделайте сами, там делов то. Или с работы любой файл возьмите. Или уж в крайнем случае погуглите, эксель файл скачать. Какой нибудь прайс лист найдется уж.
@petercrotoss1717
@petercrotoss1717 2 жыл бұрын
Подскажите,, правильно ли я понимаю Инструментарий , то есть с помощью чего это делается , а именно спарсить данные из WD , в таблицу Excel ,. всякие там цены и ТД ,то есть это пишется программа на Python и все ??
@oldcoders
@oldcoders 2 жыл бұрын
Не понял вопрос. Что такое WD?
@BozhokinMikhail
@BozhokinMikhail Жыл бұрын
А у меня с самого начала эта программа не заработала, говорит AttributeError: module 'openpyxl' has no attribute 'load' =(((
@oldcoders
@oldcoders Жыл бұрын
А почему load а не load_workbook ?
@НиколайРюмин-й6и
@НиколайРюмин-й6и 2 жыл бұрын
Добавление в список по ключу хорошо делать через dict.setdefault('key', []).append('item')
@alf_rnk
@alf_rnk 3 ай бұрын
и что потом делать с этим ini файлом? я не понимаю каких то базовых вещей... или бэкэнд не мое?! или в целом программирование
@oldcoders
@oldcoders 3 ай бұрын
ini файл был нужен лично мне, вам то он не нужен конечно. Чтобы понимать базовые вещи - изучите базовые вещи :) Основы Python достаточно быстро можно изучить хоть по книгам, хоть по бесплатным курсам, хоть в KZbin.
@alf_rnk
@alf_rnk 3 ай бұрын
@@oldcoders а в каком разделе базовых вещей говорится об ini файлах? Об их создании и для чего они нужны? Прошел до функций. Может в ООП?
@annapetmikel4356
@annapetmikel4356 Жыл бұрын
Privet. ja napisala test-code na sozdanie excel-file na primere etogo video. Ja zapustila kod, file obrazovalsja, no u menja vidaetsja sledujuschaja oshibka kogda ja pitajusj otkritj novik file: "Excel cannot open the file 'subcategories.xlsx' because the file format or file extension is not valid. Verify that the file has not been corrupted and that the file extension matches the format of the file.". Mozhet podskazatj, v chem mozhet bitj oshibka???
@oldcoders
@oldcoders Жыл бұрын
А каким методом вы создаете Эксель файл? В моем видео я создавал .ini файл, это просто текстовый файл. Если бы я захотел записывать в .xlsx файл, я бы воспользовался методом из библиотеки openpyxl - workbook.save()
@annapetmikel4356
@annapetmikel4356 Жыл бұрын
@@oldcoders spasibo, poprobuju sejchas!
@annapetmikel4356
@annapetmikel4356 Жыл бұрын
@@oldcoders It worked now!!! THANKS!!! 🙏🙏🙏❤❤❤
@fujimatosa
@fujimatosa 2 жыл бұрын
А можно приделать какой то интерфейс к этой программе, что бы пользователь нажимал кнопочки, загружал файл и на выходе получал отсортированный эксель
@oldcoders
@oldcoders 2 жыл бұрын
Можно конечно. Просто мне это не нужно. Во первых я это только для себя делаю, зачем усложнять программу графическим интерфейсом. А во вторых - этот скрипт будет частью большого веб-приложения, там пользователь конечно уже будет нажимать на кнопку «загрузить подкатегории товаров» и выбирать файл.
@Maks-c1l
@Maks-c1l 2 жыл бұрын
Здравствуйте! Спасибо за материал! Просмотрел много комментариев к выпуску и не увидел, чтобы у кого-то возникала подобная ошибка: myfile.write(string_to_write) UnicodeEncodeError: 'ascii' codec can't encode characters in position 4-11: ordinal not in range(128) Система macOS Подскажите, пожалуйста, как решить
@oldcoders
@oldcoders 2 жыл бұрын
Какая то ошибка с кодировкой, на какой то символ ругается. Вбейте в гугл эту ошибку, ответ найдется
@wirbelwind2696
@wirbelwind2696 2 жыл бұрын
Как насчёт defaulteict from functools? Чтобы не развлекаться с условием проверки наличия ключа.
@oldcoders
@oldcoders 2 жыл бұрын
Да, defaultdict многие посоветовали, спасибо!
@secretadmirateur5979
@secretadmirateur5979 Жыл бұрын
Вот бы видео на этом канале появлялись чаще!
@oldcoders
@oldcoders Жыл бұрын
На этой неделе выйдет новое. Из этой же серии «пишу реальную программу»
@Михайло-ц4ъ
@Михайло-ц4ъ Жыл бұрын
Как в VSCode на виндовс посмотреть исходник бибоиотеки?
@denatle
@denatle Жыл бұрын
Насколько я понимаю, ctrl + лкм по нужному модулю, классу, методу и тд. Вообще у хорошо-задокументированных библиотек при наведении на метод появляется справка.
@alf_rnk
@alf_rnk 3 ай бұрын
Какое количество фреймворков необходимо знать для уровня джуниор? Или нужно выбрать область питона например, создание сайтов и один фреймворк - и насиловать только эту область? просто каждый фреймворк - какие то свои команды и тд и тп. Короче с каждым днем в попытке изучить питон я все больше не понимаю как люди устраиваются на работу....
@oldcoders
@oldcoders 3 ай бұрын
Именно для ответа на ваши вопросы я снял видео: kzbin.info/www/bejne/fKCWhHuVfJWegassi=HV7ORbZ03HSfVxTb
@Andrey_Fedorov
@Andrey_Fedorov 2 жыл бұрын
Конечно сам завтра попробую, но сначала спрошу: если есть значение, совпадающее с ключом: то «ключ» in «словарь» не даст ли true в случае когда в словаре уже есть значение совпадающее с ключом, но еще нет ключа? Например : {‘123’: [‘234’, ‘765’], ‘234’: [‘….’, …..]} Мы сформировали первую строчку и собрались формировать вторую как отработает: If ‘234’ in dic: ?
@oldcoders
@oldcoders 2 жыл бұрын
Не не, поиск будет только среди ключей, не среди значений.
@Andrey_Fedorov
@Andrey_Fedorov 2 жыл бұрын
@ayubagrace9247 вот этот комментарий про стратегии вообще не понял, или он случайно под моим комментом оказался? А за ответ спасибо! Я теперь у меня на одно заблуждение меньше :)
@khnykaq8823
@khnykaq8823 2 жыл бұрын
не даст. более того, если такого ключа нет, то выкинет ошибку. чтобы этого избежать, используйте метод get для словаря
@Andrey_Fedorov
@Andrey_Fedorov 2 жыл бұрын
@@khnykaq8823 Вы немного смешали теплое с мягким. Мы говорим про “in”, он ошибку не даст. Е-но я проверил, да in не ищет в словаре элементы по значению, только по ключам. Вопрос возник, т.к. in применим к спискам и там он ищет по значениям…
@ongrustit
@ongrustit 2 жыл бұрын
А когда вы будете продолжения по Django делать ?
@oldcoders
@oldcoders 2 жыл бұрын
Буду, буду. Собираюсь с силами
@ongrustit
@ongrustit 2 жыл бұрын
@@oldcoders Спасибо вам большое за ваши труды, дай Бог вам силы продолжать снимать видео про Python и Django
@seeemn_
@seeemn_ Жыл бұрын
Здравствуйте! Будут ли ещё выпуски с задачами Codewars?
@oldcoders
@oldcoders Жыл бұрын
Будут! Идей много, но я редко выпускаю видео, поэтому все затягивается
@НикитаМитрофанов-х1и
@НикитаМитрофанов-х1и Жыл бұрын
Здравствуйте, спасибо за ролик, но остался для меня главный вопрос, а если в ячейке стоит формула, то как взять значение расчета этой формулы, без удаления формул и нарушения работы всех связей в файле Excel. Не нашел на просторах интернета ни одного объяснения.... Естественно с помощью python и openpyxl😊
@oldcoders
@oldcoders Жыл бұрын
Вам нужна сама формула? По идее не ставить data_only=True. Или не работает так?
@НикитаМитрофанов-х1и
@НикитаМитрофанов-х1и Жыл бұрын
@@oldcoders эти режимы полностью убирают формулы из файла и оставляют только значения, в будущем этот файл бесполезен, поскольку не сможет вычислять новые данные. Необходимо из ячейки где находится формула, взять только значение, не испортив саму формулу, чтобы в дальнейшем можно было работать с этим файлом, но уже с новыми данными. Если описать прям работу скрипта, то скрипт идёт по двум столбам и должен сравнивать значения, но поскольку там формулы, то скрипт сравнивает формулы, а не значения....
@paladinalik
@paladinalik 2 жыл бұрын
Переменную string_towrite я бы записал через форматирование: f"{key}={string_values} "
@АлексейАлексей-я6и8э
@АлексейАлексей-я6и8э 2 жыл бұрын
Всё же конкретно в этом случае, в экселе это делается за 2 клика через сводную таблицу в прямом смысле за 10 секунд
@maksimkolmykov296
@maksimkolmykov296 Жыл бұрын
тоже на это обратил внимание. но вот как-то профики в екселе ценятся меньше чем начинающие в программировании. я просто реально столкнулся с тем что виртуозная работа в екселе обычно не впечатляет даже начинающего программиста - они могут сделать то же самое но другим инструментом.
@АлексейАлексей-я6и8э
@АлексейАлексей-я6и8э Жыл бұрын
@@maksimkolmykov296 потому что, я могу сам решить свою задачу без обращение к питонисту, если знаю эксель) если не знаю, то и в голову не придет, что так можно и насколько это легко. Это как "ты ж врач", с таким же посылом и обращаются к программистам. Тут смотря с какой стороны судить. Я имею ввиду, со стороны решения проблемы как таковой, а не со стороны поиска работы
@oldcoders
@oldcoders Жыл бұрын
Это канал для любителей программировать на питоне. А не для любителей экселя :) Я не говорю что для того чтобы решить такую задачу вам нужен будет Питон, других вариантов нет. Я говорю - что зная питон такая задача прекрасно решается.
@volhv12
@volhv12 2 жыл бұрын
Ну очень круто) Доходчиво и увлекательно)
@ivanl7786
@ivanl7786 2 жыл бұрын
Python - это конечно здорово. Но такую задачу я бы предпочёл решать с помощью Power Query.
@oldcoders
@oldcoders 2 жыл бұрын
У нас цель - изучение и использование на практике Питона
@romanhrytsyk2796
@romanhrytsyk2796 Жыл бұрын
Скажите пожалуйста, где в коде считаются индексы(например 7.10.1)
@romanhrytsyk2796
@romanhrytsyk2796 Жыл бұрын
Они были в ячейке. И здесь сортировка чисел строчному типу данных. А как отсортировать по целому числу( часть ключа)?
@oldcoders
@oldcoders Жыл бұрын
не понял суть вопроса. "7.10.1" отдельно у меня не считаются нигде. Везде у меня подкатегория это числовая часть вместе с текстовой. То есть "7.10.1 Брюки демисезонные" Функция sorted сортирует в данном случае как строковый тип данных, да. Если хотите сортировать именно как числа - усложняется задача. Надо отделять числовую часть от текстовой. что-то делать с несколькими точками в числе и как то придумывать как правильно сортировать. сложноватый случай.
@romanhrytsyk2796
@romanhrytsyk2796 Жыл бұрын
@@oldcoders я это понял, когда внимательно посмотрел XL. чтобы это сделать, нужно резать строку. Спасибо.
@МихаилЧ-д2х
@МихаилЧ-д2х 2 жыл бұрын
В Excel подобные задачи решаются значительно быстрее, можно обычными сводными таблицами реализовать, без программирования. Можно на VBA написать аналогичный код. Можно через PQ сделать. Но возможность выполнить данную задачу на python тоже очень полезная вещь, хотелось бы в Excel иметь встроенный python
@arperamop
@arperamop 2 жыл бұрын
Да уж. В Excel на VBA эта задачка решается написанием одного цикла. И не нужно огород с Питоном городить, еще и библиотеку для Excelя качать.. А то ведь можно и на СИ и на Фортране это написать. Да на всем, где есть операторы цикла и условного перехода. Хорошо, что автор не на ассемблере кодит :)))
@oldcoders
@oldcoders 2 жыл бұрын
Если я программист на Python и мне надо решить задачу с Экселем. Вы предлагаете мне взять учебник по VBA и изучить как ее решить на VBA? 😁
@arperamop
@arperamop 2 жыл бұрын
@@oldcoders ,дело в том, что для написания в Экселе на VBA в отличие от Питона, не нужен учебник. Там тебе и встроенная среда разработки, и запись макросов для образцов как кодить, и встроенная справка с примерами. А написание цикла для перебора массива, это основа программирования, одинаковая в любом языке.
@oldcoders
@oldcoders 2 жыл бұрын
Я знаю, ничего против VBA не имею. Я же не призываю всем на свете решать Эксель задачи Питоном и только им. Но Python-программистам сам бог велел.
@АлександрП-э9м
@АлександрП-э9м Жыл бұрын
Написал аналогичную программку, но обработку моих 2000 сток выполняет 26 минут. Куда копать?
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
요즘유행 찍는법
0:34
오마이비키 OMV
Рет қаралды 12 МЛН
«Жат бауыр» телехикаясы І 30 - бөлім | Соңғы бөлім
52:59
Qazaqstan TV / Қазақстан Ұлттық Арнасы
Рет қаралды 340 М.
Thank you mommy 😊💝 #shorts
0:24
5-Minute Crafts HOUSE
Рет қаралды 33 МЛН
Пишу реальную программу. Парсинг текстового файла. Python + Pandas + Excel.
23:57
Понять Django. Пишем "Hello world". Объясняю просто и с картинками.
25:49
Клуб дедов-программистов
Рет қаралды 192 М.
Ваше первое веб-приложение. Каким оно должно быть.
19:49
Клуб дедов-программистов
Рет қаралды 10 М.
Уроки Python / Работа с файлами Excel считываем данные и формулы
12:45
Изучаем мир ИТ / Олег Шпагин / Программирование
Рет қаралды 68 М.
요즘유행 찍는법
0:34
오마이비키 OMV
Рет қаралды 12 МЛН