Vlookup, aby sprawdzić wszystkie wartości przed zwróceniem wartości?

0

Mam ten projekt, muszę sprawdzić wartości z innego arkusza i skopiować wartość komórki obok niego.

Arkusz 1

Billy
Paul
Mike
Jesse

Arkusz 2

Billy |
Paul | X
Jesse | 
Billy | X
Mike | X

Pracuję nad arkuszem 1, jednocześnie uzyskując wartości z arkusza 2.

Muszę tylko zwrócić wartość w kolumnie 2, mam ją do pracy z = IFERROR (WYSZUKAJ.PIONOWO (B148, LateReports! B: C, 2,0), „-”)

Ale gdy Billy nie ma X za pierwszym razem, zatrzymuje wyszukiwanie i zwraca puste. Jak sprawdzić całą listę, porównać wartości komórek i czy po zwróceniu jest ona równa „X”?

Mocella
źródło
Ogólnie rzecz biorąc, dokumentacja WYSZUKAJ.PIONOWO powie, że kolumna tabeli po lewej stronie powinna być posortowana alfabetycznie, w tym przypadku umieściłaby ona dwa wpisy Billy'ego w kolejnych wierszach. Samo to nie rozwiązuje całkowicie tego problemu. Nie ma flagi rekurencyjnej ani nic podobnego do vlookup.
Tyson
Czy znasz inną funkcję, której mogę używać? Przyzwyczaiłem się do podstawowych funkcji programistycznych, takich jak If, Or itp. Miałem nadzieję, że uda mi się go tam
umieścić
@Tyson, źle. Przeglądarka wymaga tylko posortowanych danych do przybliżonego wyszukiwania z PRAWDĄ lub 1 jako czwartym argumentem. Dokładne sortowanie nie ma znaczenia. To nie jest tutaj problem.
teylyn
Jaka jest wartość w kolumnie 2 - liczba, tekst lub właściwie litera „x”? Opisz bardziej szczegółowo swoje dane. Edytuj swoje pytanie. Nie umieszczaj szczegółów w komentarzach.
teylyn 08.04.16

Odpowiedzi:

0

Możesz posortować tabelę wyszukiwania według kolumny A, a następnie zejść do kolumny B. W takim przypadku funkcja WYSZUKAJ.PIONOWO najpierw znajdzie „Billy” z X.

BillDOe
źródło
Powinienem był dodać więcej informacji o arkuszach. Arkusz 2 ma kolejną kolumnę dla daty, według której jest posortowana.
Mocella
Czy plik musi być plikiem XLSX, czy może zawierać funkcję zdefiniowaną przez użytkownika (XLSM)?
BillDOe
To musi być XLSX,
Mocella
Możesz utworzyć trzeci arkusz posortowany zgodnie z sugestią i ukryć go w razie potrzeby.
BillDOe
0

Możesz użyć indeksu (dopasowania), aby „kontynuować wyszukiwanie”. Zwróci wartość taką jak VLOOKUP.

{=INDEX(Sheet2!$A$1:$C$5,MATCH(1,(Sheet2!$A$1:$A$5=Sheet1!A1)*(Sheet2!$B$1:$B$5="X"),0),3)}

Zadeklaruj obszar tablicy dla INDEKSU, Arkusz2! $ A $ 1: $ C $ 5, w tym kolumnę daty.

Wywołaj MATCH wewnątrz INDEX, używając „1” jako wartości wyszukiwania, a „1” to „TRUE”

(Arkusz2! $ A $ 1: $ A $ 5 = Arkusz1! A1) będzie równy 1, podobnie jak (Arkusz2! $ B $ 1: $ B $ 5 = „X”), który zwróci 1, gdy pomnożymy je, zwracając „PRAWDA „wartość.

Zamykamy nasz MATCH z „0”, co oznacza, że ​​chcemy dokładnego dopasowania między „1” a naszym drugim argumentem, który pomnożymy.

Zamknij INDEKS kolumną tablicy, do której chcesz się odwoływać, w tym przypadku „3” dla kolumny C, która powinna zawierać datę podaną w komentarzu.

NAJWAŻNIEJSZE, zamiast naciskać ENTER, użyj CTRL + SHIFT + ENTER, który umieści te nawiasy klamrowe wokół formuły {formula}

Oto, jak powinny wyglądać arkusze programu Excel.

Sheet1- Two columns
Billy|INDEX(MATCH)
Paul|drag your INDEX(MATCH)
Mike|drag your INDEX(MATCH)
Jesse|drag your INDEX(MATCH)

Sheet2- Three Columns including Date in "C"
Billy||42450
Paul|X|42450
Jesse| |42451
Billy|X|42452
Mike|X|42452
Danielson
źródło
0

Co powiesz na (zakładając, że kolumny Arkusza2 znajdują się w kolumnach A i B, a kolumna Arkusza1 w kolumnie A), wpisz to w kolumnie B Arkusza 1:

=IF(COUNTIFS(Sheet2!A:A,A1,Sheet2!B:B,"X")>0,"I found it!","I didn't find it")

Działa to, jeśli wiesz, że chcesz poszukać „X”, a następnie zlicza, ile razy znajdzie dwa testy (a) to Bill (ponieważ jego nazwisko jest w A1; po skopiowaniu formuły zrobi to A2, A3 itp., Które będą Paul i Mike itd.) Oraz (b) jest X.

Jeśli jednak nie wiesz, to się nazywa „X”, i chcą się dowiedzieć, co to jest nazywany, to masz problem, bo w jaki sposób Excel wiedzieć, która linia dać? Pusta linia? Linia z „X”, czy linia z „Y” itp.?

Jeśli nie szukamy „x”, ale dowolnej niepustej linii, zrób to samo co powyżej, ale

=IF(COUNTIFS(Sheet2!A:A,A1,Sheet2!B:B,"<>""")>0,"I found it!","I didn't find it")

który szuka czegoś, co nie jest niczym („” jest niczym, <> „” nie jest niczym, „<>” ”„ nie jest niczym w cudzysłowie, aby działało.

Myślę, że i tak działają, ale mówią tylko, czy coś tam jest, a nie to, co to jest :-)


Alternatywnym podejściem jest utworzenie tabeli przestawnej (Wstaw -> Tabela przestawna) i odfiltrowanie pustych miejsc za pomocą filtra, a także umieszczenie kolumn Nazwa i X w etykietach wierszy. Następnie możesz wykonać WYSZUKAJ.PIONOWO w kolumnach tabeli przestawnej, chociaż to nadal nie pomoże, jeśli masz wiele niepustych wpisów dla każdej osoby, ponieważ nadal nie będzie wiedział, którą wyszukać.

Chociaż może się okazać, że tabela przestawna faktycznie daje odpowiedź, której potrzebujesz, bez żadnych dodatkowych formuł, w zależności od tego, czego potrzebujesz.

psymann
źródło