mrreinar

на Пикабу
поставил 1 плюс и 0 минусов
337 рейтинг 100 подписчиков 77 комментариев 7 постов 2 в горячем
-6

Специалисты по VBA имеются?

Господа, нужна помощь в одной задачке..
Есть множество папок (профили), в них лежит 2 файла, которые обрабатываются и на выходе получается hash.
Есть исходники обработки (на java), но сложность в том, что эта обработка делается только для одного профиля, и делается на андройде (apk), а нужно эти-же файлы обрабатывать уже на PC, и не по одиночке, а множество...
Задача - на VBA сделать автоматизацию этого процесса. То есть берем из столбца А цифру, которая соответствует названию папки, далее в этой папке находим 2 файла, "ахалай-махалай", и записываем получившееся в следующий столбец рядом с номером.
С меня пиво/ покрепче / на карту сумма (по договоренности).

П.С. Сам код обработки вышлю тому, кто возьмется. Там строк 20 не более.

-6

"А на вкус как кальмар"...

Уважаемые подписчики, не об Экселе, но все-же...

Искренне вам всем советую - свалить в онлайн со скоростью света..
Позвонил на одно старое место работы, которое было в районе Старой площади в г. Москва...  (кто не в Мск - там очень много всего, связанного с администрацией ВВП, правительства и прочего)
Послушал, пью неделю, слава б-у вытянул чутка бабла с работодателя (бывшего, так случилось, и, самое смешное, уже снова настоящего, так как антикризисные топы чот снова в цене).
В общем:
- прогнозируемая рецессия 4-5% (бугага)
- падение рынка контактных услуг 19г-20г -> 30% (АААААА!!!)
- прогноз восстановления -> 2022 в ЛУЧШЕМ случае.
- массовая миграция из "медиум" сегмента  в лоу-кост сегмент везде
- ВВП чот устал, мб 21 год (а это отдельный пиздец)
- рынок труда - пизда
- рынок аренды в Мск - пиздень
- глобально экономика - ну так, как бы непонятно, но "на вкус как кальмар" (гуглите анекдот)

В общем - если есть возможность - В ОНЛАЙН. СЕЙЧАС.
Миру, что мы знали, чутка пришла звезда. И эта звезда пришла навсегда, сорри, рынка потребления более не будет. Заготовки на этот случай были - сейчас юзают, но смысл их сводится к тому, что "а интернет у нас уже локальный и много места на заводах".

И все ждут ноября 2020.. ибо "грядет". Так что сейчас еще разминочка, если наступит вторая волна - вот тогда будут и пропуска из квартиры до мусоропровода и прочее.. Причем будут через день после начала, никакой раскачки, ВСЕ ОТТЕСРИРОВАНО. То есть готовятся не на сейчас, а обкатывают технологии, которые БУДУТ применять 24/7 по окончанию этой ситуации.. Еще раз - БУДУТ ПРИМЕНЯТЬ.
У меня все, пошел бухать далее, про Эксель и прочее - на следующей неделе)


П.С. Искренне надеюсь что одной идиотской мечте все-же удасться сбыться - хочу посмотреть выступление Ohio University Marching 110 в живую.. В феврале был уверен что выйдет - сейчас выставил эквалайзер как надо, сижу в наушниках, и... ну в общем гречка пока есть))

1

Не только про Эксель)

Для начала - мы с вами растем прям на дрожжах, уже 85 персональных приветов)

Ну а так как это выкладывать я не буду - думаю что и количество просмотров будет примерно равно количеству приветов) Потому - каждому из 85 - по десять штук персональных! )

В связи с "сами знаете что на улице происходит", да и по причине охладевшей любви к работе - принял стратегическое решение посидеть чутка дома... Тем более заняться есть чем.. И вот как раз для этого "заняться" на пару недель пришлось приручить одну зверушку...

Не только про Эксель) Кот, Жизненно, Психическое здоровье, Фото на тапок, Случай из жизни, И меня вылечит и тебя вылечит, Длиннопост

Весит этот "малыш" около 50кг, и 15 лет его можно было поменять на двушку в не самом плохом районе Мск. Но, ничто не вечно, и сейчас ценник менее 500р за кило живого веса.. Кто сразу не признал - это двушка на Новых Черемушках промылшенный-перепромышленный сервер, который даже в состоянии покоя гудит в свои 12 пропеллеров что-то около 40 Дцб. Так что вынес его на балкон, но так как у меня по компам only Apple и монитора дома не завалялось...

