888

Excellama: Выпадающие списки и логические формулы

Добрый день!

Как-то давно мне очень сильно полюбились выпадающие списки и то, как они работают в связке с логическими (и не только) формулами.


Предлагаю посмотреть как работают некоторые формулы и инструменты Excel, а для наглядности я придумала простенький пример, на основе которого мы и познакомимся с ними.

В этом примере мы разберем несколько инструментов Excel, а именно:

- вложенные формулы;

- выпадающие списки;

- логическая формула ЕСЛИ;

- формула блока «ссылки и массивы» ВПР.


Шаг 0 – введение.

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


Шаг 1 – работа с прайсом.

Есть перечень товаров, есть закупочная цена, необходимо определить, по какой цене продаем.

Для этого в ячейке C2 ставим наценку, допустим 1,47 (увеличение цены по сравнению с ценой закупки – 47%). Ее обязательно вывести в отдельную ячейку, потому что «а вдруг кризис» и придется все цены пересчитывать, не будем же мы всю таблицу заново просчитывать. Да и на будущее - в случае, если все строчки будут производить некоторые действия (умножение, сложение, вычитание, деление) с одной единственной ячейкой, то легче ее вывести отдельно и зафиксировать. Опять же, если мы захотим изменить наценку на все товары, то нам достаточно поменять значение только в одной этой ячейке, и вся наша таблица автоматически пересчитается.


А чтобы каждый раз в формуле вручную не ссылаться на одну и ту же ячейку (C2), то ее необходимо зафиксировать. Для этого необходимо поместить курсор в строку формул после знака умножить на C2 и нажать F4. Если в формуле появилось два (!) знака $, то ячейка зафиксирована.


Первоначальная формула в ячейке D5 будет выглядеть следующим образом =C5*$C$2

С первого взгляда все хорошо. Но это не так. В полученном результате в ячейке D5 больше двух знаков после запятой. Избавляемся от концов с помощью формулы ОКРУГЛ. Это наше первое знакомство с вложенной формулой. Формула в формуле. Самый простой способ «вложить» одно в другое – скопировать полученную формулу и следовать по инструкции ниже.


В ячейке D5 в строке формул пишем =ОКРУГЛ и открываем Аргументы функции (элемент Fx).

В поле «Число» вставляем скопированную формулу без знака «=».

В поле «Число_разрядов» ставим цифру 2, так как нам надо 2 знака после запятой.


Далее за маркер автозаполнения (при наведении на активную ячейку справа внизу появляется маленький черный плюс) протягиваем формулу вниз до самого конца. Это можно сделать либо обычным протягиванием, либо щелкнув два раза левой кнопкой мыши за маркер автозаполнения.

Готово. Вы великолепны!


Шаг 2 – заполнение карточки заказа.

Начнем с выпадающего списка.

Выделяем диапазон, где хотим видеть выпадающий список (диапазон C8:C14). Переходим на вкладку Данные, группа Работа с данными, элемент Проверка данных.

Тип данных – список, источник – список товаров с листа «прайс» (диапазон B5:B16).

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


Есть два способа сделать нумерацию, но изначально в первую ячейку списка ставим цифру 1.


- щелкаем 2 раза за маркер автозаполнения и в появившемся окошке выбираем значение «Заполнить» - подходит при нумерации большого списка.


- тянем за маркер автозаполнения, параллельно зажав клавишу CTRL – может работать даже тогда, когда ячейка начинается не с 1, а с числа 824789, удобно продолжать нумерацию в середине списка.

Ура. Осталось два крупных шага (ВПР и логическая формула ЕСЛИ).


Для разгона давайте на ячейке F8 пропишем простую формулу умножения =D8*E8


Переходим к ВПР. Если по-простому, то формула «вертикальный поиск результата/вертикальный просмотр» берет ячейку со значением (товар в карточке заказа) и ищет ее в предложенном списке (в нашем случае в прайсе). После того, как формула нашла это значение в списке, она пробегает по этой строчке в прайсе и забирает оттуда нужное нам значение.


Если же говорить на языке формул, то все выглядит следующим образом:

Искомое значение - что ищем. Мы ищем блокнот (ячейка C8)

Таблица - где ищем. Ищем в прайсе. Указываем диапазон всей таблицы прайса (внимание: именно с ячейки B4 до ячейки D16).

Номер_столбца - из какого столбца указанной выше таблицы надо брать значения. В нашем случае мы хотим "притащить" финальную цену. См.картинку ниже и ставим цифру 3.

