Страницы: 1
RSS
Выбор значения из массива по критериям
 
Доброго времени суток всем! Всех с прошедшими праздниками.
У меня возник такой вопрос, всё не могу никак победить его.

Существуют некоторые электроустановки (далее э/у) по графику два раза в год производится на них замеры нагрузок и напряжений. Все это заносится в таблицу (в примере создал упрощенную таблицу), содержащую ГДЕ был произведен замер и КОГДА. В ячейке, залитой зелёным, я вытаскиваю дату, когда был произведён замер на определённой э/у. Не получается затем вытащить значение напряжение в этой дате. В примере две таблицы. В одной, где в таблице столбцов с полугодием несколько, формула для U не работает, где же один столбик с датой (правая таблица), все работает правильно. Прошу помочь, возможно я не до конца понимаю принцип работы формулы. Заранее всех благодарю!
Изменено: kdi - 15.01.2026 12:45:21
 
Версия Excel?
Согласие есть продукт при полном непротивлении сторон
 
Microsoft Office профессиональный плюс 2013
 
Так?
Код
=СУММ((A2:A13=B17)*(B2:B13=B16)*(C2:G13=B21)*D2:H13)
 
Блин, спасибо большое, да работает...
Но понять не могу, как это работает всё...
Есть возможность объяснить?  
Изменено: kdi - 15.01.2026 13:24:33
 
Цитата
написал:
как это работает всё
Для начала упростим формулу
Код
=СУММ((A2:A13=B17)*(B2:B13=B16)*(C2:C13=B21)*D2:D13)
Она суммирует значения в столбце D, если столбец A равен B17, столбец равен B16, столбец C равен B21.
Теперь расширим диапазон даты до 5 столбцов с C:C до С:G. На то же количество столбцов расширим диапазон напряжения с D:D до D:H.
Формула примет вид:
Код
=СУММ((A2:A13=B17)*(B2:B13=B16)*(C2:G13=B21)*D2:H13)
 
Все равно пока тяжело, в голове не укладывается "суммирование слов" в ячейке...
Это какой-то перебор значений?

Может вы знаете какие-то статьи или уроки по этой теме именно? Впервые такое вижу просто

И можно ли это все таки сделать через ПОИСКПОЗ?  
 
Код
=ИНДЕКС(C2:H13; ПОИСКПОЗ(B16 & B17; B2:B13 & A2:A13; 0); ПОИСКПОЗ(B20; C1:H1; 0)+1)
добавьте единичку к предыдущей формуле дату же нашли на 1 столбец правее сместите
Изменено: Тимофеев - 15.01.2026 13:39:15
 
Вот спасибо большое, как все просто оказалось, благодарю!  
 
Можно и через ПОИСКПОЗ.
Код
=СМЕЩ(C1;ПОИСКПОЗ(B21;СМЕЩ($B$2:$B$13;0;ПОИСКПОЗ(B20;C1:G1;0));0);ПОИСКПОЗ(B20;C1:G1;0))
Формула обычная, не массива.
 
Цитата
kdi написал:
в голове не укладывается "суммирование слов" в ячейке
вот здесь описывал как это работает(функция другая, но принцип полностью тот же): Суммирование по двум и более критериям - версии до 2007 Excel
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
Можно и через ПОИСКПОЗ.Код ? 1=СМЕЩ(C1;ПОИСКПОЗ(B21;СМЕЩ($B$2:$B$13;0;ПОИСКПОЗ(B20;C1:G1;0));0);ПОИСКПОЗ(B20;C1:G1;0))Формула обычная, не массива.
Большое спасибо Вам, добрый человек!!!
 
как вариант:
=СУММЕСЛИМН(ИНДЕКС(C2:H13;;ПОИСКПОЗ(B20;B1:G1;));A2:A13;B17;B2:B13;B16)
 
Спасибо большое!  
 
Здравствуйте! помогите, пожалуйста, перебрал поискпоз, выбор, индекс...
Нужно на основе принадлежности исходного значения диапазону значений вернуть в ячейку другое значение, соответствующее строке этого диапазона.  
Изменено: dimaaan89 - 29.05.2026 11:29:23 (вложил файл)
 
dimaaan89,
Код
=INDEX($D$16:$D$21;SMALL(IF((E3>=$B$16:$B$21)*(E3<=$C$16:$C$21);ROW($A$1:$A$6);"");1))
массивная, для 3 строки таблицы вернет ошибку, остальные посчитает
 
dimaaan89, для F4, без массива
=ПРОСМОТР(;-1/($B$16:$B$21<=E4)/( $C$16:$C$21=>E4);$D$16:$D$21)
Изменено: Sergey Stoyanov - 29.05.2026 11:58:09
 
Sergey Stoyanov, спасибо большое!
 
bigorq, ROW($A$1:$A$6) - какие данные должны стоять?
 
Цитата
dimaaan89 написал:
ROW($A$1:$A$6) - какие данные должны стоять?
любые, считается только номер строки. Строк должно быть указано столько сколько во второй таблице, для вашего примера 6
 
bigorq, Просмотр работает, Индекс не получается. Файл прилагаю
 
Цитата
dimaaan89 написал:
Индекс не получается
у вас русскоязычный офис нужно функции переводить:
INDEX ИНДЕКС
IF ЕСЛИ
SMALL НАИМЕНЬШИЙ (не уверен)
ROW СТРОКА
Изменено: bigorq - 29.05.2026 12:51:03
 
Цитата
dimaaan89 написал:
Индекс не получается
с какой целью поменяли ROW($A$1:$A$6) на ROW($A$16:$A$21)? Верните как было. Или замените на ROW(1:6). Или даже просто array constant {1;2;3;4;5;6}
Пришелец-прораб.
 
еще вариант
=ИНДЕКС(ВЫБОР((ПОИСКПОЗ($C$20; $D$1:$I$1; 0)-1)/2+1;$E$2:$E$13;$G$2:$G$13;$I$2:$I$13);ПОИСКПОЗ($C$16;$C$2:$C$13;0))

при условии, что как в примере номера не повторяются.
если у разных названий могут быть одинаковые номера, то тоже решаемо
Изменено: ВовавВова - 29.05.2026 22:41:53
познакомился с Excel
 
Здравствуйте.
Можно посчитать и такой формулой
Код
=СУММЕСЛИМН($D$16:$D$21;$B$16:$B$21;"<="&E3;$C$16:$C$21;">="&E3)
Только не всё посчитается, так как "вилки" у вас с пропусками. Например для площади 54,89 не покажет цену, так как эта площадь не попадает не в одну "вилку". Предыдущий максимум ровно 54 м.кв а следующий минимум 56 м.кв. Какую цену брать, предыдущую или следующую, или среднею рассчитать?
Изменено: gling - 29.05.2026 23:16:26
Страницы: 1
Читают тему
Наверх