Сопоставление Индекса Excel+ Возвращает повторяющееся значение

Компания, в которой я работаю, использует таблицы Excel, чтобы найти самое дешевое доступное топливо в желаемом месте заправки. Мне удалось заставить формулы уже имеющегося листа работать правильно, за исключением одного очень конкретного случая, когда более чем в одном месте предлагается топливо по одной и той же цене.

Пример изображения

Сопоставление Индекса Excel+ Возвращает повторяющееся значение

В основном в примере:

Для столбцов H, J и L формула рассчитывает первое, второе и третье место с самым дешевым топливом.

Формулы:

=Small(C3:G3;Countif (C3:G3;0)+1)
=Small(C3:G3;Countif (C3:G3;0)+2)
=Small(C3:G3;Countif (C3:G3;0)+3)

Для столбцов I, K и M он находит $$, соответствующий ячейке рядом с ним с названием станции в первой строке.

В этом случае, поскольку Курсель, Лак-Мегантик и Сен-Гедеон продают топливо по одной и той же цене (1,4505), в качестве ответа возвращается 3X Курсель.

Формулы:

=index($C$1:$G$1;Match(H3;C3:G3;0))
=index($C$1:$G$1;Match(J3;C3:G3;0))
=index($C$1:$G$1;Match(L3;C3:G3;0))`

Можно ли, не переделывая весь лист, либо:

  1. Верните самую дешевую станцию, но если название уже есть в ячейке 1 или 2, перейдите к следующей.

  2. Вернуть все названия станций, соответствующие самой низкой цене, затем найти следующую самую высокую цену и следовать, как если бы

Вот что я хотел бы вернуть/ожидаемый результат

Сопоставление Индекса Excel+ Возвращает повторяющееся значение

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

Ответы 1

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

Вы можете попробовать использовать следующую формулу, предполагая, что в отношении тегов сообщений нет ограничений Excel:


=LET(
     _x, A3:E3, 
     _y, TAKE(SORT(UNIQUE(A3:E3,1),,,1),,3), 
     TOROW(VSTACK(XLOOKUP(_y,_x,$A$1:$E$1),_y),,1))

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


Или, как вы и ожидали, результат показан на втором снимке экрана:


=LET(
     _x, A3:E3,
     _y, $A$1:$E$1,
     _z, SORT(UNIQUE(_x,1),,,1),
     _List, BYCOL(_z,LAMBDA(a,TEXTJOIN(CHAR(10),1,FILTER(_y,a=_x)))),
     TOROW(VSTACK(_z,_List),,1))

Используйте следующее, если будут какие-либо пробелы:

=LET(
     _x, A3:E3,
     _y, $A$1:$E$1,
     _z, SORT(UNIQUE(_x,1),,,1),
     _List, BYCOL(_z,LAMBDA(a,TEXTJOIN(CHAR(10),1,FILTER(_y,(a=_x)*(_x<>0),NA())))),
     TOROW(IF(_List=0,NA(),VSTACK(_z,_List)),2,1))

Вторая формула работает безупречно. Однако это поднимает еще одну проблему. В настоящее время все данные собираются на первом листе и извлекаются только последняя непустая строка каждого листа. Можно ли отредактировать эту формулу, чтобы игнорировать значения, равные 0?

Marc-Andre pouliot 01.04.2024 18:04

@Марк-Андрепулиот рад это знать =) Спасибо.

Mayukh Bhattacharya 01.04.2024 23:20

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

Запрашивает формулу Excel для сравнения столбцов, но идет по порядку и пропускает пробелы
Календарь не показывает точное время
Скопируйте и вставьте одно значение из ячейки в другую ячейку
Автоматическое заполнение пустых ячеек значением ячейки, если условие выполнено
Как я могу контролировать количество столбцов в функции ИНДЕКС Excel на основе критериев?
Проблема EXCEL → Функция, которая ищет правильный столбец на основе заголовка и возвращает определенные ячейки, если они соответствуют значениям, указанным в списке
Мне это нужно, чтобы увидеть, совпадает ли одно число в списке с соседним с ним числом
Как я могу взять все строки с определенными критериями и создать новый лист с результатами?
Excel — двусторонний поиск, где второе измерение зависит от первого измерения
Excel – упорядочите время входа в систему в аккуратные часы