Как вернуть значение столбца на основе столбцов на нескольких листах? - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужно получить статус с двумя условиями из отдельных рабочих листов или рабочих книг.У меня есть столбец ID, столбец Location и столбец Status (столбец A (ID), столбец B (Loc), столбец C (Status)).

Когда критерии ID и местоположения выполнены, он долженвернуть значение столбца Status для этой строки.Например, если бы это был SQL-запрос:

SELECT Status from Source where IDsource=IDDestination && LocSource=LocDestination

Как мне это сделать?

Я пробовал формулу if(and)), но безрезультатно.

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Если вы объединяете (или присоединяете) столбец идентификатора и местоположения в новом столбце, вы можете сделать простой vlookup().

Так что если ваш лист "базы данных" выглядит следующим образом:

ID   | Location | Status    
------------------------
  1  |  Home    |   OK
  2  |  Home    |  Broken
  3  |  Work    |   OK

Затем просто добавьте еще один столбец между местоположением и статусом, используя следующую формулу: =A1&"-"&B1 в C1.

ID   | Location | ID-Location | Status    
--------------------------------------
  1  |  Home    |   1-Home    |   OK
  2  |  Home    |   2-Home    |  Broken
  3  |  Work    |   3-Work    |   OK

Если вам нужен статус ID 1 и местоположения Home, вы просто делаете: =Vlookup(A2&"-"&B2,Database!C2:D1000,2,FALSE) в ячейке C2 вашего другого листа.

Если существует несколько комбинаций, возвращается только первое совпадение.

0 голосов
/ 04 февраля 2019

Подойдет формула массива, подобная следующей:

{=OFFSET(C:C;MIN(IF((A:A="Some ID")*(B:B="Some Location");ROW(C:C);""))-1;0;1;1)}

Она становится немного тяжелой, но если вы можете ограничить количество строк, она становится быстрее:

{=OFFSET(C:C;MIN(IF((A2:A1001="Some ID")*(B2:B1001="Some Location");ROW(C2:C1001);""))-1;0;1;1)}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...