Индекс и соответствие в Excel - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть два листа, я хочу получить данные с первого листа в соответствии с 3 условиями: Месяц в строке 1, условия в строке 2 и операции из столбца B. Каждый показан в таблице: в каждом местоположении есть одинаковые две операции , The data

На листе 2 я хочу выбрать месяц из списка (проверка данных, месяцы связаны из таблицы), после чего будут показаны данные только этого месяца. , Я использовал следующий код:

=INDEX(Sheet1!B1:K6,MATCH((B1= Sheet1!C1:K1)*(E2=Sheet1!C2:K2),0),MATCH(B3,Sheet1!B1:B6,0))

Как видно на картинке: Retrive data

Но я получаю ошибку, что данные не найдены, хотя я Я уверен, что это там. Подскажите пожалуйста, что я сделал не так?

ОБНОВЛЕНИЕ: Я использовал другой код (это C3):

=INDEX(Sheet1!C3:K3,MATCH(B1,Sheet1!C1:K1,0),MATCH(C2,Sheet1!C2:K2,0))

Работало, я только меняю данные диапазон в каждой ячейке и вариант (H, W, M с месяцем). Странно то, что это работает только в январе! January

Но когда я выбираю февраль или март, я получаю: Feb

Я не понимаю, в чем причина и как это исправить?

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020
=INDEX(Sheet1!$A:$K,ROW(),MATCH($D$1,Sheet1!$1:$1,0)+COLUMN()-3)

Как это работает:

MATCH($D$1,Sheet1!$1:$1,0)

находит столбец выбранного месяца в листах Sheet1

+COLUMN()-3

, чтобы получить H, W или M столбец

ROW()

дает те же строки в Sheet1, а лист назначения

INDEX(...)

возвращает результат

0 голосов
/ 07 февраля 2020

В листе 2 C3:

=INDEX(OFFSET(Sheet1!$C$3:$F$4,MATCH(OFFSET(Sheet2!$A3,IF(Sheet2!$A3="",-1,0),0),Sheet1!$A$3:$A$8,0)-1,MATCH(Sheet2!$B$1,Sheet1!$C$1:$N$1,0)-1),MATCH(Sheet2!$B3,Sheet1!$B$3:$B$4,0),MATCH(C$2,Sheet1!$C$2:$E$2,0))

Идея: использовать смещение, чтобы «определить» область для поиска OP, CR & H, W, M. Поместите условие If + offset, чтобы «сдвинуть» ссылку sheet2, columnA, если она пуста.

Пожалуйста, поделитесь, работает ли она / нет. (:

...