Интервальный_просмотр - 0. Ставим 0 для получения точного результата (чтобы формула нашла конкретно "Блокнот А5", а не "блакнот а 5".

Далее осталось протянуть получившуюся формулу вниз, до строки итогов.


Пара простых шагов для финального штриха. Ставим автосумму в ячейке D15 и F15. Для упрощения действия можно запомнить следующее сочетание клавиш «ALT» и «=» (горячая клавиша для автосуммы).


В ячейке D16 считаем скидку с помощью логической формулы ЕСЛИ. Примем за правило, что если заказ собран на сумму более 5 000 руб., то скидка будет 10%.

Финальным аккордом в нашей и так уже затянувшейся песни будет простая формула

=F15-(F15*F16)

Все! С официальной частью закончили.


Небольшие советы:

1. Если Вы очистите все заполняемые ячейки в карточке заказа, то у Вас в колонках с ценой и суммой появятся значения #Н/Д (нет данных), так как непонятно какое значение искать (мы же удалили все значения с товарами в колонке C). Для того чтобы эта ошибка нас не смущала, воспользуемся специально написанной для этого командой ЕСЛИОШИБКА. Достаточно просто скопировать полученную формулу, вставить формулу ЕСЛИОШИБКА и туда вложить формулу ВПР.

2. Если Вас не устраивают и вездесущие нули, то избавиться от них тоже можно (не теряя при этом формулы). Заходим Файл – Параметры – Дополнительно – Показать параметры для следующего листа – Показывать нули в ячейках, которые содержат нулевые значения. Убираем галочку с данного пункта. Теперь нули не видны, но в ячейках все равно остались формулы, и при заполнении таблицы все будет считаться как раньше.


Обращаю Ваше внимание, что моей задачей в этом посте было просто показать, как работают разные формулы Excel. Скорее всего, в мире уже есть множество написанных программ для решения таких задач (та же 1С), возможно существуют разного рода макросы на выполнение всего, что написано в посте. Я же просто делюсь своими знаниями и надеюсь, что они Вам были полезны.


Для наглядности прикрепляю ссылку , перейдя по которой можно будет скачать 2 файла – один пустой для собственной отработки навыков. Второй – мой заполненный с двумя примерами (в первом примере разбирается механизм, описанный в посте; во втором примере включена доставка по городам и небольшое упрощение в части заказа (сцепка номера и даты заказа)).


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

MS, Libreoffice & Google docs

762 поста14.9K подписчика

Правила сообщества

1. Не нарушать правила Пикабу

2. Публиковать посты соответствующие тематике сообщества

3. Проявлять уважение к пользователям

4. Не допускается публикация постов с вопросами, ответы на которые легко найти с помощью любого поискового сайта.

По интересующим вопросам можно обратиться к автору поста схожей тематики, либо к пользователям в комментариях


Важно - сообщество призвано помочь, а не постебаться над постами авторов! Помните, не все обладают 100 процентными знаниями и навыками работы с Office. Хотя вы и можете написать, что вы знали об описываемом приёме раньше, пост неинтересный и т.п. и т.д., просьба воздержаться от подобных комментариев, вместо этого предложите способ лучше, либо дополните его своей полезной информацией и вам будут благодарны пользователи.

Утверждения вроде "пост - отстой", это оскорбление автора и будет наказываться баном.

16
Автор поста оценил этот комментарий

Пост классный! Наглядно, доходчиво, полезно, а главное с примерами))

раскрыть ветку (1)
11
Автор поста оценил этот комментарий
Спасибо! Мне очень приятно :)
показать ответы
2
Автор поста оценил этот комментарий
Спасибо большое!! Очень вовремя и в тему! Как раз сейчас обрабатываю таблицу и нужны именно эти формулы!
раскрыть ветку (1)
7
Автор поста оценил этот комментарий
Ура! Рада была быть полезной :)
7
Автор поста оценил этот комментарий
Вот начальник щас прочитает пост, как ему потом доказывать, что таблички сопоставлять надо неделю, а не 15 минут
раскрыть ветку (1)
4
Автор поста оценил этот комментарий
Это уже тема Вашего следующего поста)))) 😄
показать ответы
1
Автор поста оценил этот комментарий
Большое спасибо! Обязательно попробую повторить. Вы большая молодец!
раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Спасибо 😍
2
Автор поста оценил этот комментарий

А ты походу крутой чувак(чувиха). Не понимал формулу " если" , а тут понял

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Чувиха))) очень рада была помочь))))))
2
Автор поста оценил этот комментарий

@mymamalama осталось вашу таблицу переделать в динамическую(умную) таблицу и будет совсем счастье совместо с выше перечисленными доработками.

раскрыть ветку (1)
3
Автор поста оценил этот комментарий
Спасибо! В умной будут из хорошего только формулы при добавлении новых строк, ну и названия колонок приобретут названия шапки таблицы... или еще какие-то свойства у нее есть?
показать ответы
1
Автор поста оценил этот комментарий

Как можно ещё к выпадающему списку сделать так что в соседней ячейке выпал артикул

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Тут в комментах была ссылка на пост. Посмотрите) #comment_166645327
0
Автор поста оценил этот комментарий