Не только про Эксель) Кот, Жизненно, Психическое здоровье, Фото на тапок, Случай из жизни, И меня вылечит и тебя вылечит, Длиннопост

...и именно по этой причине соседи из дома напротив наверняка считают меня сумасшедшим)

Еще на этом балконе побывало много прекрасных вещей, даже промышленный ламинатор (весом около сотки) с водяным охлаждением работал))))

Показать полностью 1
46

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1

Для начала - обнял, подбросил всех своих уже 56 фолловеров! Впечатлен, растроган, буду дальше для вас стараться)

И как раз один из вас @ashvud,  написал в Вологду-гдугдугду вот о такой проблеме:

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

Скажу сразу - долго не бился, на тест ушло чуть более минуты, так как пример был очень относительный - решение будет тоже относительное, но, если бы столкнулся сам, то решил бы ИЛИ регуляркой по заглавным, точнее по чередованию строчнаяЗАГЛАВНАЯ (в кодировке это разные символы, вот по ним бы и да) с последующей заменой, или скачиванием базы имен и тупо поиску по строке с заменой при нахождении вот по такой маске:

ИМЯ -> ИМЯ+Разделитель

Но правильное и полностью рабочее решение - в конце рецепта, а пока погнали полуфабрикаты готовить..

Рецепт 2. Побеждаем кривое форматирование, неправильный перенос по строкам.

Открыли табличку и смотрим:

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

Ага, у нас есть подсказка - если заполнена строка в столбце A - то это начало ФИО в столбце B. Для примера - ячейка A5 - в ней начинается новая часть ПОЛНОЙ строки.

А еще строка А5 намекает на то, что в строке B4 содержится последние символы из "кривого куска".

Что нам это дает? Да собственно решение всей проблемы)

ШАГ А.  ДОБАВЛЯЕМ столбец между существующими A и B, который будем использовать как технический:

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

В ячейку B2 вбиваем следующее:

=IF(A2<>"";"WUT";"")

Это мы проверяем - если значение в столбце А указано - ставим технический символ, а если нет - не ставим. Тем самым мы обозначаем как и окончание полной ПРАВИЛЬНОЙ строки, так и начало полной правильной строки.

Для простоты, кто не в курсе - наводим на нижний правый угол нужной ячейки (B2 в нашем случае), появляется черный крестик. На него два раза - и автозаполнение пройдет до последней заполненной строки справа или слева. (где последняя - туда и дойдет)

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных
Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

ШАГ Б. Поехали рвать вам пуканы в мой любимый текстовый редактор.Выделяем столбцы B, C, копировать, вставить в текстовый редактор.

Наша задача - удалить лишние переносы, при этом не убить текущие правильные пробелы. ОК ГУГЛ, не страшно)
Найти и заменить:

1. SPACE -> --

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

2. TAB -> (пусто, просто удалить делаем через найти и заменить)

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

3. Тыкаем вот сюда, выделяется кусок "пустоты". Выделяем его, копировать-вставить в найти.
ПУСТОТА - > (пусто, просто удалить делаем через найти и заменить)

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

4. Тыкаем в конец файла, жмем ДВАЖДЫ Enter. Получается вот так:

МАССИВ_ТЕКСТА_СЛИТНО

LUL

Выделяем LUL, жмем вверх, выделяется еще и пустая строка. Отлично, копируем получившееся (вместе с пустой строкой). Очищаем ОБЕ строки Найти / Заменить, вбиваем

WUT -> "

LUL"

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

5. LUL -> (пусто, просто удалить делаем через найти и заменить)

6. -- -> SPACE

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

Оп-па менты!

ШАГ В. Чтобы получившееся вернуть в Эксель ПОСТРОЧНО, возвращаемся в файл, и там такие применяем фильтр по строке "НОМЕР", убирая значения BLANKS.

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

Получившееся - копируем, открываем новый лист (через расширенное вставить, выбираем поле "только значения"). Вставили, теперь туда-же вставляем результаты онанизма обработки из текстового редактора...

Поваренная книга Экселиста #2 - Побеждаем кривые выгрузки, часть 1 Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных

Сохраняемся в конце уровня и просим маму принести полотенце, так как битва была жаркой))

