Многоусловный Xlookup с входными массивами разгрузки

У меня есть массив с несколькими столбцами, которые являются диапазонами разлива. Мне нужно использовать каждый столбец для выполнения многоусловного поиска x (или аналогичной формулы/результата), который дает диапазон результатов. Я использовал sumifs для получения результатов, но когда ячейка пуста, я бы хотел, чтобы она оставалась пустой, где результаты sumifs дают 0%, когда ячейка пуста.

Реальное применение этого будет помещено в формулу LET, и каждый из выходов в xlookup будет результатом выбора столбцов.

=XLOOKUP(1,($C$3#=$C$12:$C$15)*($D$3#=D12:D15),$E$12:$E$15,"",0)

=SUMIFS($E$12:$E$15,$C$12:$C$15,C3#,$D$12:$D$15,D3#)

На изображении границы обозначают массив разливов. Ожидаемые результаты вводятся вручную.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
50
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете попробовать использовать следующую формулу:


=MAP(C3#,D3#,LAMBDA(α,δ, 
 XLOOKUP(1,(α=C12:C15)*(δ=D12:D15),
 IF(E12:E15 = "","",E12:E15),"")))

Или,

=LET(a, E12:E15, IF(a = "","",SUMIFS(a,C3#,C12:C15,D3#,D12:D15)))

Или,

=LET(
     a, FILTER(E12:E15,COUNTIFS(C3#,C12:C15,D3#,D12:D15)),
     IF(a = "","",a))

Или,

=XLOOKUP(C3#&"|"&D3#,C12:C15&"|"&D12:D15,IF(E12:E15 = "","",E12:E15))

Формула карты сработала, хотя производительность моего приложения довольно низкая.

Mark S. 02.08.2024 23:35

А что насчет этого: =LET( a, FILTER(E12:E15,COUNTIFS(C3#,C12:C15,D3#,D12:D15)), IF(a=0,"",a))

Mayukh Bhattacharya 02.08.2024 23:42

Логика заключается не в том, что если это 0, оставьте его пустым, а мы хотим отобразить настоящий 0. Если он пуст, мы хотим, чтобы он оставался пустым.

Mark S. 05.08.2024 14:14

Попалось: =IF(E12:E15 = "","",SUMIFS(E12:E15,C3#,C12:C15,D3#,D12:D15)) просто измените 0 на ""

Mayukh Bhattacharya 05.08.2024 14:53

Имеет ли для этого значение сортировка? Например, если используется сводка и я извлекаю значения из несортированного набора данных, не окажутся ли эти пробелы в неправильных позициях?

Mark S. 05.08.2024 18:37

После тестирования кажется, что местоположение остается пустым независимо от совпадения.

Mark S. 05.08.2024 18:53

Я не думаю, что сортировка здесь должна иметь значение. Поскольку вам нужен вывод, чтобы те, которые являются пробелами, оставались пустыми, а тот, у которого 0, отображался как 0, поэтому сортировка здесь не будет действовать.

Mayukh Bhattacharya 05.08.2024 19:02

Я имею в виду, что если нижний массив останется как есть, но верхний массив будет использован, останется ли пробел в своем абсолютном положении или приспособится к тому месту, где он должен быть? Судя по тому, что я видел, казалось, что он оставался на своем абсолютном месте, независимо от того, что бы ни потянули сумифы.

Mark S. 05.08.2024 19:26

Я не нашел никакой разницы, все работает как есть.

Mayukh Bhattacharya 05.08.2024 19:40

Итак, я переделал свой пример и вижу, что результаты неверны с использованием логики IF( [range] = "". Если пробел представляет собой абсолютную позицию, в которой используется сводка, а результаты также не отображают правильные значения. Я пока буду придерживаться карты

Mark S. 05.08.2024 19:59

Сработает ли это, Марк?

=IF(LEN(TRIM($E$12#)), SUMIFS($E$12#,$C$12#,C3#,$D$12#,D3#),"")

Или

Другие вопросы по теме