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

Вход

Регистрация

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

 

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

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Функция для минимального значения из диапазона по условию
MaMSo Дата: Четверг, 24.04.2025, 06:06 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

office 365
Добрый день, товарищи.
Столкнулся с проблемой, которую не могу решить своими силами.
Смысл функции: необходимо из реестра за определённую дату выбрать минимальное цифровое значение, которое соответствует определённым условиям.
Вот формула:

=define_stat("БУОС №4 КП-63";H5;'БУОС №4 КП-63'!B:B;"E";"F";"КДМНУ";"min")

Лист называется БУОС №4 КП-63;
В Н5 находится дата;
На листе БУОС №4 КП-63 в столбце В находятся даты;
В столбце Е находятся название типа "КП-63 ВтЛУ / КДМНУ" и "КП-63 ВтЛУ / РГС-3" (номера РГС меняются);
В столбце F находятся искомые данные в числовом виде
Нужно минимальное значение из 4-5 штук, которые находятся в столбце F. Данные нужно брать при условии, что в столбце Е будет "КП-63 ВтЛУ / КДМНУ".
В данный момент берёт минимальное значение за определённую дату из всех, находящихся в столбце F. И вот что интересно - в другой таблице работает правильно, хотя условия похожие.
В столбце В пустых ячеек нет. В другом месте эта формула работает правильно, но в том случае вместо слова "КДМНУ" стоит слово "нефть". В прилагаемом файле рабочее выделено зелёным цветом, а не рабочее желтым.
Это прямо загадка Вселенной - слово изменилось и формула работать перестала...
Любое изменение кода приводит к тому, что работать перестаёт. Вообще.
К сообщению приложен файл: laby.xlsm (229.5 Kb)
 
Ответить
СообщениеДобрый день, товарищи.
Столкнулся с проблемой, которую не могу решить своими силами.
Смысл функции: необходимо из реестра за определённую дату выбрать минимальное цифровое значение, которое соответствует определённым условиям.
Вот формула:

=define_stat("БУОС №4 КП-63";H5;'БУОС №4 КП-63'!B:B;"E";"F";"КДМНУ";"min")

Лист называется БУОС №4 КП-63;
В Н5 находится дата;
На листе БУОС №4 КП-63 в столбце В находятся даты;
В столбце Е находятся название типа "КП-63 ВтЛУ / КДМНУ" и "КП-63 ВтЛУ / РГС-3" (номера РГС меняются);
В столбце F находятся искомые данные в числовом виде
Нужно минимальное значение из 4-5 штук, которые находятся в столбце F. Данные нужно брать при условии, что в столбце Е будет "КП-63 ВтЛУ / КДМНУ".
В данный момент берёт минимальное значение за определённую дату из всех, находящихся в столбце F. И вот что интересно - в другой таблице работает правильно, хотя условия похожие.
В столбце В пустых ячеек нет. В другом месте эта формула работает правильно, но в том случае вместо слова "КДМНУ" стоит слово "нефть". В прилагаемом файле рабочее выделено зелёным цветом, а не рабочее желтым.
Это прямо загадка Вселенной - слово изменилось и формула работать перестала...
Любое изменение кода приводит к тому, что работать перестаёт. Вообще.

Автор - MaMSo
Дата добавления - 24.04.2025 в 06:06
Pelena Дата: Четверг, 24.04.2025, 10:35 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19493
Репутация: 4610 ±
Замечаний: ±

Excel 365 & Mac Excel
Здравствуйте.
Данные нужно брать при условии, что в столбце Е будет "КП-63 ВтЛУ / КДМНУ"

Проблема в том, что функция берет непрерывный диапазон с этими значениями от первой найденной до последней ячейки.
В данном случае для 02.04 с 263 до 277 строки.
А в этом диапазоне попадаются и другие значения резервуаров.
Решение: либо отсортировать столбец Е по возрастанию (или убыванию), либо менять алгоритм функции, чтобы брались только нужные значения


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЗдравствуйте.
Данные нужно брать при условии, что в столбце Е будет "КП-63 ВтЛУ / КДМНУ"

Проблема в том, что функция берет непрерывный диапазон с этими значениями от первой найденной до последней ячейки.
В данном случае для 02.04 с 263 до 277 строки.
А в этом диапазоне попадаются и другие значения резервуаров.
Решение: либо отсортировать столбец Е по возрастанию (или убыванию), либо менять алгоритм функции, чтобы брались только нужные значения

Автор - Pelena
Дата добавления - 24.04.2025 в 10:35
MaMSo Дата: Четверг, 24.04.2025, 10:52 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

office 365
либо отсортировать столбец Е по возрастанию (или убыванию)

