У меня есть следующая таблица, содержащая данные о ноутбуке
(Laptops)
Name | RAM | CPU
===========================================
Laptop Example 1 | 4 | Intel® Core™ i3-8130U
Laptop Example 2 | 8 | Intel® Core™ i5-8250U
Laptop Example 3 | 16 | Intel® Core™ i5-8250U
Laptop Example 4 | 8 | Intel® Core™ i7-8550U
Laptop Example 5 | 8 | Intel® Core™ i5-8265U
...
Я хотел создать массив с использованием нескольких критериев, чтобы просто вернуть name
ноутбука. В этом случае я хочу вернуть имя ноутбука с 8
RAM
& CPU
содержащим i5-
.
В этой таблице выше я бы ожидал возврата
(Array)
Name
======================
Laptop Example 2
Laptop Example 5
У меня не было большого опыта работы с формулами массивов, но мне удалось вернуть все имена ноутбуков с помощью8
RAM
=IFERROR(INDEX(Laptops!A$2:A$500,SMALL(IF(Laptops!$B$2:$B$500=8,ROW(Laptops!A$2:A$500)-ROW(Laptops!A$2)+1),ROWS(Laptops!A$2:A2))),"")
или CPU
содержащийi5-
=IFERROR(INDEX(Laptops!A$2:A$500,SMALL(IF(IFERROR(SEARCH("i5-", Laptops!$C$2:$C$500), 0),ROW(Laptops!A$2:A$500)-ROW(Laptops!A$2)+1),ROWS(Laptops!A$2:A2))),"")
Но не получается объединить оба с помощью AND
функции? Я пробовал...
=IFERROR(INDEX(Laptops!A$2:A$500,SMALL(IF(AND(Laptops!$B$2:$B$500="8",IFERROR(SEARCH("i5-", Laptops!$C$2:$C$500), 0),ROW(Laptops!A$2:A$500)-ROW(Laptops!A$2)+1),ROWS(Laptops!A$2:A2))),""))
Однако он ничего не возвращает. Любая помощь будет высоко оценена.
решение1
Я бы использовал сводную таблицу, а затем отфильтровал бы данные по оперативной памяти и применил бы фильтр к столбцу ЦП.
Некоторая помощь в этомздесь
решение2
Мой подход к вашему вопросу будет таким:
1.- Получите несколько вспомогательных столбцов
Добавить столбец «Семейство ЦП»
=left(right(C2;8);2)
Вы можете дублировать поле Ram, если хотите видеть RAM при фильтрации.
=B2&"gb"
2.- Вставить сводную таблицу
Выделите весь диапазон данных, нажмите CTRL+SHIFT+Пробел и перейдите в Вставка > Сводная таблица.
Здесь вы можете выбрать Ram
и CPU Family
в качестве фильтров, в полях меток вы можете добавить Laptop Name
иCPU
Перевод:=LEFT(RIGHT(C2;8);2)
Это мой подход без вовлеченияVBA
Ваше здоровье.