Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Установить минимальное значение по двум критериям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Установить минимальное значение по двум критериям (Формулы/Formulas)
Установить минимальное значение по двум критериям
messir Дата: Пятница, 21.06.2019, 14:13 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Ребят, подсобите пожалуйста, а то уже столько различных вариаций перебрал, и по-видимому я что-то делаю не так.
В общем задача следующая:
Определить минимальное время для каждого сотрудника по каждому дню недели и проставить это значение в каждую уникальную строчку.
В таблице день недели рассчитывается формулой.
Решение нужно на уровне формулы, так как использование шаблона невозможна по тех. причинам, а описывать рядовым пользованием функцию =ВПР и создание сводных таблиц крайне затруднительно, поэтому необходима универсальная формула, которую бы каждый вставил в ячейку и протянул на всю таблицу.
Пробовал и =МИН и =ДМИН и другие функции. Через =ВПР работает, но, как писал выше, описать это в мануале для рядовых пользователей невозможно.
=АГРЕГАТ работает, но для одной ячейки. Если протягивать на всю таблицу (~50-100 тыс строк), Excel уходит в астрал.

Так же прошу помочь с оптимизацией формулы соответствия в столбце "Подъезд". Она крайне примитивна - знаю, но там задача плясать от соседнего столбца слева от формулы.
К сообщению приложен файл: 5617124.xlsx (10.0 Kb)


Сообщение отредактировал messir - Пятница, 21.06.2019, 14:13
 
Ответить
СообщениеРебят, подсобите пожалуйста, а то уже столько различных вариаций перебрал, и по-видимому я что-то делаю не так.
В общем задача следующая:
Определить минимальное время для каждого сотрудника по каждому дню недели и проставить это значение в каждую уникальную строчку.
В таблице день недели рассчитывается формулой.
Решение нужно на уровне формулы, так как использование шаблона невозможна по тех. причинам, а описывать рядовым пользованием функцию =ВПР и создание сводных таблиц крайне затруднительно, поэтому необходима универсальная формула, которую бы каждый вставил в ячейку и протянул на всю таблицу.
Пробовал и =МИН и =ДМИН и другие функции. Через =ВПР работает, но, как писал выше, описать это в мануале для рядовых пользователей невозможно.
=АГРЕГАТ работает, но для одной ячейки. Если протягивать на всю таблицу (~50-100 тыс строк), Excel уходит в астрал.

Так же прошу помочь с оптимизацией формулы соответствия в столбце "Подъезд". Она крайне примитивна - знаю, но там задача плясать от соседнего столбца слева от формулы.

Автор - messir
Дата добавления - 21.06.2019 в 14:13
Che79 Дата: Пятница, 21.06.2019, 14:19 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
messir, добрый день. Заполните вручную в своем файле несколько строк, чтобы понять, как должен выглядеть верный ответ. Пока не очень понятно


Делай нормально и будет нормально!
 
Ответить
Сообщениеmessir, добрый день. Заполните вручную в своем файле несколько строк, чтобы понять, как должен выглядеть верный ответ. Пока не очень понятно

Автор - Che79
Дата добавления - 21.06.2019 в 14:19
sboy Дата: Пятница, 21.06.2019, 14:32 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Пока не очень понятно

поэтому сделал
"Подъезд"

Код
=ОКРУГЛВВЕРХ(ПОИСК(E2;"ADFSEQRWCVXZ")/4;)


Яндекс: 410016850021169
 
Ответить
Сообщение
Пока не очень понятно

поэтому сделал
"Подъезд"

Код
=ОКРУГЛВВЕРХ(ПОИСК(E2;"ADFSEQRWCVXZ")/4;)

Автор - sboy
Дата добавления - 21.06.2019 в 14:32
messir Дата: Пятница, 21.06.2019, 14:56 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

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

Заполнил колонку, которую надо рассчитать "Время МИН" вручную. Логика следующая: все строки Иванова по понедельника сравниваются и по всем понедельникам для Иванова проставляется это минимальное время. Потом так же по вторникам и т.д. И так для каждой строки каждого сотрудника.
Файл в аттаче.

=ОКРУГЛВВЕРХ(ПОИСК(E2;"ADFSEQRWCVXZ")/4;)