Не получится. Данные заносятся по мере поступления проб в лабораторию.
 
Ответить
Сообщение
либо отсортировать столбец Е по возрастанию (или убыванию)

Не получится. Данные заносятся по мере поступления проб в лабораторию.

Автор - MaMSo
Дата добавления - 24.04.2025 в 10:52
MaMSo Дата: Четверг, 24.04.2025, 10:55 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

office 365
"либо менять алгоритм функции, чтобы брались только нужные значения"
Буду благодарен, если подскажите как. Любое изменение нашего "корявого" кода приводит к тому, что функция работать перестаёт.
Но, возникает вопрос: на листе "Готовый результат" в столбце С эта функция работает и почему она перестаёт работать, если задаёшь другие условия?
Формула-то одинаковая, за исключением вводных.
 
Ответить
Сообщение"либо менять алгоритм функции, чтобы брались только нужные значения"
Буду благодарен, если подскажите как. Любое изменение нашего "корявого" кода приводит к тому, что функция работать перестаёт.
Но, возникает вопрос: на листе "Готовый результат" в столбце С эта функция работает и почему она перестаёт работать, если задаёшь другие условия?
Формула-то одинаковая, за исключением вводных.

Автор - MaMSo
Дата добавления - 24.04.2025 в 10:55
Pelena Дата: Четверг, 24.04.2025, 11:08 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 19493
Репутация: 4610 ±
Замечаний: ±

Excel 365 & Mac Excel
в столбце С эта функция работает

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

например, вместо функции min использовать minifs и добавить условие по резервуарам.
Где-то часа через два смогу сделать, если кто-то другой не подключится


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
в столбце С эта функция работает

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

например, вместо функции min использовать minifs и добавить условие по резервуарам.
Где-то часа через два смогу сделать, если кто-то другой не подключится

Автор - Pelena
Дата добавления - 24.04.2025 в 11:08
Pelena Дата: Четверг, 24.04.2025, 11:57 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19493
Репутация: 4610 ±
Замечаний: ±

Excel 365 & Mac Excel
Если у Вас офис 365, как указано в профиле, то можно формулами попробовать
В ячейку P4 формулу
Код
=ЕСЛИОШИБКА(МИН(ФИЛЬТР('БУОС №4 КП-63'!$F$4:$F$1000;(ЛЕВСИМВ('БУОС №4 КП-63'!$B$4:$B$1000;10)=ТЕКСТ(H4;"ДД.ММ.ГГГГ"))*ЕЧИСЛО(ПОИСК("КДМНУ";'БУОС №4 КП-63'!$E$4:$E$1000))));"")

и протянуть вниз


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсли у Вас офис 365, как указано в профиле, то можно формулами попробовать
В ячейку P4 формулу
Код
=ЕСЛИОШИБКА(МИН(ФИЛЬТР('БУОС №4 КП-63'!$F$4:$F$1000;(ЛЕВСИМВ('БУОС №4 КП-63'!$B$4:$B$1000;10)=ТЕКСТ(H4;"ДД.ММ.ГГГГ"))*ЕЧИСЛО(ПОИСК("КДМНУ";'БУОС №4 КП-63'!$E$4:$E$1000))));"")

и протянуть вниз

Автор - Pelena
Дата добавления - 24.04.2025 в 11:57
MaMSo Дата: Четверг, 24.04.2025, 12:01 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

office 365
Да, формула работает. Благодарю от души )))
 
Ответить
СообщениеДа, формула работает. Благодарю от души )))

Автор - MaMSo
Дата добавления - 24.04.2025 в 12:01
Hugo Дата: Четверг, 24.04.2025, 15:06 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3853
Репутация: 813 ±
Замечаний: 0% ±

365
MaMSo, Добрый день.
Можно UDF упростить, ну и не ограничиваться 100...


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


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Четверг, 24.04.2025, 15:21
 
Ответить
СообщениеMaMSo, Добрый день.
Можно UDF упростить, ну и не ограничиваться 100...


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

Автор - Hugo
Дата добавления - 24.04.2025 в 15:06
MaMSo Дата: Воскресенье, 27.04.2025, 06:34 | Сообщение № 9
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

office 365
Hugo, добрый день.
Вообще класс. Всё работает не просто хорошо, а ИДЕАЛЬНО. hands Нельзя, к сожалению, поставить миллион лайков :)
 
Ответить
СообщениеHugo, добрый день.
Вообще класс. Всё работает не просто хорошо, а ИДЕАЛЬНО. hands Нельзя, к сожалению, поставить миллион лайков :)

Автор - MaMSo
Дата добавления - 27.04.2025 в 06:34
  • Страница 1 из 1
  • 1
Поиск:

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