Ох, может тут хоть кто поможет! Выручайте, братцы!
@mymamalama, @Veseliy.4el,

А может и нет. На англоязычных форумах только кучу таких вопросов нашел, но ни одного решения. Проблема такая (см. картинку). Хочу, например, раскрыть категорию Bars, но только в группе East. Но если раскрываешь Bars в East, то они автоматически раскрываются и в North. Четырежблядская ярость!111!!1! Прастити. Потратил часы пытаясь решить.

Просто если мне, например, интересны Bars в East и Cookies в North, то нет никакой возможности их отдельно раскрывать. А если в категории Cookies в каждой группе по 100 значений, то раскрыв одну, таблица расползается на тысячи строк!

Иллюстрация к комментарию
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Попробовала, действительно какой-то баг или сделали они это намеренно.

Получается, если одинаковые названия, то он их раскрывает/группирует, не привязывая к иерархии выше.


Устранить эту причину у меня не получилось, единственное, что можно сделать, это в исходной таблице вставить вспомогательную колонку и сцепить допустим East и Bars. А в сводной добавлять/убирать по необходимости...

показать ответы
1
Автор поста оценил этот комментарий

За функцию ВПР спасибо, не пользовался, но поиграюсь. Обожаю exel

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Спасибо, но более изящно и подробно это описано в посте у @Veseliy.4el, можете в группе посмотреть. Там все очень подробно и классно
0
Автор поста оценил этот комментарий
Да, напишите название, пожалуйста. Мне для инструкций на работе пригодится. А если она бесплатная, то вообще 🔥
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
@Olik12, @LyaNevada,
программа animated gif editor :)
Иллюстрация к комментарию
1
Автор поста оценил этот комментарий

"А чтобы каждый раз в формуле вручную не ссылаться на одну и ту же ячейку (C2), то ее необходимо зафиксировать."

А ещё лучше этой ячейке дать имя

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Как вариант 😉
0
Автор поста оценил этот комментарий

@mymamalama, когда уже к VBA перейдёте? :)

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Пока не научилась 🙃
показать ответы
1
Автор поста оценил этот комментарий
Всегда млел от людей, которые на ты с Экселем. Спасибо! Отличный пост
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
И Вам спасибо :))))
1
Автор поста оценил этот комментарий

Красиво?

Иллюстрация к комментарию
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Я создала монстра и весь скриншот с формулами не помещается на одной картинке... Скорее всего, это можно сделать проще.. Формулу поиска крайнего пробела я взяла из интернета, все остальное нафеячила... Это страшно.
Иллюстрация к комментарию
Иллюстрация к комментарию
показать ответы
0
Автор поста оценил этот комментарий

Как то в одной программе нужно было устанавливать значение с шагом 0,1

Причем иногда - довольно таки быстро менять на 20-30-40.

Сделал строку ввода, слева присобачил плюс с минусом, типа хочешь - нажми и значение изменится на шаг.

Попросили сделать шаг единицу - не успевают...

А то, что можно просто ввести значение - мужик был пожилой, от компов далекий, не допер...

И был очень рад, когда я ему такой способ показал.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Иногда пользователи даже не догадываются о том, что некоторые функции уже существуют)
Классно сделали! А кнопки + и - делали через vba?
показать ответы
1
Автор поста оценил этот комментарий

Угу. Вместо того, что бы быстро нажать 1-2 клавиши, надо прицелиться, нажать стрелку, выбрать из списка значение...

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Силой мысли))))))
показать ответы
1
Автор поста оценил этот комментарий
Удобно ещё количество на список посадить, не нужно клавиатуру тогда трогать.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий
Да, можно сделать :)
показать ответы
0
Автор поста оценил этот комментарий

А наоборот? Что бы мышь не трогать? Есть ли способ вызвать выпадающий список с клавиатуры? Типа F2, но что бы не редактирование ячейки, а именно список выпал?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

ALT и стрелка вниз :)

показать ответы
1
Автор поста оценил этот комментарий
С excel никогда не работал, но всегда хотел научится. Очень классно и подробно написано! Давай еще)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

:) спасибо!

1
Автор поста оценил этот комментарий
Вот спасибо. Обязательно попробую, а то я там такие конструкции воротил со вложенными логическими, что странно, что дьявола не вызвал)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Вместо дьявола, похоже, призвали меня))))))
1
Автор поста оценил этот комментарий

А если есть несколько размеров скидок: чем больше от заказ, тем больше скидка?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Вот такая формула будет

=ЕСЛИ(F15>=5000;10%;ЕСЛИ(F15>=3000;5%;ЕСЛИ(F15>=1000;3%;0)))

Обязательно надо начинать с максимальной суммы заказа. Если начнете с минимальной (если первое условие поставите F15>=1000), то у Вас скидка будет одна и та же, что при заказе на 1000, что при заказе на 5000, т.к. все эти значения будут выполнять первое условие - они будут больше 1000.