Оставшееся слитные строки - правим руками, потому что мы уже автоматизировали более 90% работы менее чем за 2 минуты, а автоматизировать оставшиеся 10% займет уже дольше времени, чем руками. Потому не ленимся, помним - Эксель это чтобы БЫСТРО.
Ну а точнее - это можно поправить в самой обработке, используя шаги 1-6, просто обработки я не вижу, но автоматизировать на 100% заняло бы минуты 2-3.

Ну, собственно, вот как-то так)

Отдельная просьба для любителей VBA и поблястать своими знаниями из школьной программы информатики - решить эту задачу за потраченные мною полторы минуты, а уже потом писать комментарии, не забыв приложить скриншоты).

Показать полностью 11
115

Поваренная книга Экселиста #0 - Пару слов об Экселе

Для начала - рад видеть, что моих любимых и обожаемых подписчиков стало 21.. Шутки про  "За 2 дня на Пикабу у меня - очко" оставлю себе))) В первую лавочку пишу для вас, ну и отдельная вам благодарочка за то, что вам это интересно.

Так как я такой же логичный, как стол-жираф-48, начну с того, с чего надо было начать изначально - а зачем, в принципе, Эксель то нужен, и что с ним можно делать (кроме Зиночка_Счет_В_Экселе_Сделает). Тут уже предвижу холивар, прям чувствую, потому сразу подкину на вентилятор.
Основные задачи в классическом понимании это НЕ ХРАНЕНИЕ данных, а их обработка. То есть, если рассматривать классическую MVC-модель - это контроллер. Потому что для представления есть бумага и принтер.

То, что мы храним в Экселе данные - ну да, нам так проще. Но по факту любая СУБД Эксель уничтожит по скорости работы непосредственно с данными. Но, чтобы что-то похожее на обработку организовать на уровне работы с СУБД - придется уже городить несколько этажей SQL запросов.

Потому данные выгружают в Эксель, а там уже и "понеслась звезда по кочкам".

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

Отсюда, как мне кажется, возникает одна такая ошибочка - Эксель это не способ сделать "правильно", это способ сделать БЫСТРО и РАБОЧЕ. 90% расчетных файлов в экселе понимает разработчик и Майкл Джексон, ситуация ровно такая же, как и с ремонтом ( "вот пусть тот криворукий исправляет пол, без пола лампочку не повесить").

Далее чуть объяснений и примеров...

В последнее время очень "модно и молодежно" вводить машинный анализ в прогнозирование возможного поведения клиента (про b2c сегмент говорим). То есть, допустим, на основе покупок клиента делать прогноз (не статистику собираем, а Вангу косплеим) совершения им следующей покупки (как даты, так и состава комплексной покупки) и о возможных similar к ней. И уже на основании этого делать какие-либо выводы и офферы разные предлагать (ну там сырный соус к покупке, ну вы поняли да?)) ).

Реализация этого в экселе занимает от часов до дня, реализация этого в CRM занимает от недель до "на третьи сутки после второго пришествия". Причем реализация на уровне CRM нифига не будет работать без прототипа, реализованного или на бумажке (в виде ТЗ) или в виде костылявых обработок в Экселе. Ведь программист, про кодера даже не будем, не обязан и не будет представлять себе вашу бизнес-логику, ему до нее как Ильичу до лампочки. Да и по поводу ТЗ крайне метко выразился мой препод в институте - то, что вы написали в ТЗ не будет работать так, как это вы написали, а будет так, как прочел (понял) разработчик. Потому мы делает что? Правильно - бьемся челом об сруб светлицы что-то невообразимо-кривое в Экселе, но при перемножении лося и порося получаем искомые 63,3%. Что и служит уже как и вашей (дядиной) прибыли, так и методом контроля разработки. То есть вы берете чистые данные, которые хранятся НЕ в Экселе, а в СУБД, и уже их вьювите и контролите.

Ну и, чтобы разбавить это "много-букофф-ниочем" - боевой пример.

Делаем простейшую экспертную систему в Экселе (без регистации и смс).

Вот таблица:

Поваренная книга Экселиста #0 - Пару слов об Экселе Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных, Субд

Найдите глазами столбец "% win". В зависимости от нее - строка перекрашивается в другой цвет, меняется шрифт, ну и чем значение больше - тем больше вероятность покупки. Цифры относительны, получены крайне простым способом - телефон в руки и обзвон разных групп клиентов. Вычитаем оттуда погрешность "на идиота" и вуаля.

Сама формула:

