Страницы: 1
RSS
Наименьшее число из ячеек по условию
 
День добрый,
Измучился подбирать формулу, и МИН и НАИМЕНЬШИЙ и прочее .. не получается

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


Файл во вложении, прошу помочь

Изменено: RUSBelorus - 08.12.2023 14:53:00
 
Поправил задание с пояснением. Это маленький массив из большой таблицы куда загружаются прайсы поставщиков и формируется затем цена с наценкой и тд и тп. Но это момент все тормозит)
 
Попробуйте в А2 вставить
=ЕСЛИ(МИН(ЕСЛИ(D3<2;E3;999);ЕСЛИ(H3<2;I3;999);ЕСЛИ(L3<2;M3;999);ЕСЛИ(P3<2;Q3;999))=999;("");МИН(ЕСЛИ(D3<2;E3;999);ЕСЛИ(H3<2;I3;999);ЕСЛИ(L3<2;M3;999);ЕСЛИ(P3<2;Q3;999)))

И протянуть вниз
 
Возможно также это подойдет (формула массива):
Код
=ЕСЛИОШИБКА(1/НАИБОЛЬШИЙ(ЕСЛИОШИБКА(1/((((ОСТАТ(СТОЛБЕЦ($C$3:$R$3)-СТОЛБЕЦ($B3);4)=1)*C3:Q3)>0)*E3:Q3);0);1);"")
Изменено: R091n - 07.12.2023 08:42:23
 
Цитата
написал:
Попробуйте в А2 вставить
Не совсем верно. У Вас привязка ко второму столбику (где 1 или 2), а нужно к первому, где либо есть 10 либо нет.
Второй столбик у меня содержит разные значение по разным поставщикам. В примере 1/2, по другим много/мало, есть еще Истина/Ложь и тп

Именно первый столбик с 10 (есть или нет) дает понимание есть или нет товар с такой ценой.  
Изменено: RUSBelorus - 07.12.2023 09:05:19
 
Цитата
написал:
Возможно также это подойдет (формула массива):
Тут то же самое, в формуле задействован второй столбик ule 1/2, В формуле должен быть первый и третий столбики
PS Извините, может не верно поставил задачу
 
Цитата
RUSBelorus написал:
формуле задействован второй столбик ule 1/2,
Не совсем ясно о чем речь. Но в формуле проверяются столбцы  "Остаток (формула)" если они больше нуля то происходит выбор минимума из столбца "Прайс". Если я удаляю значения из столбца "Загрузка условий наличия товара" то изменяется столбец "Остаток (формула)" от этого изменяется и значения выдаваемые формулой, если вместо формулы в "Остаток (формула)" забить значения вручную. то можете ставить что угодно в столбец "Загрузка условий наличия товара". Подходит это вам или нет не берусь судить, но описанные значения для валидации она повторяет.
 
Цитата
написал:
Но в формуле проверяются столбцы  "Остаток (формула)" если они больше нуля то происходит выбор минимума из столбца "Прайс".
Вы правы, работает. Поменял условие, результат тот же. Попробую протянуть ее в своей таблице, там конечно не три столбика, а 6. Отпишусь.
 
Не очень удобно работать с формулой массива. Если столбец добавляется то надо переписывать всю формулу. К тому это на примере остаток и условие вместе, в реальном файле они могут стоять через несколько столбиков. Тут только формула с привязкой конкретных ячеек
Изменено: RUSBelorus - 07.12.2023 10:07:43
 
Цитата
написал:
=ЕСЛИ(МИН(ЕСЛИ(D3<2;E3;999);ЕСЛИ(H3<2;I3;999);ЕСЛИ(L3<2;M3;999);ЕСЛИ(P3<2;Q3;999))=999;("");МИН(ЕСЛИ(D3<2;E3;999);ЕСЛИ(H3<2;I3;999);ЕСЛИ(L3<2;M3;999);ЕСЛИ(P3<2;Q3;999)))
Писал выше что привязка должна быть первому столбцу
Если переставить значение в формуле на первый столбец и заменить условие <2 на =10, то ошибка
 
Правильный файл по задаче во вложении (скорректировал)
 
Прошу помочь. Отвлекаю всех простой задачей, но я не понимаю как решить.
 