Поэтому тут правило - первое условие всегда на максимальном значении, и дальше по убыванию.

Иллюстрация к комментарию
1
Автор поста оценил этот комментарий
А вот, к примеру, моя затыка. Победить не смог. Начальник попросил сделать табличку. Десять команд, десять видов соревнований. Итоговый столбец - результат. Требование было, чтобы результат оформлялся СЛОВОМ. т.е. команда, занявшая первое место по результатам всех видов соревнований оформлялась не циферкой в крайнем правом столбце, а словом. НО! команды ведь могут занять одинаковое место по результатам. И тут и происходила дичь. Первую из одинаковых команду Эксель верно именовал, а вторую тупо пропускал. (Например 2 команды заняли второе место). А четвертую (которая заняла третье место) именовал ЧЕТВЕРТОЙ. Дело уже давно минувших дней, но вдруг кто знает? Буду благодарен.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

У меня получилось два варианта.


В первом - с помощью формулы РАНГ и ЕСЛИ. Там есть скрытые вспомогательные колонки, но сама формула работает так: изначально "присваивает места" всем значениям, если значения одинаковые - то каждому из этих одинаковых значений присваивает один и тот же ранг. Потом можно с помощью функции ЕСЛИ значение равно МАКС раздать места. Я же в таблице по какому-то мутному пути полезла, зачем-то.. Но сейчас понимаю, что все три мои скрытые вспомогательные колонки легко могла бы заменить одна :) Я как-то слишком увлеклась проработкой второго варианта))))

Формула РАНГ =РАНГ(F3;$F$3:$F$7;1)


Во втором - добавила список массива (голубым цветом). Он просто формирует список команд, занявших 1-3 места. Для первого места формула такая =ЕСЛИОШИБКА(ИНДЕКС($B$3:$B$7;НАИМЕНЬШИЙ(ЕСЛИ($B$10=$L$3:$L$7;СТРОКА($B$3:$B$7)-2;"");СТРОКА()-10));" ")

Формула помогает выцепить список по заданному критерию. Она уже весь интернет облетела, я ей как-то пользовалась для настройки матрицы 9 боксов (оценка персонала). Там тоже надо было вытаскивать списки под определенную оценку.


Если допилить, то вообще можно обойтись одним лишь блоком массива, скомбинировав оба варианта.


Вердикт: решение есть. Дальше с этими данными что угодно можно делать. Сцепить, перевернуть, разукрасить строчки в зависимости от полученного места (с помощью условного форматирования).


Надеюсь я Вам помогла :)

Иллюстрация к комментарию
показать ответы
Автор поста оценил этот комментарий
Походу я один прочитал "выпадающие сиськи...."
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
В Excel они не выпадут, там же есть формула "сцепить" 😀
1
Автор поста оценил этот комментарий

Очень доходчиво объяснили, я это и так знал, но как вы объяснить не смог бы) Многое знаю в xlsx, но вот как сделать чтоб значение в строке менялось если дата меняется, не могу сделать, формулой "ЕСЛИ" это очень сложно. Сможете подсказать?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Спасибо! 😊
У меня был пример, что если дата текущая больше даты в ячейке, то было одно значение, если меньше - другое. Там все решалось с помощью "сегодня" и "если".

А в Вашем примере какие условия?
1
DELETED
Автор поста оценил этот комментарий

Эксель очень полезная штука, если знать как пользоваться можно сохранить кучу времени и сил
Я когда пришёл на работу (тестировщик дозиметров) старики на бумаге писали результаты и потом на калькуляторе считали % отклонения, когда в экселе 1 раз настроить форму и потом просто вбивать цифры
Думаю при желании на экселе можно реализовать много чего

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Согласна с Вами! В моей практике запомнился ярко только один случай: почему-то некоторые люди 50+ делают нумерацию ячеек через прогрессию.. Почему? Зачем? :)))

показать ответы
1
Автор поста оценил этот комментарий
Вы - молодец. :)
Индекс(поискпоз()) - хоть и сложнее в понимании, но гибче в использовании, рекоммендую.
ВПР лучше делать по столбцам - не придется залазить в формулу при добавлени строк в таблицу откуда тянутся данные.
Выпадающие списки можно делать авторасширяющимися через СМЕЩ()
Объединение ячеек - зло. Это не удобно, что при создании формул, что при написании макросов.
Есть "красивый" формат для работы с суммами для него даж отдельная кнопка на основной панели есть - с тремя ноликами. Все нули будут отображаться как прочерки. Очень удобно глазу.
В комментах вроде видел совет про "умную таблицу". Когда Excel строки сам добавляет да форматы протягивает. Штука хорошая, но на действительно больших таблицах не особо удобно и делает файл тяжелее
VBA освоить не сложно. Можете начать с записи своих действий макрекодером (на панели разработчика есть кнопка записать макрос). Он запишет все ваши действия в экселе. Ты будет много ненужного. Например скрол (прокрутка) страницы, если вы её будете проматывать. Селект (выделение) ячеек. Но в целом даст начальное понимание с каким элементом какие базовые действия можно делать.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Огромное спасибо за такой развернутый комментарий!


