Zasadniczo chcesz wiedzieć, czy którakolwiek komórka G2:R2w jednym arkuszu ma taką samą wartość jak komórka I2w 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 I2na jednym arkuszu i sprawdza, czy znajduje się ona w drugim arkuszu w zakresie G2:R2. Jeśli HLOOKUPznajdzie co najmniej jedną wartość w zakresie G2:R2pasującym do komórki I2w drugim arkuszu, zwraca Ylub w przeciwnym razie nie zwraca wartości.
Używałem, HLOOKUPponieważ podany zakres był zasięgiem poziomym. Jeśli zakres jest zakresem pionowym, możesz użyć VLOOKUPzamiast 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:R2i sprawdza, czy jest w tym wartość w komórce I2drugiego arkusza. Jeśli tak, zwraca, w Yprzeciwnym 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ć Yniepoprawnie. Na przykład: Jeśli Sheet1!I2ma wartość 123i Sheet!G2ma wartość 12i Sheet!H2ma wartość 34, ta metoda będzie nadal wyświetlana, Yponieważ „duży ciąg” będzie zawierał „1234 ...”, a wartość 123bę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, ORaby sprawdzić, czy którakolwiek z wartości z zakresu G2:R2znajduje się w komórce I2drugiego arkusza. Jeśli operator boolowski znajdzie co najmniej jedną wartość pasującą do komórki I2w drugim arkuszu, zwraca Ylub w przeciwnym razie nie zwraca wartości.
Metoda 4: Rozłóż wzór
- Jeśli chcesz tylko używać
IFwarunków (z jakiegoś powodu nie mogę sobie wyobrazić), możesz rozłożyć IFwarunki na wiele komórek, a następnie użyć wyniku tych komórek, aby ustalić ostateczny wynik. Na przykład: możesz mieć kilka IFwarunków w jednej komórce i możesz użyć wyniku tego w innej komórce wraz z kilkoma innymi IFwarunkami i tak dalej.
W komórce A1arkusza 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 A2arkusza 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 A3arkusza:
=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 Ifinstrukcji.
Uwaga: Dane wyjściowe obu tych formuł są takie same, jak podana formuła.