=VLOOKUP(I109/J109*1000;_tech!$F$2:$G$10;2;TRUE)+
IF(K109="";0;IF(K109>43689;15;VLOOKUP(DATEDIF
(K109;"12/8/19";"D");_tech!$J$2:$K$9;2;TRUE)))

А теперь понимаем как это сделать.

Конкретно этот пример - фитнес. Далее мы ищем данные. Конкретно в моем случае искалось так:

- Таблица с клиентами - CRM (оттуда выгрузка в эксель, листы 62_кк)

- СКУД - с сервера СКУД (да, в CRM она интегрирована криво + карты можно и "забыть" внести в саму CRM, потому что некогда админам) (лист "посещения_приведенные", и "пос_")

- Статистика звонков - с телефонии (потому что оттуда она тупо информативнее, и мне не интересно мнение менеджера о клиенте. Если менеджер говорил более минуты - значит клиенту интересно, просто ему предлагали не то, что ему нужно). (лист 4)

- Дополнительные покупки - CRM (лист "Этот")

- Экспертная оценка - эмпирически-добытые факты. (лист _tech)
(часть данных потер, ибо прайваси-все-дела + обработку специально взял аж с августа, с того времени их было еще версий 20)

Теперь включаем чем думать:

Клиент ходит постоянно -> его все устраивает

Клиент купил карту за сумму N -> сумма его устраивает (то есть предложи столько же или меньше, но не больше)

Клиент покупает что-либо еще -> деньги у клиента не кончились

Карта заканчивается в течение квартала -> купит сейчас, если пункты 1-3 соблюдены.

Клиент женщина 30+, на дворе август, клиент не ходит с июня -> предложить карту и детские занятия со скидкой

Клиенту не звонили с сервисными звонками в течение месяца и пункты 1-3 соблюдены -> звонить в ПЕРВУЮ очередь (не задрочен)

Клиент ходил, сейчас не ходит, возраст до 21 -> звонить и предлагать рассрочку, свалил на лето.

Каждому событию присваиваем свой вес, получаем 2 группы для обзвона. Клиенты на продление и клиенты с детьми на детские занятия.

Все просто, да? А теперь попытайтесь внедрить это в CRM за неделю) А за две? А за месяц? Да фиг выйдет.. В экселе заняло чуть больше 2х часов.

Коэфы задаем отдельно, даже цвета для выделения строк - тоже задаем через "техническую" вкладку.

Поваренная книга Экселиста #0 - Пару слов об Экселе Excel, Таблица, Полезное, На заметку, Ms Office, Длиннопост, Обработка данных, Субд

И да, это тоже можно сделать по другому. А можно и не делать, ведь зачем нужно что-то делать, когда можно просто обсудить все в комментах, неправда ли?))

Показать полностью 2
103

Поваренная книга Экселиста #1 - Преобразовываем ФИО

Привет всем, моему одному подписчику - отдельное трямс)
Подумалось - надо чуть поделиться некоторыми наработками, которые собрались в голове за последние лет эдак 20 работы с различными БД (к коим я с легкостью отношу Эксель). В связи с чем будет ажно целый ряд статеечек на тему, в первую очередь, оптимизации рабочего времени (ну в смысле сделал за 10 минут и дальше листаешь пикабушечку). Поехали с достаточно частой задачи:

РЕЦЕПТ 1:  Преобразовываем ФИО в Ф / И / О, без использования VBA и прочей нехристи.
Для начала чуть теории - большинство, наверняка, сталкивались с такой задачей - есть ФИО в одном столбце, а нужно вытянуть только имя, ну или два столбца ИМЯ и ФАМИЛИЯ. Да или даже поменять местами, задачи разные - суть одна. Теперь давайте разбираться что имеем - имеем строку с N-количеством слов, разделенных одинаковым символом " " (ну или чуть сложнее с массивом, содержащим N-количество элементов, в роли разделителя " "). Тут важно понять сам смысл - все, что имеет закономерность, подлежит автоматизации. В нашем случае закономерность будет вот такая - СЛОВО" "СЛОВО" "СЛОВО, следовательно мы ИЛИ должны "выбрать" нужное нам СЛОВО из всей строки, или чуть схитрить) Но начнем с выбора.

ВАРИАНТ 1: Средствами экселя. Определяем нахождение разделителей по длине строки.
1. Создаем отдельную страницу (на всякий случай)
2. Вставляем данные - Допустим вид будет вот такой
ID | ФИО
1  | Иванов Иван Иванович (b2)