Да, изначально я пользовалась именно связкой индекс&поискпоз. Эта связка искала даже там, где впр не отрабатывал свое прямое предназначение. И из плюсов - ей абсолютно все равно где ее написали, она будет искать заданное значение. В отличии от капризного ВПР)))

Через смещ делать выпадающие списки не пробовала, надо будет глянуть на днях.

Объединение коварное зло.. В моем примере можно было бы через формат ячеек сделать выравнивание по центру выделения. Тогда бы не было объединенных ячеек, но результат все равно выглядел бы приемлемо.

С VBA я уже начала свое знакомство.. Я еще раньше пробовала брать макросы с интернета, применять их и читать все, что написано после Sub. Так сказать метод изнутри))))

Еще раз большое спасибо! :)

показать ответы
1
Автор поста оценил этот комментарий
Подписался на Несущую Свет :)
а может кто подскажет? Нужно условное форматирование в таблице, но для каждой отдельной строки. А то в макроссах и прочих вба не силён, а результат нужен.
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
😁 смотря на каких условиях будет работать форматирование) скиньте/опишите пример)
1
Автор поста оценил этот комментарий

а вы случайно не знаете как все эти хитрые таблицы привести обратно к простому виду? Я 1С'ник и иногда встречаются заказы на внедрение автоматизированного учёта. Так вот. Первым этапом идёт загрузка с помощью внешних управляемых форм в 1С номенклатуры из табличного документа. Но для этого нужен нормальный табличный документ, а не кучи выпадающих связанных списков. Привести номенклатуру к нормальному виду занимает уйму времени. Нет ли в екселе какой-нибудь хитрой формулы чтобы все ваши гениальные доработки удалились, а номенклатура выстроилась в иерархическом порядке?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Скопировать и вставить значениями)))))
В случае с моим примером избавиться от всех формул в два счета. Если есть завязки на другие документы - можно воспользоваться кнопкой "разорвать связи". Если таблица "умная" ее можно деактивировать.

Скорее всего у Вас там все сложнее, чем в таблице из поста.

Опишите пример?
0
Автор поста оценил этот комментарий
Хоспади, у этого еще и название есть? Этож +- обычная математика и работа с функциями уровная у=sin^2(x^2)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
😃 в примере с округлением это больше похоже на работу с функциями, а вот вложить впр в еслиошибка уже вложенная формула))) вот такая незамысловатая история)))
показать ответы
0
Автор поста оценил этот комментарий

Со школы ещё, когда на информатике нам учитель показывал как в Visual Basic программировать. Потом в универе лабы делал. Так и затянуло программирование как хобби. Потом на работе пригодилось, стал изучать глубже эту тему, VB.Net освоил. Для интереса и на более тяжёлые вещества перешёл (типа C++😁). В общем, самоучка. Поэтому в VBA писать мне не было особой проблемой, основные принципы я знал. А те для меня новые моменты по работе с самим Excel'ем в макросе (с ячейками, листами и т.д.) уже гуглил по тематическим форумам.

Так что, если Вы не знакомы с программированием, Вам надо начинать с самых азов, чтобы понять основные моменты. Можно, конечно, это делать в самом VBA. Но какие книжки для этого почитать или ещё где поучить, я, увы, Вам не подскажу, сам не интересовался.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Спасибо за такой развёрнутый ответ! Надеюсь, вскоре тут появятся посты и про vba 🙃 так как тема интересная, чувствую, возможностей будет в разы больше!
показать ответы
0
Автор поста оценил этот комментарий

да, здорово. А можно ещё больше заморочиться и создать базу данных Access. А можно просто  не страдать ерундой и приобрести уже в 2020г. хотя бы базовую 1С:УТ. Начальник, поди, на тойоте катается, а сотрудники выпадающие списки в эксельках в 2020г. создают. Жесть. Это не в обиду автору. Автор молодец.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Так оно и есть)))) про базу данных на заводе никто и не слышал, скорее всего)))))
показать ответы
1
Автор поста оценил этот комментарий

Да особо ни с какой. Типа в шутку предложил Вам поднять level постов 😁

А так, просто тема Excel'я близка, так как по работе много приходилось в нём поработать. В целях автоматизации рабочего процесса. Вот там понаписал простыней в VBA, реализующий различный функционал, вплоть до работы с измерительным оборудованием. Всегда интересно познакомиться с опытом "коллег", где-то своим поделиться.

