Dopasuj indeks na 2 warunkach?


0

Dane:

enter image description here

Mógłbym skorzystać z pomocy przy tworzeniu formuły dopasowania indeksu opartej na 2 elementach warunkowych. W przypadku załączonego zestawu danych muszę skonfigurować formułę (i uczynić ją powtarzalną dla innych sklepów i przyszłych dat), która pobiera numer danych w oparciu o konkretną datę (11/9/15, w tym przypadku) i dla store # 414. W tym przykładzie chcę, aby zwrócona została odpowiedź „132”. Mam nadzieję, że to ma sens.

Każda pomoc byłaby mile widziana!


3
Jak dotąd nie zadałeś konkretnego pytania, po prostu powiedziałeś nam, czego chcesz. Co już próbowałeś? Gdzie utkniesz?
— Ƭᴇcʜιᴇ007

Dlaczego nie użyć ... tabeli przestawnej?
— Raystafarian

Nie mogę użyć tabeli przestawnej b / c, którą ciągnę z klipu danych, który odświeża się co tydzień, i próbuję dodać wartości do istniejącego arkusza roboczego. Próbowałem czegoś takiego, ale moja formuła zwróci 1000, ponieważ zajmuje pierwszy rekord oparty na 11/10/14. Tak daleko, jak dotarłem. = INDEX ([dane-zestaw danych], MATCH („414”, JEŻELI ([Data-set-Date] = „11/9/15”, 1, [Zestaw danych - Store #]), FALSE))
— Matt

Odpowiedzi na kilka wcześniejszych pytań są podobne. Prostym podejściem jest dodanie kolumny pomocnika, która łączy pierwsze dwie kolumny. Następnie połącz swoje dwa warunki i dopasuj do kolumny pomocnika.
— fixer1234

Dziękuję @ fixer1234. Nie odniosłem wiele sukcesów, patrząc na poprzednie pytania, ale będę dalej szukać. Ale oczywiście, jeśli ktoś w międzyczasie ma jakieś sugestie, naprawdę bym to docenił!
— Matt

Odpowiedzi:


1

Oto dwa rozwiązania, odpowiadające moim sugestiom w komentarzach do pytania. W obu przypadkach zakładam, że A1: C30 zawiera dane z pytania.

Korzystanie z funkcji bazy danych

Pierwsze rozwiązania wykorzystują funkcje bazy danych Excel. Wszystkie funkcje bazy danych traktują zakres komórek jako bazę danych, gdzie każdy wiersz jest rekordem, a każda kolumna jest polem. Pierwszy wiersz zawiera nazwy kolumn. Funkcje bazy danych przyjmują również inny zakres komórek jako kryteria wyszukiwania, gdzie pierwszy wiersz to nazwy kolumn, a drugi wiersz to rzeczywiste kryteria. Biorąc to pod uwagę, w E1: F2 (lub gdziekolwiek, ale to właśnie umieściłem w tych przykładach) umieść:

       E         F
 1   Store #     Date
 2       414  11/9/15

To są kryteria. Następnie w E4 (lub gdziekolwiek) umieścić =DGET(A1:C30,"Data",E1:F2). To używa DGET funkcja bazy danych do wyszukania wartości kolumny podanej w bazie danych ( A1:C30 ), nazwa kolumny ( "Data" ) i kryteria ( E1:F2 ). W takim przypadku spowoduje to 132. Zmiana zawartości F2 na 11/2/15 zmieni DGET wartość do 55itd.

Jest to prawdopodobnie najczystszy sposób, ponieważ łatwo go rozszerzyć, jeśli masz dodatkowe kolumny w danych i kryteriach, których chcesz użyć do dopasowania tych kolumn. Możesz również ponownie wykorzystać części kryteriów, aby zrobić inne rzeczy. Na przykład, =DSUM(A1:C30,"Data",E1:E2) zsumuje wszystkie wartości danych dla magazynu 414, =DSUM(A1:C30,"Data",F1:F2) podsumuje wszystkie wartości danych dla 11/9/15, itd. Nie zakłada też niczego o kolejności sortowania kolumn. Wadą jest to, że jeśli nie korzystasz z bazy danych, funkcje (np. ja: -)), będziesz musiał ponownie przeczytać pomoc na nich za każdym razem, gdy z nich korzystasz (tak jak to zrobiłem :-)), więc może nie jest to możliwe do utrzymania.

Korzystanie z formuł indeksowania i wyszukiwania

Drugi sposób łączy niektóre formuły wyszukiwania Excela.

Skonfiguruj arkusz taki sam jak powyżej, dane z pytania w A1: C30 i kryteria w E1: F2. Zauważ, że w tym przypadku użyjemy tylko E2 i F2, ale możesz zostawić E1 i F1 jako etykiety co do E2: F2.

Następnie w E4:

 =VLOOKUP(F2,INDEX(B:B,MATCH(E2,A:A,0),1):INDEX(C:C,MATCH(E2,A:A,1),1),2)

Rozbijając to od wewnątrz:

MATCH(E2,A:A,0)

To znajdzie pierwszy mecz ( 0 ) w pierwszej kolumnie ( A:A ), który pasuje do sklepu # in E2. Zwraca pozycję względną, w tym przypadku, ponieważ cała pierwsza kolumna jest tablicą odnośników, pozycją będzie numer wiersza pierwszego wystąpienia magazynu # w E2. W przykładowych danych, jeśli umieścisz je w komórce, będzie ona miała wartość 7.

INDEX(B:B,MATCH(E2,A:A,0),1)

Spowoduje to wygenerowanie odwołania do komórki w drugiej kolumnie ( B:B ) w rzędzie określonym przez MATCH i kolumna 1. Jeśli umieścisz to w samej komórce, wartością będzie wartość komórki, do której istnieje odwołanie, która na przykładzie będzie wartością z B7, lub 11/10/14.

MATCH(E2,A:A,1)

Znajduje ostatni mecz ( 1 ) w pierwszej kolumnie, która pasuje do sklepu #. Jeśli umieścisz to w komórce, wartość będzie 25.

INDEX(C:C,MATCH(E2,A:A,1),1)

Spowoduje to wygenerowanie odwołania do komórki w trzeciej kolumnie ( C:C ) w rzędzie określonym przez MATCH i kolumna 1. Jeśli umieścisz to w komórce samodzielnie, wartością będzie wartość komórki, do której istnieje odwołanie, która w przykładzie będzie wartością z C25, lub 132.

INDEX(B:B,MATCH(E2,A:A,0),1):INDEX(C:C,MATCH(E2,A:A,1),1)

To łączy oba INDEX formuły do ​​generowania odniesienia do wyszukiwania daty. W przykładowych danych będzie to B7: C25 (jeśli umieścisz je w komórce, otrzymasz #VALUE! ponieważ powoduje więcej niż jedną wartość. Jeśli umieścisz go w komórce jako formułę tablicową, otrzymasz wartość górnej lewej komórki lub 11/10/14 ).

=VLOOKUP(F2,INDEX(B:B,MATCH(E2,A:A,0),1):INDEX(C:C,MATCH(E2,A:A,1),1),2)

To wszystko łączy. To używa VLOOKUP szukać daty z F2, w zakresie komórek generowanym przez te dwa INDEX formuły (B7: C25) i zwrócenie drugiej kolumny (finał 2 ) w pasującym wierszu.

Voilá!


Dopasowanie vlookup / index działało idealnie! DZIĘKUJĘ BARDZO!! Jedno szybkie pytanie. Gdybym miał dodać kolejną kolumnę danych i wstawić ją w kolumnie „D”, jak zmieniłaby się moja formuła? Wydaje mi się, że pojawia się błąd, gdy próbuję zmienić kolumny, do których szukane są formuły. Jeszcze raz dziękuję!
— Matt

Nieważne! Rozgryzłem to! Zmieniłem C: C na D: D, a następnie dodałem wyszukiwanie kolumn w mojej drugiej formule dopasowania indeksu od 2 do 3! Voilá!
— Matt

@Matt Cool, cieszę się, że to działa i udało ci się go rozszerzyć.
— blm
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.