Добрый день
Возможно так (но во второй строке у вас противоречие объявленным условиям)
=МИН(ЕСЛИОШИБКА(D3:AB3/(C$2:AA$2=F$2)/(C3:AA3-1=0);""))
массивно
Изменено: Павел \Ʌ/ - 07.12.2023 11:52:18
 
Попробуй функцией, если конечно я правильно понял задачу

Код
Public Function fMin(a1, a2, b1, b2, c1, c2, d1, d2)
    
    Dim arr(0 To 3)

    If a1 = 10 Then arr(0) = a2
    If b1 = 10 Then arr(1) = b2
    If c1 = 10 Then arr(2) = c2
    If d1 = 10 Then arr(3) = d2
    
    fMin = Application.WorksheetFunction.Min(arr())

End Function
 
Цитата
написал:
=МИН(ЕСЛИОШИБКА(D3:AB3/(C$2:AA$2=F$2)/(C3:AA3-1=0);""))
Не проходит массив, если пробовать добавлять столбики например после Загрузка условия (добавлен G), то ошибка
PS Массив не применим, тк добавляются/удаляются столбики и строки
Изменено: RUSBelorus - 07.12.2023 12:01:49
 
Цитата
написал:
Попробуй функцией, если конечно я правильно понял задачу
Работает. Попробовал добавлять и столбцы в разных местах и строки, все отл.
Огромное спасибо. Буду тестировать.
 
Лучше, конечно, соблюдать порядок какойто - и решения будут попроще
=ЕСЛИ(СУММЕСЛИ(D$2:AA$2;D$2;D3:AA3);МИН(ЕСЛИ(D3=10;G3;9^9);ЕСЛИ(L3=10;P3;9^9);ЕСЛИ(R3=10;T3;9^9);ЕСЛИ(V3=10;AA3;9^9));"")

 
Цитата
написал:
Лучше, конечно, соблюдать порядок какойто
В том и суть что таблица с загрузкой прайсов и их обработкой постоянно модифицируется и порядка в ней не будет. Новый поставщик, новая таблица обработки его массива. Сам принцип формула массива тут не работает.
 
Ещё VBA функция. Требуется только что бы после каждого столбца "остатков" был столбец "цен" (не важно через сколько столбцов) и что бы все столбцы остатков носили одинаковое название и цен соответственно тоже.
Скрытый текст
 
Цитата
RUSBelorus    формула массива тут не работает
Это смотря какая
{ }
=МИН(ЕСЛИ((D$2:AA$2=G$2)*(МУМНОЖ(ТЕКСТ(D3:AA3;"#;;\0;\0")*(D$2:AA$2=D$2);--(СТОЛБЕЦ(D$2:AA$2)>=ТРАНСП(СТОЛБЕЦ(D$2:AA$2))))>0);D3:AA3))
 
Цитата
написал:
Это смотря какая
Формула позволяет добавлять строки и столбцы, но не позволяет менять название столбцов.
Выше формула функция хоть и требует вносить добавлять немного данных при новом поставщике, зато потом не лезешь никуда и делаешь с таблицей что хочешь, только протягивая и копируя строчки.

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

PS В идеале все таки иметь формулу без массива и функций, что бы не "помнить" о том, что надо куда то лезть и что то менять. Это я так себе представлял)
Пока формула функция от vamesc почти идеально)
Изменено: RUSBelorus - 07.12.2023 18:49:16
 
Цитата
не позволяет менять название столбцов.
а что мешает вынести их в отдельные ячейки?
Еще вариант для разнобразия:
{ }
=МИН(ЕСЛИ(ПРОСМОТР(СТОЛБЕЦ(D$2:AZ$2);СТОЛБЕЦ(D$2:AF$2)/ПОИСК("остаток";D$2:AZ$2);D3:AZ3=10)*ЕЧИСЛО(ПОИСК("прайс";D$2:AZ$2));D3:AZ3))
 
Цитата
написал:
а что мешает вынести их в отдельные ячейки?
То же отличный вариант, как и функция выше, работает независимо от добавления строк и столбцов внутри.
буду тестировать два варианта по удобству. Спасибо большое!
PS Пожалуй чуть удобнее чем функция по количеству "настроек"
Изменено: RUSBelorus - 08.12.2023 13:50:23
Страницы: 1
Наверх