Кстати, я вот считаю себя далеко не новичком в Excel'е, но про такой способ сделать списки в ячейках, как здесь в Вашем посте, не знал. Спасибо.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я жадно хочу попробовать vba. Скажите, откуда начинали обучение?
показать ответы
1
Автор поста оценил этот комментарий

А если есть несколько размеров скидок: чем больше от заказ, тем больше скидка?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Тогда будет вложенная функция. Вкладываем "если" в "если" :)

Хотите, можем тоже пост сделать о таких вложенных формулах. Они только с первого раза такие страшные, потом свыкаешься 😁
Ну либо скиньте пример, покажу 🙃
0
Автор поста оценил этот комментарий

@mymamalama, когда уже к VBA перейдёте? :)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
А вы с какой целью интересуетесь? 🙃
показать ответы
0
Автор поста оценил этот комментарий

что из этого "вложенные формулы"? И куда они вложены?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Смотрите, в примере в шаге 1 мы сначала написали обычную формулу умножения, а потом ее вложили в формулу "округл". По сути это формула в формуле, только ее упрощённый вид.

В конце поста есть пример использования формулы ЕСЛИОШИБКА. Там формула ВПР вкладывается в формулу ЕСЛИОШИБКА. Как матрёшка, одна формула в другой :)
показать ответы
1
Автор поста оценил этот комментарий

Черт, я быстрее на чем-нибудь другом напишу и просто вставлю в таблицу :)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Да язык лесных фей явно проще этой порнографии((( но зато я теперь обладаю бесценными знаниями по поиску крайнего пробела, радость (нет)
:)
1
Автор поста оценил этот комментарий

Пост написан очень доступно, благодарю за старания)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Спасибо! :))))
1
Автор поста оценил этот комментарий
Поделитесь, пожалуйста, опытом. Вы видео сначала записали, а потом в gif перегнали? Это стандартными инструментами windows можно сделать?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я воспользовалась программой из интернета) если интересно название, скину завтра) она простая, в ней показывается раскадровка и можно удалить ненужные фрагменты
показать ответы
0
Автор поста оценил этот комментарий

нет, разные. Но всегда слитно

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Красиво?

Иллюстрация к комментарию
показать ответы
0
Автор поста оценил этот комментарий
Здравствуйте, подскажите у Вас можно получить консультацию по макросам? Ч часто пользуюсь одной таблицей, но никак не могу разобраться в исходных данных(
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Добрый день! С макросами я мало знакома, только как конечный пользователь.. Если дело в их специфике, то скорее я Вам тут не смогу помочь.. :(
по всем другим вопросам с радостью)
показать ответы
0
Автор поста оценил этот комментарий

Не подошел, он очень странно разделил

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
В пазле еще есть "слово". Оно всегда одинаковое?
показать ответы
1
Автор поста оценил этот комментарий
Можно усложнить, добавив столбец с заполняемостью тары. Типа в коробку влезет до 10 блокнотов А5 + 30 формата А6.

Эт я просто написал, т.к. вспомнил похожую задачу, когда считал допустимый вес разносортной продукции на паллете. Лайк за труды поставил :)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
За лайк спасибо :)
1
Автор поста оценил этот комментарий
Можно усложнить, добавив столбец с заполняемостью тары. Типа в коробку влезет до 10 блокнотов А5 + 30 формата А6.

Эт я просто написал, т.к. вспомнил похожую задачу, когда считал допустимый вес разносортной продукции на паллете. Лайк за труды поставил :)
раскрыть ветку (1)
1
Автор поста оценил этот комментарий
У Вас формула была завязана именно на весе продукции? Если так, то поняла Вашу мысль, хорошее дополнение)

Я вот сейчас подумала про объем... допустим в одну коробку влезет лишь две позиции "рога оленя" и "блокнот а5". Тут уже сложнее рассчитать все. Тут я пока встряла...
0
Автор поста оценил этот комментарий

А можно что-то вроде регулярок для разбиения по столбцам написать?

Просто я это распарсил питоном и вставил по столбцу, подумал может есть какие-нибудь встроенные функции

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Можно с помощью функции вытащить в одну колонку только имя/ник, в другую слово, в третью дату. Такое через функцию пстр)
правильно понимаю, что элемент "текст по столбцам" Вам не подошел?
показать ответы
0
Автор поста оценил этот комментарий

@mymamalama, может сможете подсказать и решить задачку. есть 60 чисел в столбце , среднее значение  всех чисел  пусть будет 1000. числа имеют разбег например +-5% от среднего. так вот эти 60 чисел надо распределить в таблицу 6 столбцов, 10 строк так что бы среднее значение  каждой строки было как можно ближе к среднему значению всех чисел, при этом одно и тоже число нельзя использовать дважды?!

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Задачка со звездочкой. Попробую что-нибудь сделать на днях :)
показать ответы
1
Автор поста оценил этот комментарий