3. Выбираем ПЕРВОЕ СЛОВО, ячейка (c2)
=TRIM(LEFT(B2;FIND(" ";B2;1)))
Что сделали - нашли первое вхождение символа " " в строку, и резанули все, что после него.

4. Выбираем ВТОРОЕ СЛОВО, ячейка (d2)
=TRIM(MID(B2;FIND(" ";B2;FIND(" ";B2;1))+1;FIND(" ";B2;FIND(" ";B2;1)+1)-FIND(" ";B2;FIND(" ";B2;1))))
Что сделали - указали Экселю на "координаты" первого и второго разделителей, скорректировали координаты (порезали длину строки на лишний символ " ").

5. Выбираем ТРЕТЬЕ СЛОВО, ячейка (e2)
=TRIM(MID(B2;FIND(" ";B2;FIND(" ";B2;1)+1)+1;LEN(B2)))
Что сделали - то же самое, что и со ВТОРЫМ СЛОВОМ, только так как нам не нужно резать по второй координате - за нее взяли длину строки.

На выходе получили вот так:

Поваренная книга Экселиста #1 - Преобразовываем ФИО Excel, Материальный дизайн, Таблица, Полезное, На заметку, Ms Office, Длиннопост

Подходит для постоянного применения и в случае, если разделитель всегда один и тот же.
Теперь для тех, кто хочет схитрить)

СПОСОБ 2: Подмена разделителя
1. Выделяем столбец с ФИО.
2. Открываем текстовый редактор (дада, Блокнот / TextEdit), вставляем туда. ОБЯЗАТЕЛЬНО переведите его в формат Plain Text/ просто текст (формат сохранения .txt) (!)
3. Находим функцию "Найти и заменить".
3.1. В поле найти введите символ " " (то есть просто поиск по одиночному пробелу).
3.2. В поле заменить вставьте символ TAB. Для этого на первой строке нажмите TAB, выделите его, cmd+c,  cmd+v (или control, у кого какая религия)

Поваренная книга Экселиста #1 - Преобразовываем ФИО Excel, Материальный дизайн, Таблица, Полезное, На заметку, Ms Office, Длиннопост

3.3. Примените, скопируйте, вставьте в Эксель... И собственно так, если не знали - встречайте, TAB - символ переноса на следующую ячейку))

Поваренная книга Экселиста #1 - Преобразовываем ФИО Excel, Материальный дизайн, Таблица, Полезное, На заметку, Ms Office, Длиннопост

Надеюсь данные способы вам потребуются) И, главное, на забывайте - работает не только на ФИО)
Понравилось? Что-то интересно? Прошу в комменты)  Ну и там лайк/ подписка / кошелек / очки / мотоцикл)

Показать полностью 3
34

Excel в стиле Material Design

Для начала - добрейшего утречка)
С одной стороны - эксель это инструмент в первую очередь для работы, и "хочу красиво" к нему не очень относиться,  а с другой... а почему бы и нет, черт подери?) Тем более все достаточно просто - нужно только желание сделать красиво и один раз потратить немного времени.
Оптимально для составления справочников/ файла с константами.
В развернутом виде:

Excel в стиле Material Design Excel, Материальный дизайн, Таблица, Полезное, На заметку, Ms Office, Длиннопост

Сделать полосу можно и через рамку поля, тут кому как удобнее.

Вложенность преследует сразу несколько целей - как и удобство отображении, так и возможность выборочного представления информации. К примеру в этом файле для того, чтобы разные сотрудники получили только свою часть информации о премировании:

Excel в стиле Material Design Excel, Материальный дизайн, Таблица, Полезное, На заметку, Ms Office, Длиннопост

Остается только "шлепнуть печать" и написать "Утверждаю"

Все сокращения нативно понятны для сотрудников, но на всякий случай есть шпаргалка:

Excel в стиле Material Design Excel, Материальный дизайн, Таблица, Полезное, На заметку, Ms Office, Длиннопост

В общем - извратиться, при желании, не только можно, но и достаточно просто.
Ну а чтобы это было и функционально - все данные из файла далее используются уже как переменные при расчетах ЗП, но это уже совсем другая история..)

Картинки мои, файл мой, циферки тоже сам рассчитывал)
Если будет интерес - покажу еще парочку применений в справочниках

Показать полностью 2
Отличная работа, все прочитано!