Zasadniczo chcesz wiedzieć, czy którakolwiek komórka G2:R2
w jednym arkuszu ma taką samą wartość jak komórka I2
w innym arkuszu.
Można to zrobić na kilka sposobów. Najłatwiej przychodzi na to, ponieważ sprawdzane wartości znajdują się w ciągłym zakresie:
Metoda 1: HLOOKUP / VLOOKUP
=IF(ISERROR(HLOOKUP(Sheet1!I2,Sheet!G2:R2,1,FALSE)),"","Y")
Ta funkcja sprawdza wartość w komórce I2
na jednym arkuszu i sprawdza, czy znajduje się ona w drugim arkuszu w zakresie G2:R2
. Jeśli HLOOKUP
znajdzie co najmniej jedną wartość w zakresie G2:R2
pasującym do komórki I2
w drugim arkuszu, zwraca Y
lub w przeciwnym razie nie zwraca wartości.
Używałem, HLOOKUP
ponieważ podany zakres był zasięgiem poziomym. Jeśli zakres jest zakresem pionowym, możesz użyć VLOOKUP
zamiast tego.
Jeśli z jakiegokolwiek powodu wartości nie mieszczą się w ciągłym zakresie, możesz użyć pozostałych 2 poniższych metod.
Oto inny sposób:
Metoda 2: SKONCENTROWANIE
=IF(ISERROR(FIND(Sheet1!I2,CONCATENATE(Sheet!G2,Sheet!H2,Sheet!I2,Sheet!J2,Sheet!K2,Sheet!L2,Sheet!M2,Sheet!N2,Sheet!O2,Sheet!P2,Sheet!Q2,Sheet!R2))),"","Y")
Zasadniczo tworzy to duży ciąg wszystkich wartości w komórkach G2:R2
i sprawdza, czy jest w tym wartość w komórce I2
drugiego arkusza. Jeśli tak, zwraca, w Y
przeciwnym razie nie zwraca wartości.
Zauważ, że ponieważ ta metoda tworzy duży ciąg ze wszystkich danych w zakresie komórek, które należy wyszukać, w zależności od rodzaju danych w tych komórkach, może zwrócić Y
niepoprawnie. Na przykład: Jeśli Sheet1!I2
ma wartość 123
i Sheet!G2
ma wartość 12
i Sheet!H2
ma wartość 34
, ta metoda będzie nadal wyświetlana, Y
ponieważ „duży ciąg” będzie zawierał „1234 ...”, a wartość 123
będzie w tym ciągu.
Jeszcze innym sposobem na to jest:
Metoda 3: Operator boolowski - LUB
[@ fixer1234 wspomniał o tym pierwszy]
=IF(OR((Sheet!G2=Sheet1!I2), (Sheet!H2=Sheet1!I2),(Sheet!I2=Sheet1!I2), (Sheet!J2=Sheet1!I2), (Sheet!K2=Sheet1!I2), (Sheet!L2=Sheet1!I2), (Sheet!M2=Sheet1!I2), (Sheet!N2=Sheet1!I2), (Sheet!O2=Sheet1!I2), (Sheet!P2=Sheet1!I2), (Sheet!Q2=Sheet!I2), (Sheet!R2=Sheet1!I2) ),"Y","")
Wykorzystuje operator boolowski, OR
aby sprawdzić, czy którakolwiek z wartości z zakresu G2:R2
znajduje się w komórce I2
drugiego arkusza. Jeśli operator boolowski znajdzie co najmniej jedną wartość pasującą do komórki I2
w drugim arkuszu, zwraca Y
lub w przeciwnym razie nie zwraca wartości.
Metoda 4: Rozłóż wzór
- Jeśli chcesz tylko używać
IF
warunków (z jakiegoś powodu nie mogę sobie wyobrazić), możesz rozłożyć IF
warunki na wiele komórek, a następnie użyć wyniku tych komórek, aby ustalić ostateczny wynik. Na przykład: możesz mieć kilka IF
warunków w jednej komórce i możesz użyć wyniku tego w innej komórce wraz z kilkoma innymi IF
warunkami i tak dalej.
W komórce A1
arkusza możesz mieć następujące elementy :
=IF(Sheet!$G$2=Sheet1!I2,"Y",IF(Sheet!$H2=Sheet1!I2,"Y", IF(Sheet!$I2=Sheet1!I2,"Y",IF(Sheet!$J2=Sheet1!I2,"Y", IF(Sheet!$K2=Sheet1!I2,"Y","")))))
Następnie w komórce A2
arkusza mogą znajdować się następujące elementy :
=IF(A1="Y", "Y", IF(Sheet!$L2=Sheet1!I2,"Y", IF(Sheet!$M2=Sheet1!I2,"Y",IF(Sheet!$N2=Sheet1!I2,"Y", ""))))
Wreszcie możesz mieć następujące komórki w komórce A3
arkusza:
=IF(A2="Y","Y",IF(Sheet!$O2=Sheet1!I2,"Y",IF(Sheet!$P2=Sheet1!I2,"Y", IF(Sheet!$Q2=Sheet1!I2,"Y",IF(Sheet!$R2=Sheet1!I2,"Y","")))))
Metoda 5: VBA
Użyj VBA, jeśli nie masz nic przeciwko, aby utworzyć niestandardową funkcję zdefiniowaną przez użytkownika, w której możesz mieć tyle zagnieżdżonych If
instrukcji.
Uwaga: Dane wyjściowe obu tych formuł są takie same, jak podana formuła.