Большое спасибо, а с гифками вообще огонь )

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Для меня это новый опыт :)
показать ответы
0
Автор поста оценил этот комментарий

Есть где-нибудь туториал как разбить текст на стобцы, если может быть несколько слов в столбце?

Т.е. у меня идёт путь автор(Имя Фамилия/Ник/Фамилия, Имя/ник.Имя) слово число дата

Из-за автора не получается бить на столбцы

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Пока два варианта. Первый - воспользоваться встроенной функцией "тест по столбцам". Но это если все ячейки одинаковые (ФИО ДАТА).
- воспользоваться формулой пстр в связке с какой-нибудь другой текстовой формулой (она вытаскивает нужное кол-во знаков из ячейки). Я тут явно не распишу, но если скинете файл на обменник, то постараюсь помочь :)
показать ответы
1
Автор поста оценил этот комментарий

Жаль, не увидела Вашего поста раньше. Как раз 2 недели назад ваяла таблицу, но побольше. Там и выпадающий список, и ВПР, и функция если, но с тремя условиями, и там в каждом условии формулы разные, и функция еслиошибка, чтоб н/д не было, иначе не суммируется, но потратила я на это целый день, а у Вас тут за час бы сделала)) подпишусь

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо! :)))))
0
Автор поста оценил этот комментарий
Подскажите, пожалуйста,Вы пишите: «С первого взгляда все хорошо. Но это не так. В полученном результате в ячейке D5 больше двух знаков после запятой. Избавляемся от концов с помощью формулы ОКРУГЛ...». А не проще ли в этом случае применить снижение разрядности, один знак после запятой? Спасибо за ответ
раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Снижением разрядности мы лишь визуально "округлим" число. Если мы дальше будем производить какие-либо действия с этим числом, то результат опять будет с огромным количеством знаков после запятой (в примере вроде 3 или 4 знака после запятой).

а чтобы уж точно "обрубить" все концы - лучше использовать формулу округл) не будем же мы продавать карандаши за 25,3454 руб))
показать ответы
0
Автор поста оценил этот комментарий

да, не совсем то. не зря же говорят грамотное ТЗ половина успеха XD. Совсем забыл что я могу картинку прикрепить. Вот кусок реальной таблицы. В3-14 просто нумерация. С3-14 измеренные значения которые надо распределить. С16 среднее значение, которое я использую для расчета отклонения каждого значения от среднего в процентах. я считал что комбинируя +вые и -вые значения я могу решить эту задачу в ручную XD. Так вот задача состоит в том что бы значения С3-14 записать в правую таблицу так что бы суммы или средние значения G-H-I столбов между собой имели минимальное расхождение.


раньше я думал что среднее значение G-H-I столбов будут близки к общему среднему значению то и между собой они тоже будут различаться не сильно, но первоочередная задача это именно приблизительное равенство G-H-I столбов между собой.


если уж совсем обобщить задачу. есть 12 человек и 3 лодки. в каждой лодке 4 места. надо скомбенировать жирных и тощих людей так что бы каждая лодка несла одинаковый вес.


p/s извините что путаю, надо было сразу пример выложить =)

p/s/s у меня действительно не хватает рейтинга для прикрепления картинок https   ://ibb.co/82fzBKj  3 пробела перед :

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Гляну, спасибо! Я прям разорвалась на моменте про 3 лодки))) это гениальное тз)))))) не могу прекратить улыбаться в дисплей телефона))))))))
если что, давайте дальнейшую переписку по почте вести ))))
0
Автор поста оценил этот комментарий

У меня ничего не получилось=) Я безнадежен(

в ячейке В15 стоит формула, которая проверяет заполняемость каждой коробки
Это что? в лучшем случае у меня получилось ерунда где верхняя половина таблицы 0, а нижняя 1. Как привязать ко всему этому делу значения из столбца В - вес я не понял... Можно вас попросить разобрать такой же пример с числами от 1 до 12 и раскидать их на 3 столбца?!

з.ы пост про поиск решений читал...

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

В ячейке В15 формула =C18+E18+G18.

В ячейке С18 (и остальных) формула =4-СУММ(C5:C16)


Сделала по Вашему примеру числа с 1 до 12. И раскидала их на 3 коробки.


У меня такое чувство, что я Вас не так поняла... Через обменник залила файлик, посмотрите как будет время. Если что - пишите) https://yadi.sk/i/9H8JT6lwY4favg

Иллюстрация к комментарию
показать ответы
0
DELETED
Автор поста оценил этот комментарий
Тс, есть вопрос такого плана: есть скажем 10 разных отчётов в excel, 1.2.3.4 и т.д. надо посчитать общие суммы в каждом отчёте в сумме, можно ли это сделать как то быстрее, а не отдельно открывать каждый файл, считать и переходить к другому. Все отчёты совпадают по столбцам.
можно ли такое сделать))
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

