
Мне нужно сослаться на 3 листа: «Доставка», «Оборудование» и «Инвентарь», где столбец A в «Доставке» и столбец A в «Оборудовании» оба ссылаются на номер местоположения, а тип оборудования обозначен текстом и подсчитан в сводной таблице в «Инвентаре». С каждым номером местоположения связано несколько типов оборудования, и некоторые номера местоположений еще не связаны.
Проще говоря, я пытаюсь сказать: «ЕСЛИ номер местоположения в отгрузке совпадает с номером местоположения в оборудовании И тип оборудования совпадает с инвентарем A9 или тип оборудования совпадает с инвентарем A8, вернуть номер отслеживания в столбце K, в противном случае вернуть пустое значение».
Моя формула:
=IF(AND(Equipment!A:A=Shipping!A2,OR(Equipment!C:C=Inentory!A8,Equipment!C:C=Inentory!A9)),Equipment!K:K,"").
Хотя я знаю, что нужно вернуть правильное значение, и логически это должно работать, я все равно получаю ложное значение, поэтому я знаю, что есть какая-то сложность, которую я упускаю. Есть ли помощь?
решение1
У вас тут есть пара проблем.
Обычно формулы Excel не обрабатывают массивы в качестве входных данных (если вы просто нажимаете Enter), поэтому ваша формула сравнивает только первую ячейку ваших диапазонов.
Если вы вводите формулу массива, используяctrl+shift+enterон будет сравниваться с полным диапазоном, но вашилииифункции упростят это до одного значения true/false для всего диапазона (а не для каждой строки по отдельности).
Таким образом, используя формулу массива, вы можете использовать что-то вроде этого: но учтите, что формулы массива могут работать очень медленно, если вы используете целые массивы столбцов (поскольку каждый из них содержит ~1 млн ячеек, поэтому вам гораздо лучше фактически определить диапазон).
=index(Equipment!K:K,
match(Shipping!A2,
if(((Equipment!C:C=Inentory!A8)+(Equipment!C:C=Inentory!A9))>0,Equipment!A:A,0)
,0)
)