Я для примера указал цифры подъезда в критериях формулы, но сама деле там обозначения типа для турникета А и S = CE1, D F Q = CE2 ну и так далее. Причем в каждом подъезде разное кол-во соответствий. В примере просто получилось одинаковыми блоками по 4 пункта.
К сообщению приложен файл: 7359469.xlsx (10.2 Kb)
 
Ответить
Сообщение
Заполните вручную в своем файле несколько строк, чтобы понять, как должен выглядеть верный ответ.

Заполнил колонку, которую надо рассчитать "Время МИН" вручную. Логика следующая: все строки Иванова по понедельника сравниваются и по всем понедельникам для Иванова проставляется это минимальное время. Потом так же по вторникам и т.д. И так для каждой строки каждого сотрудника.
Файл в аттаче.

=ОКРУГЛВВЕРХ(ПОИСК(E2;"ADFSEQRWCVXZ")/4;)

Я для примера указал цифры подъезда в критериях формулы, но сама деле там обозначения типа для турникета А и S = CE1, D F Q = CE2 ну и так далее. Причем в каждом подъезде разное кол-во соответствий. В примере просто получилось одинаковыми блоками по 4 пункта.

Автор - messir
Дата добавления - 21.06.2019 в 14:56
Che79 Дата: Пятница, 21.06.2019, 15:02 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
Вдруг правильно (с)
Код
=МИН(ЕСЛИ(($C$2:$C$37=C2)*($A$2:$A$37=A2);$D$2:$D$37))
Формула массива (вводится Ctrl+Shift+Enter)
К сообщению приложен файл: 7359469_1.xlsx (13.4 Kb)


Делай нормально и будет нормально!
 
Ответить
СообщениеВдруг правильно (с)
Код
=МИН(ЕСЛИ(($C$2:$C$37=C2)*($A$2:$A$37=A2);$D$2:$D$37))
Формула массива (вводится Ctrl+Shift+Enter)

Автор - Che79
Дата добавления - 21.06.2019 в 15:02
_Boroda_ Дата: Пятница, 21.06.2019, 15:06 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Код
=МИН(ЕСЛИ((A$2:A$99=A2)*(C$2:C$99=C2);D$2:D$99))
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Но на 100000 в астрал все равно уйдет
Может, Вам лучше сводную таблицу? см. файл - 2 варианта сводной
К сообщению приложен файл: 7359469_2.xlsx (18.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Код
=МИН(ЕСЛИ((A$2:A$99=A2)*(C$2:C$99=C2);D$2:D$99))
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Но на 100000 в астрал все равно уйдет
Может, Вам лучше сводную таблицу? см. файл - 2 варианта сводной

Автор - _Boroda_
Дата добавления - 21.06.2019 в 15:06
messir Дата: Пятница, 21.06.2019, 15:23 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Che79, _Boroda_, Пробовал я такой вариант еще до обращения сюда (гуглил же сначала разные варианты и решения). Не работает в реальной таблице и указывает время 0:00 :(
Сижу теперь голову ломаю, почему в таблице с примером работает, а у меня нет :(


Сообщение отредактировал messir - Пятница, 21.06.2019, 15:24
 
Ответить
СообщениеChe79, _Boroda_, Пробовал я такой вариант еще до обращения сюда (гуглил же сначала разные варианты и решения). Не работает в реальной таблице и указывает время 0:00 :(
Сижу теперь голову ломаю, почему в таблице с примером работает, а у меня нет :(

Автор - messir
Дата добавления - 21.06.2019 в 15:23
Nic70y Дата: Пятница, 21.06.2019, 15:24 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
работает, а у меня нет
может быть по этому
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter


ЮMoney 41001841029809
 
Ответить
Сообщение
работает, а у меня нет
может быть по этому
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter

Автор - Nic70y
Дата добавления - 21.06.2019 в 15:24
_Boroda_ Дата: Пятница, 21.06.2019, 15:29 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Или потому, что у какого-то Иванова понедельник просто не заполнен, пусто там в понедельнике. А пусто в данном слецчае интерпретируется как 0
Вам вообще зачем это нужно? И почему не хотите сводную? Пользователю вообще ничего делать не нужно будет, только обновить ее для новых данных


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеИли потому, что у какого-то Иванова понедельник просто не заполнен, пусто там в понедельнике. А пусто в данном слецчае интерпретируется как 0
Вам вообще зачем это нужно? И почему не хотите сводную? Пользователю вообще ничего делать не нужно будет, только обновить ее для новых данных

Автор - _Boroda_
Дата добавления - 21.06.2019 в 15:29
messir Дата: Пятница, 21.06.2019, 15:41 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Nic70y, _Boroda_, Che79, Нашел причину. Дело в том, что файл экспортируется в .XML и если по ячейке с временем нажать F2 и Enter, то формат времени применяется и ваша и другие экспериментальные формулы, которые я пробовал срабатывают. Причина оказывается в этом :( Блин, мне и в голову не пришло, что формат не применился при экспортировании.
Теперь сначала буду пробовать идеи сравнений))

И почему не хотите сводную? Пользователю вообще ничего делать не нужно будет, только обновить ее для новых данных

Дело в том, что конечный пользователь выгружает свои данные из общей базы данных. Столбцы там одни и те же, но вот их порядок у каждого свой может быть. Поэтому использовать какой-то единый шаблон невозможно. А описать процесс создания сводной таблицы и использования =ВПР для пользователей, которым надо писать пошагово вплоть до количества кликов и скриншоты где находится та или иная кнопка. Ну в общем вы поняли уровень) Поэтому и приходится искать решения в рамках "тупо скопируй и вставь")))

