У меня есть справочная таблица с именем Purchases
, которая выглядит примерно так:
A B C D
1 Ord_ID Supplier PO_Date Receipt_Quantity
2 PO101 Aa 11/1/2017 5
3 PO102 Bb 12/1/2017 12
4 PO103 Cc 12/15/2017 100
5 PO104 Bb 1/15/2018 8
6 PO105 Dd 2/1/2018 30
7 PO106 Bb 3/1/2018 15
8 PO107 Bb 4/1/2018 10
...
У меня есть отдельный лист с именем Supplier Bb Data
, который должен возвращать номера строк данных Purchases
дляПоставщик Bb.Формула выглядит следующим образом и находится в ячейках A10
, A11
, A12
и т. Д.: * 10101
=SMALL(IF('Purchases'!$B:$B=$A$1, ROW('Purchases'!$B:$B)), ROW(1:1))
=SMALL(IF('Purchases'!$B:$B=$A$1, ROW('Purchases'!$B:$B)), ROW(2:2))
=SMALL(IF('Purchases'!$B:$B=$A$1, ROW('Purchases'!$B:$B)), ROW(3:3))
...
A1
в Supplier Bb Data
содержит значение для поиска "Bb».
Эта формула работает;он корректно возвращает номера строк из Purchases
, которые включают PO для поставщика Bb.(3
, 5
, 7
, 8
и т. Д.)
Однако я хочу иметь возможность возвращать более конкретные данные: строки, где Supplier = Bb
И PO_Date >= 1/1/2018
, ИPO_Date <= 3/1/2018
.Следовательно, возвращая 5
и 7
.
Казалось, что это будет просто;Я попробовал это (предполагая, что 1/1/2018
и 3/1/2018
находятся в ячейках A2
и A3
, соответственно):
=SMALL(IF(AND('Purchases'!$B:$B=$A$1, 'Purchases'!$C$C>=$A$2, 'Purchases!$C$C<=$A$3),
ROW('Purchases'!$B:$B)), ROW(1:1))
Когда я пытаюсь это сделать, Excel просто возвращает 0
для первого рядаи ошибки для всех следующих строк.
Разве AND()
просто не работает внутри оператора IF()
?Что еще я могу попытаться заставить это работать?
Я всегда нажимаю Ctrl+Shift+Enter
для этих ячеек, потому что они являются формулами массива, так что это не проблема.