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

Вход

Регистрация

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

 

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

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Поиск наименьшего значения по условию
HiHiMAX Дата: Суббота, 11.07.2015, 20:33 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Привет!
В стобце ID номер группы, этот номер уникален.
В столбце vol количество предметов, которые принадлежат участнику группы.
Как отметить все минимальные значения vol внутри группы? В столбце min хотелось бы видеть букву "m".
К сообщению приложен файл: 11.xls (14.0 Kb)
 
Ответить
СообщениеПривет!
В стобце ID номер группы, этот номер уникален.
В столбце vol количество предметов, которые принадлежат участнику группы.
Как отметить все минимальные значения vol внутри группы? В столбце min хотелось бы видеть букву "m".

Автор - HiHiMAX
Дата добавления - 11.07.2015 в 20:33
Serge_007 Дата: Суббота, 11.07.2015, 20:42 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Здравствуйте

Формула массива:
Код
=ЕСЛИ(МИН(ЕСЛИ(C$6:C$23=C6;E$6:E$23))=E6;"m";"")
К сообщению приложен файл: HiHiMAX.xls (28.0 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЗдравствуйте

Формула массива:
Код
=ЕСЛИ(МИН(ЕСЛИ(C$6:C$23=C6;E$6:E$23))=E6;"m";"")

Автор - Serge_007
Дата добавления - 11.07.2015 в 20:42
МВТ Дата: Суббота, 11.07.2015, 20:45 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Формула массива, вводится Ctrl-Shift-Enter (и протянуть)
Код
=ЕСЛИ(МИН(ЕСЛИ($C$6:$C$23=C6;$E$6:$E$23))=E6;"m";"")

P.S. немного опоздал :)


Сообщение отредактировал МВТ - Суббота, 11.07.2015, 20:46
 
Ответить
СообщениеФормула массива, вводится Ctrl-Shift-Enter (и протянуть)
Код
=ЕСЛИ(МИН(ЕСЛИ($C$6:$C$23=C6;$E$6:$E$23))=E6;"m";"")

P.S. немного опоздал :)

Автор - МВТ
Дата добавления - 11.07.2015 в 20:45
HiHiMAX Дата: Суббота, 11.07.2015, 20:47 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Без массива это возможно сделать? суммпроизв?
 
Ответить
СообщениеБез массива это возможно сделать? суммпроизв?

Автор - HiHiMAX
Дата добавления - 11.07.2015 в 20:47
Nic70y Дата: Суббота, 11.07.2015, 20:58 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
Код
=ЕСЛИ(СУММПРОИЗВ(НАИМЕНЬШИЙ((C$6:C$23=C6)*E$6:E$23;СУММ(--(C$6:C$23<>C6))+1))=E6;"m";"")


ЮMoney 41001841029809
 
Ответить
Сообщение
Код
=ЕСЛИ(СУММПРОИЗВ(НАИМЕНЬШИЙ((C$6:C$23=C6)*E$6:E$23;СУММ(--(C$6:C$23<>C6))+1))=E6;"m";"")