Ладно) в понедельник продолжу кумекать) Спасибо всем откликнувшимся и хороших выходных! :)


Сообщение отредактировал messir - Пятница, 21.06.2019, 15:43
 
Ответить
СообщениеNic70y, _Boroda_, Che79, Нашел причину. Дело в том, что файл экспортируется в .XML и если по ячейке с временем нажать F2 и Enter, то формат времени применяется и ваша и другие экспериментальные формулы, которые я пробовал срабатывают. Причина оказывается в этом :( Блин, мне и в голову не пришло, что формат не применился при экспортировании.
Теперь сначала буду пробовать идеи сравнений))

И почему не хотите сводную? Пользователю вообще ничего делать не нужно будет, только обновить ее для новых данных

Дело в том, что конечный пользователь выгружает свои данные из общей базы данных. Столбцы там одни и те же, но вот их порядок у каждого свой может быть. Поэтому использовать какой-то единый шаблон невозможно. А описать процесс создания сводной таблицы и использования =ВПР для пользователей, которым надо писать пошагово вплоть до количества кликов и скриншоты где находится та или иная кнопка. Ну в общем вы поняли уровень) Поэтому и приходится искать решения в рамках "тупо скопируй и вставь")))

Ладно) в понедельник продолжу кумекать) Спасибо всем откликнувшимся и хороших выходных! :)

Автор - messir
Дата добавления - 21.06.2019 в 15:41
_Boroda_ Дата: Пятница, 21.06.2019, 16:12 | Сообщение № 11
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Столбцы там одни и те же, но вот их порядок у каждого свой может быть

Открою Вам секрет - для сводной таблицы неважен порядок расположения столбцов. И каждый раз создавать ее тоже не нужно. Нужно просто скопировать новые данные, вставить их на место старых и обновить созданную заранее сводную

А преобразовать данные для нормальной работы формулы очень просто - выделяете нужный столбец - вкладка Данные - Текст по столбцам - ничего там больше не делая, жмем ОК

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


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Столбцы там одни и те же, но вот их порядок у каждого свой может быть

Открою Вам секрет - для сводной таблицы неважен порядок расположения столбцов. И каждый раз создавать ее тоже не нужно. Нужно просто скопировать новые данные, вставить их на место старых и обновить созданную заранее сводную

А преобразовать данные для нормальной работы формулы очень просто - выделяете нужный столбец - вкладка Данные - Текст по столбцам - ничего там больше не делая, жмем ОК

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

Автор - _Boroda_
Дата добавления - 21.06.2019 в 16:12
messir Дата: Понедельник, 24.06.2019, 16:17 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 16
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
_Boroda_, Вернулся я к этому вопросу сегодня. После редактирования столбца времени путем замены двоеточия на двоеточие формула массива заработала :) Правда при протягивании на 60К строк комп Excel ушел в астрал на полчаса) Но результат удался - все посчитано. Правда при проверке данных выяснилось, что функцию МИН использовать некорректно, а нужна =МОДА.НСК. Но в принципе в массиве и МОДА работает :)
Цитата
{=МОДА.НСК(ЕСЛИ(($C$2:$C$37=C2)*($A$2:$A$37=A2);$D$2:$D$37))}