С помощью встроенной функции "консолидация". Вкладка Данные - Группа Работа с данными. Инструмент работает просто, достаточно выделять поочередно все 1-10 диапазонов в разных листах и на финале выйдет сводная таблица со всеми итогами :)

0
Автор поста оценил этот комментарий

@mymamalama, может сможете подсказать и решить задачку. есть 60 чисел в столбце , среднее значение  всех чисел  пусть будет 1000. числа имеют разбег например +-5% от среднего. так вот эти 60 чисел надо распределить в таблицу 6 столбцов, 10 строк так что бы среднее значение  каждой строки было как можно ближе к среднему значению всех чисел, при этом одно и тоже число нельзя использовать дважды?!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Еще раз попробовала по первому этапу, результат в картинке. Отклонения минимальные (1%).

По поводу инструмента "поиск решений" - можете глянуть у меня в предыдущем посте, можете в интернете.


Если по-простому:

Целевая ячейка - B15 (голубым цветом). Под каждой коробкой (например под коробкой 1 в ячейке С15) стоит формула, которая суммирует кол-во деталей в коробке и вычитает из этого 3 (необходимое кол-во). А в ячейке В15 стоит формула, которая проверяет заполняемость каждой коробки 3 (тремя) и не более деталями (она складывает ячейки C15+E15+G15).

Значению 0 - мы стремимся, чтобы в каждой коробке было точно 3 детали. Больше-меньше 3х нам не подходит. Поэтому мы и говорим, что целевая ячейка (сумма отклонений по каждой коробке) должна быть равна нулю.

Изменяя ячейки - выделяем 3 (три) диапазона кол-ва деталей в коробках.

Ограничения

- количество в каждой коробке должно быть целым числом и больше или равно 0.

- все данные по колонке I (там, где стоит формула =1-(C5+E5+G5)) должны быть равны 0. По сути мы этим ограничением говорим, что каждая деталь должна быть использована 1 и не более/не менее раз.


Продолжить можно и дальше, мне было важно отработать сам механизм. :)

Иллюстрация к комментарию
Иллюстрация к комментарию
показать ответы
0
Автор поста оценил этот комментарий

@mymamalama, может сможете подсказать и решить задачку. есть 60 чисел в столбце , среднее значение  всех чисел  пусть будет 1000. числа имеют разбег например +-5% от среднего. так вот эти 60 чисел надо распределить в таблицу 6 столбцов, 10 строк так что бы среднее значение  каждой строки было как можно ближе к среднему значению всех чисел, при этом одно и тоже число нельзя использовать дважды?!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

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


В моем примере есть вес от 100 до 108. И есть три коробки. В каждую коробку должно помещаться максимум 3 детали. Деталь можно использовать только один раз.


В целом отработало нормально, но! Когда я стала допиливать сцепку со средним значением, чтобы отклонение по сумме веса в каждой коробке было от 0 до 5% от среднего значения по всем трем коробкам, тут случился барабум и инструмент не отработал должным образом..


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

Иллюстрация к комментарию
1
Автор поста оценил этот комментарий

У aggregate есть опция игнорировать SUBTOTAL. Очень удобно когда у вас есть категории, по которым надо подбивать промежуточные итоги на заранее неизвестное кол-во строк, будут ли эти категории или нет (иначе можно бы и просуммировать и на 2 разделить).

А еще aggregate может игнорировать скрытые ячейки и ошибочные значения. Опять же опционально. Скрыл строку- и она из суммы выпала.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Спасибо большое!!!! Я обязательно попробую))
1
Автор поста оценил этот комментарий

еще вам совет на будущее: все формулы где может быть (в теории) ошибка дополнять =IFERROR и обработчиком.  Особенно ВПР。 


еще рекомендую обратить внимание на формулы SUBTOTAL и AGGREGATE . Очень интересный функционал для прайс-листов и инвойсов. Рекомендую перейти на них с простого =SUM.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Про еслиошибка я внизу в посте написала) действительно удобная штука)))

Промежуточными итогами в такой простой таблице не пользуюсь. Вы часто ее используете? В каких моментах?
Про формулу агрегатора не слышала, загуглю. Спасибо)
показать ответы
0
Автор поста оценил этот комментарий

Тогда такой вопрос: что лучше взять в качестве справочника по Экселю, если возникающие задачи непредсказуемы ни по возникновению, ни по типу?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Я училась по поисковой строке яндекса)))
в целом советовали книгу Джона Уокенбаха. Там много инфы, от простого к сложному. Я как раз планирую по ней vba начать изучать)
показать ответы
1
Автор поста оценил этот комментарий

И я так делаю: в одной ячейке пишу, например, 100, в следующей 101, потом выделяю обе и за уголок растаскиваю. Получается арифметическая прогрессия от 100 с шагом 1.

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

Инструмент классный, но не для такого применения...