Страницы: 1
RSS
ПросмотрХ не находит все значения
 
Добрый день!
Я, почему-то, уверен, что я ошибся в формуле. Но все-таки не понимаю почему он ищет первое значение, но не ищет остальные

На Листе Лист1 ячейки B2, B3, B5 - ячейки с выпадающим списком
На листе Звонки - то, что нужно найти
В диапазоне F2:G8 - формулы, которые, сделано, видимо, не очень правильно

Да, я понимаю, что можно сделать ключ и тогда даже взять функцию ВПР, но все же почему не работает сейчас ничего при изменении значений на листе Лист1 в ячейках B2, B3, B5?
 
 
Добрый день!
Этот файл точно в Экселе работал?
Результаты вроде корректные, но вот функции ANCHORARRAY() я в Экселе не нахожу. Даже на сайте производителя.
Хотя у меня в 2019 нет и ПРОСМОТРХ...
Кстати если заинтересовался кто-то с древним экселем - ПРОСМОТРХ можно заменить на ИНДЕКС()+ПОИСКПОЗ(). Что там с выпадающими - не изучал.
Изменено: Hugo - 07.10.2023 10:58:45
 
Код
=ПРОСМОТРX($B$1&$B$3&$B$5&E2;Звонки[@Звено]&Звонки[@День]&Звонки[@Смена]&Звонки[@[Урок_номер]];Звонки[@[Время уроков.Начало]];"";0;1)

Обычной конкатенацией (&) Вы не получите МАССИВ для поиска. Это видно, если воспользоваться инструментом Вычислить формулу
Согласие есть продукт при полном непротивлении сторон
 
А почему первое значение находит?
Значит, только через ключ для поиска?
 
Цитата
Hugo написал:
Кстати если заинтересовался кто-то с древним экселем - ПРОСМОТРХ можно заменить на ИНДЕКС()+ПОИСКПОЗ()
Код
=ИНДЕКС(Звонки[Время уроков.Начало];ПОИСКПОЗ($B$1&$B$3&$B$5&$E2;Звонки[Звено]&Звонки[День]&Звонки[Смена]&Звонки[Урок_номер]))

Цитата
extrafant написал:
А почему первое значение находит?
Цитата
Sanja написал:
Это видно, если воспользоваться инструментом Вычислить формулу
Изменено: Sanja - 07.10.2023 11:20:06
Согласие есть продукт при полном непротивлении сторон
 
2Hugo да, у Вас, видимо, не самый новый офис. Заменить-то можно, но, как мне ответили ниже, похоже, что не будет работать
 
Цитата
extrafant написал:
похоже, что не будет работать
См. сообщение выше
Согласие есть продукт при полном непротивлении сторон
 
у меня обе работают одинаково #365.
Изменено: Vik_tor - 08.10.2023 17:33:35
 
Vik_tor, Вы меняли значения в желтых ячейках?
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Hugo написал:
но вот функции ANCHORARRAY() я в Экселе не нахожу
это означает, что формула создавалась в офисе 365 и применялась функция динамического массива.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
См. сообщение выше
Спасибо! Такой вариант работает! А вообще надо бы мне вникнуть в него т.к. часто бывает, что "ключ" поиска составной, а вот при таком варианте как у Вас сделано все работает! И не нужен доп. столбец для поиска

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