Следующим шагом были попытки преобразовать отдельной колонкой получившееся в МОДЕ время, разделяя на интервалы по 3 часа с выводом результата в формате "00:00 - 02:39", но на этом все застопорилось. Во-первых из-за того, что после применения массива любые правки в таблице грузят ЦП на 100% и работать становится невозможно, а во-вторых у меня даже идея пока не появляется, кроме банального перебора ЕСЛИ с подстановкой абсолютных значений:
Цитата
=ЕСЛИ(F2<0.875;ЕСЛИ(F2<0.75;ЕСЛИ(F2<0.625;ЕСЛИ(F2<0.5;ЕСЛИ(F2<0.375;ЕСЛИ(F2<0.25;ЕСЛИ(F2<0.125;"00:00 - 02:59";"03:00 - 05:59");"06:00 - 08:59");"09:00 - 11:59");"12:00 - 14:59");"15:00 - 18:59");"18:00 - 21:59");"21:00 - 23:59")


По-видимому придется вспоминать VBA коды скорее всего :-( Но чтобы там запустить скрипт на 60-100К строк, все равно получим астрал... :(
 
Ответить
Сообщение_Boroda_, Вернулся я к этому вопросу сегодня. После редактирования столбца времени путем замены двоеточия на двоеточие формула массива заработала :) Правда при протягивании на 60К строк комп Excel ушел в астрал на полчаса) Но результат удался - все посчитано. Правда при проверке данных выяснилось, что функцию МИН использовать некорректно, а нужна =МОДА.НСК. Но в принципе в массиве и МОДА работает :)
Цитата
{=МОДА.НСК(ЕСЛИ(($C$2:$C$37=C2)*($A$2:$A$37=A2);$D$2:$D$37))}

Следующим шагом были попытки преобразовать отдельной колонкой получившееся в МОДЕ время, разделяя на интервалы по 3 часа с выводом результата в формате "00:00 - 02:39", но на этом все застопорилось. Во-первых из-за того, что после применения массива любые правки в таблице грузят ЦП на 100% и работать становится невозможно, а во-вторых у меня даже идея пока не появляется, кроме банального перебора ЕСЛИ с подстановкой абсолютных значений:
Цитата
=ЕСЛИ(F2<0.875;ЕСЛИ(F2<0.75;ЕСЛИ(F2<0.625;ЕСЛИ(F2<0.5;ЕСЛИ(F2<0.375;ЕСЛИ(F2<0.25;ЕСЛИ(F2<0.125;"00:00 - 02:59";"03:00 - 05:59");"06:00 - 08:59");"09:00 - 11:59");"12:00 - 14:59");"15:00 - 18:59");"18:00 - 21:59");"21:00 - 23:59")


По-видимому придется вспоминать VBA коды скорее всего :-( Но чтобы там запустить скрипт на 60-100К строк, все равно получим астрал... :(

Автор - messir
Дата добавления - 24.06.2019 в 16:17
_Boroda_ Дата: Понедельник, 24.06.2019, 16:26 | Сообщение № 13
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
- Прочитайте Правила форума
- Оформите формулу тегами (в режиме правки поста выделите формулу и нажмите кнопку fx, пояснялка здесь)
о чтобы там запустить скрипт на 60-100К строк, все равно получим астрал
Вы так уверенно это утверждаете, что я даже почти поверил
Ну да ладно, на ваш конкретный вопрос ответ дан, остальное к этой теме уже не относится. Тем более, что Вы ничего и не спрашиваете


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение- Прочитайте Правила форума
- Оформите формулу тегами (в режиме правки поста выделите формулу и нажмите кнопку fx, пояснялка здесь)
о чтобы там запустить скрипт на 60-100К строк, все равно получим астрал
Вы так уверенно это утверждаете, что я даже почти поверил
Ну да ладно, на ваш конкретный вопрос ответ дан, остальное к этой теме уже не относится. Тем более, что Вы ничего и не спрашиваете

Автор - _Boroda_
Дата добавления - 24.06.2019 в 16:26
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Установить минимальное значение по двум критериям (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!