Mam określone dane w arkuszu 1, a niektóre inne dane w arkuszu 2.
Muszę porównać określoną wartość (Var1) z arkusza 1 i zwrócić określoną wartość z arkusza 2 i zwrócić wynik dla tego samego. Udało mi się to z tą formułą
=IF(COUNTIF(Sheet2!A:A, A2), "Yes", "No")
Arkusz 1
+------+------+---------+---------+
| var1 | var2 | result1 | result2 |
+------+------+---------+---------+
| | | | |
| abc | 123 | yes | yes |
| | | | |
| bcd | 234 | yes | no |
| | | | |
| cde | 456 | no | blank |
+------+------+---------+---------+
Arkusz 2
+-------+-------+-------+
| List1 | List2 | List3 |
+-------+-------+-------+
| abc | 123 | |
| bcd | | 123 |
| def | | |
+-------+-------+-------+
Muszę wyszukać var1 na liście 1 i var2 na liście 2 i liście 3
Chcę porównać inną wartość (Var2) w Arkuszu 2, tylko jeśli poprzedni wynik to „Tak”, co można łatwo osiągnąć za pomocą funkcji JEŻELI; ale haczyk polega na tym, że powinien porównywać wartości tylko z określonych wierszy Arkusza 2, które powinny być plus (+) i minus (-) 2 wiersze, od których znaleziono War1 w Arkuszu 2.
Nie jestem biegły w VBA, ale próbowałem swoich sił w formułach Excel.
Odpowiedzi:
Układanie puzzli było fajne :)
Korzystając z twojego przykładu, umieściłem tę funkcję w
C2
(pod 'result1') i wypełniłem ją tablicą:I dla
D2
„wynik2”:Ponownie, tablica wypełnij to i powinno działać :)
źródło
Możesz użyć OR () i porównać, jeśli masz plus i minus. Coś takiego:
Następnie możesz zmienić formułę „Ok”.
Czy tego potrzebujesz?
źródło
Próbować:
=IF(C2<>"Yes","",IF(COUNTIF(OFFSET(Sheet2!$B$1:$C$5,MAX(0,MATCH(A2,Sheet2!A:A,0)-3),0),B2)>0,"Yes","No"))
Zakładam, że:
var1
jest unikalnym kluczem, jak powiedziałeś. W przeciwnym razie będzie to pasować tylko do pierwszego wystąpienia.var2
się zarównolist1
ilist2
. W przeciwnym razie należy zawęzić okno wyszukiwania do$B$1:$B$5
. Jeśli po prawej stronie jest więcej list, po prostu dodaj kolumny do okna wyszukiwania.Daj mi znać, jeśli masz jakieś pytania dotyczące tego, jak to działa.
źródło