Автор - Nic70y
Дата добавления - 11.07.2015 в 20:58
HiHiMAX Дата: Суббота, 11.07.2015, 21:31 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Nic70y,
Не могу прикрутить Вашу формулу к исходному файлу(((
и еще нужно учесть погрешность измерений, т.е. если значение других vol в группе будут лежать в пределах 3% от минимального - это тоже отмечается "m"
На скрепке часть исходного файла
Спасибо за помощь
К сообщению приложен файл: 1111.xls (36.0 Kb)
 
Ответить
СообщениеNic70y,
Не могу прикрутить Вашу формулу к исходному файлу(((
и еще нужно учесть погрешность измерений, т.е. если значение других vol в группе будут лежать в пределах 3% от минимального - это тоже отмечается "m"
На скрепке часть исходного файла
Спасибо за помощь

Автор - HiHiMAX
Дата добавления - 11.07.2015 в 21:31
Nic70y Дата: Суббота, 11.07.2015, 21:44 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
Код
=ЕСЛИ(ABS(P45-СУММПРОИЗВ(НАИМЕНЬШИЙ((B$45:B$312=B45)*P$45:P$312;СУММ(--(B$45:B$312<>B45))+1)))<=СУММПРОИЗВ(НАИМЕНЬШИЙ((B$45:B$312=B45)*P$45:P$312;СУММ(--(B$45:B$312<>B45))+1))*0,03;"m";"")
тяжеленькая формула будет, если ID идут, как в примере, подряд и знать максимальное число повторов - формулу можно облегчить, изменив диапазон, а может и нет...
К сообщению приложен файл: 1-45-27.xls (59.0 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Суббота, 11.07.2015, 21:47
 
Ответить
Сообщение
Код
=ЕСЛИ(ABS(P45-СУММПРОИЗВ(НАИМЕНЬШИЙ((B$45:B$312=B45)*P$45:P$312;СУММ(--(B$45:B$312<>B45))+1)))<=СУММПРОИЗВ(НАИМЕНЬШИЙ((B$45:B$312=B45)*P$45:P$312;СУММ(--(B$45:B$312<>B45))+1))*0,03;"m";"")
тяжеленькая формула будет, если ID идут, как в примере, подряд и знать максимальное число повторов - формулу можно облегчить, изменив диапазон, а может и нет...

Автор - Nic70y
Дата добавления - 11.07.2015 в 21:44
HiHiMAX Дата: Суббота, 11.07.2015, 21:49 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
Nic70y,
да ID сгруппированы, данные отсортированы
Там порядка 60000 строк, ID повторяться не будет - может стоит ограничить диапазон просмотра данных: +-50 ячеек от текущей?
 
Ответить
СообщениеNic70y,
да ID сгруппированы, данные отсортированы
Там порядка 60000 строк, ID повторяться не будет - может стоит ограничить диапазон просмотра данных: +-50 ячеек от текущей?

Автор - HiHiMAX
Дата добавления - 11.07.2015 в 21:49
jakim Дата: Суббота, 11.07.2015, 21:51 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1218
Репутация: 316 ±
Замечаний: 0% ±

Excel 2010
Без массива и без сумпроизв.

Код
=IF(LARGE(INDEX((C$6:C$23=C6)*(E$6:E$23);0);COUNTIF(C$6:C$23;C6))=E6;"m";"")
К сообщению приложен файл: 3277480.xls (58.5 Kb)


Сообщение отредактировал jakim - Суббота, 11.07.2015, 23:25
 
Ответить
Сообщение
Без массива и без сумпроизв.

Код
=IF(LARGE(INDEX((C$6:C$23=C6)*(E$6:E$23);0);COUNTIF(C$6:C$23;C6))=E6;"m";"")

Автор - jakim
Дата добавления - 11.07.2015 в 21:51
Nic70y Дата: Суббота, 11.07.2015, 21:59 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 9131
Репутация: 2415 ±
Замечаний: 0% ±

Excel 2010
с 95 строки формула отличается
К сообщению приложен файл: 1-45-28.xls (70.5 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениес 95 строки формула отличается

Автор - Nic70y
Дата добавления - 11.07.2015 в 21:59
МВТ Дата: Суббота, 11.07.2015, 22:03 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 137 ±
Замечаний: 0% ±

Excel 2007
Можно так, как вариант [vba]
Код
Function КакТоТак(Диапазон As Range, Id As Integer, Optional Vol As Long = 2) As Integer
'Диапазон - диапазон, в котором содержатся ID и Vol
'Id - тот ID по которому, собственно и происходит поиск наименьшего значения
'Vol - необязательный, по умолчанию равен 2 - номер столбца в Диапазоне,
'в котором содержатся значения

Dim arr
Dim I As Long
arr = Диапазон.Value
For I = 1 To UBound(arr)
If arr(I, 1) = Id Then If КакТоТак = 0 Then КакТоТак = arr(I, Vol) Else _
     КакТоТак = Application.WorksheetFunction.Min(КакТоТак, arr(I, Vol))
Next I
End Function
[/vba]
 
Ответить
СообщениеМожно так, как вариант [vba]
Код
Function КакТоТак(Диапазон As Range, Id As Integer, Optional Vol As Long = 2) As Integer
'Диапазон - диапазон, в котором содержатся ID и Vol
'Id - тот ID по которому, собственно и происходит поиск наименьшего значения
'Vol - необязательный, по умолчанию равен 2 - номер столбца в Диапазоне,
'в котором содержатся значения

Dim arr
Dim I As Long
arr = Диапазон.Value
For I = 1 To UBound(arr)
If arr(I, 1) = Id Then If КакТоТак = 0 Then КакТоТак = arr(I, Vol) Else _
     КакТоТак = Application.WorksheetFunction.Min(КакТоТак, arr(I, Vol))
Next I
End Function
[/vba]

Автор - МВТ
Дата добавления - 11.07.2015 в 22:03
  • Страница 1 из 1
  • 1
Поиск:

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