А вот и не нашел почему-то для второй смены часы. Вернее находит одинаковое время, а не то, которое реально есть в таблице  Хотя, в таблице они есть. Прикладываю последний вариант файла. И ссылку на onedrive(он-лайн работают динамические массивы, даже если установлен не самый новый офис
А для смены 1 все корректно находит. Странно.
Изменено: extrafant - 08.10.2023 12:48:52
 
Вот так работает для начала, я такой вариант подразумевал:
Код
=ЕСЛИОШИБКА(ИНДЕКС(Звонки[Время уроков.Начало];ПОИСКПОЗ(1;($B$1=Звонки[Звено])*($B$3=Звонки[День])*($B$5=Звонки[Смена])*($E2=Звонки[Урок_номер]);0));"")

Формула массива!
Только т.к. у меня этот анчораррай не летит - я его убил
Изменено: Hugo - 08.10.2023 17:34:00
 
extrafant,
Код
=LET(
    lookup_value, TEXTJOIN(", ", TRUE, $B$1, $B$3, $B$5, $E2),
    lookup_array, BYROW(CHOOSECOLS(Звонки, 1, 2, 3, 4), LAMBDA(r, ARRAYTOTEXT(r))),
    bells, CHOOSECOLS(Звонки, 5, 6),
    result, FILTER(bells, lookup_array = lookup_value, "not found"),
    result
)
Пришелец-прораб.
 
Спасибо! Теперь все нормально работает
 
Доброго времени суток! Кто-нибудь сталкивался с использованием ПРОСМОТРХ при значительной фильтрации массива?
У меня есть два листа, в одном листе три столбца - ФИО (А), дата (B), целое числовое значение ©, а во втором итоговом - ФИО (A) и столбцы месяцев (B) за рассматриваемый период. Задача складывается таким образом - на основе ФИО (текущая строка) итогового листа в изначальном по определенному месяцу (текущий столбец итоговый) проводится поиск числа по условию (число=7000, к примеру). Это число за месяц может быть не единственным, там могут быть другие числа - большие, меньшие, равные условию. Если условие выполняется, то выводится число по условию (7000) из столбца С исходного листа. Если не выполняется, то выводится 0. Исходный лист я редактировать не могу, фильтрацию поставить соответственно тоже не могу. Как тут лучше применить ПРОСМОТРХ, если по параметрам функции выводится только первое/последнее совпадение числа по ФИО? Или эта функция здесь вообще не применима? Пробовала другие функции по совету ChatGPT 3,5, но они не работают тоже в данном случае, либо просто в голову не лезет как по другому тут реализовать... В файле вот примерно как оно выглядит всё.
 
СУММЕСЛИ(), СУММПРОИЗВ(), СУММЕСЛИМН() наверное тоже сгодится.
Вам ведь ещё и месяц/дату нужно анализировать? И может быть суммировать, но даже если и не нужно суммировать...
 
Hugo, да, дату анализировать нужно. Подходит ли она текущему месяцу. Никаких сумм или счета не требуется, просто точное совпадение, если оно есть.
 
См. где СУММПРОИЗВ(), залил жёлтым
Почему не нужно суммировать, Иванову даже очень нужно ))
Изменено: Hugo - 30.10.2023 20:41:17
 
Hugo, да условие такое, не суммировать))) понимаю, что можно было б эти функции с ****ЕСЛИ провернуть, но тут просто нужно совпадение числа 7000 найти, без суммы, счета и т.п. Вот наподобие того, где желтым Вы отметили, только отображение числа 7000 где оно удовлетворяет условию задачи. Этот файл я как пример показала, просто строк таких данных у исходного файла очень много разных, больше десятка тыщ  :D неочевидные человеческому глазу строки чтоб выводились...
 
jennybez, такая
Код
=СУММПРОИЗВ((Исходный!$A$2:$A$7=Итоговый!$A13)*(ГОД(Исходный!$B$2:$B$7)=ГОД(C$1))*(МЕСЯЦ(Исходный!$B$2:$B$7)=МЕСЯЦ(C$1))*(Исходный!$C$2:$C$7=7000))

Иванову в сентябре напишет 2
Потому что у него два раза 7000
Какой результат нужен?
 
Hugo, вывод "7000", если есть хотя б одно 7000 в рассматриваемом месяце года. при определенном человеке, разумеется.
 
Цитата
jennybez написал:
вывод "7000", если есть хотя б одно 7000
Заменил файл, так поинтереснее - можно суммы выбирать из списка
Изменено: Hugo - 30.10.2023 21:56:38
 
Hugo, Ооо, вот оно) Спасибо, мил человек!
Страницы: 1
Наверх