Excel: Używanie zagnieżdżonych instrukcji IF zawierających znaki wieloznaczne


1

Obecnie pracuję nad projektem, w którym mam listę wizyt pacjentów w klinice. Każdemu pacjentowi przypisany jest główny dostawca opieki, ale nie zawsze jest to dostawca świadczenia podczas danej wizyty. Moim zadaniem jest sprawdzenie, ile wizyt w klinice odbyło się w miejscu, w którym pacjent widział PCP. Naprawdę rozwiązałem ten problem na tej stronie kilka dni temu i mogłem użyć instrukcji IF w Excelu, aby to wszystko ustalić.

(Uwaga: w sposobie pobierania danych z bazy danych pole PCP zawiera pełną nazwę i poświadczenia dostawcy, podczas gdy pole Renderowanie zawiera tylko nazwisko)

=IF(COUNTIF([@PCP],"*"&[@Rendering]&"*")>0,"YES","")

Działa idealnie. Problem polega na tym, że dowiedziałem się o nowym przełomie: ponieważ operatorzy kliniki pracują w zespołach, mówi się, że pacjent widział PCP, jeśli odwiedził kogoś z zespołu tego PCP. Nie mogę już dłużej porównywać pól PCP i Rendering na mojej liście Excel.

Wiem, co trzeba zrobić, ale nie jestem pewien, jak to zrobić. Wszystkie dotychczasowe próby doprowadziły do ​​niespecyficznych błędów składniowych Excela.

Spróbuję ustawić to trochę lepiej dla wszystkich. Załóżmy, że istnieją dwa zespoły trzech dostawców.

Smith, John MD         Brown, Bob MD
Jones, Mike MD         Green, Ann MD
Doe, Jane MD           White, Mary MD

Moja tabela pokazuje nazwy renderowania i PCP obok siebie i chciałem dodać kolejną kolumnę zawierającą instrukcję IF, która wykonuje sprawdzenie (prawdopodobnie coś, co po prostu mówi „TAK” dla pozytywnych wyników i pozostawia wszystko inne puste). Powinno to wyglądać mniej więcej tak:

Rendering              PCP                     Seen PCP/team?
---------------------------------------------------------------
Smith                  Smith, John MD          YES
Smith                  Jones, Mike MD          YES
Brown                  Smith, John MD
Green                  Brown, Bob MD           YES
Doe                    White, Mary MD
Doe                    Jones, Mike MD          YES

Zatem wynik powinien być negatywny tylko wtedy, gdy nazwy renderowania i PCP pochodzą z różnych zespołów. A ponieważ teraz sprawdzam listę nazw (lub ciągów tekstowych) zamiast prostego porównania między komórkami, nie mogę już dłużej używać moich parametrów @PCPi @Renderingparametrów (chyba że czegoś mi brakuje). Przedstawiam serię zagnieżdżonych IFinstrukcji i poświęciłem trochę czasu na szkicowanie podstawowej struktury tego, jak będzie wyglądać.

=IF(@PCP = Smith AND @Rendering = Smith, "YES", IF(@PCP = Smith AND @Rendering = Jones, "YES", IF(@PCP = Smith AND @Rendering = Doe, "YES", IF(@PCP = Jones AND @Rendering = Jones, "YES", IF(@PCP = Jones AND @Rendering = Smith, "YES", IF(@PCP = Jones AND @Rendering = Doe, "YES", IF(@PCP = Doe AND @Rendering = Doe, "YES", IF(@PCP = Doe AND @Rendering = Smith, "YES", IF(@PCP = Doe AND @Rendering = Jones, "YES", "")))))))))

Oczywiście ta składnia nie jest w pełni poprawna i to tylko jedna z dwóch drużyn (tak naprawdę mam do czynienia z czterema drużynami w prawdziwym życiu), ale czy jestem na dobrej drodze? Próbowałem zrobić tylko skondensowaną wersję z tylko dwoma dostawcami, tak jak eksperyment, a program Excel dał mi po prostu wyskakujące okienko „Wygląda na to, że próbujesz napisać formułę ...” i nie powiedział mi, co właściwie jest nie tak. Wiem, że będę musiał użyć symboli wieloznacznych, chyba że chcę wpisać pełne nazwy dostawców w polu PCP ...

Czy ktoś ma jakieś sugestie, jak to zrobić?

Odpowiedzi:


1

Jeśli masz listę odwiedzin Sheet1i listę drużyn Sheet2. Zrobiłbym (włączony Sheet1 C2):

=IF(AND(COUNTIF(Sheet2!$A$1:$A$3,"*"&A2&"*")>0,COUNTIF(Sheet2!$A$1:$A$3,B2)>0),"YES",IF(AND(COUNTIF(Sheet2!$B$1:$B$3,"*"&A2&"*")>0,COUNTIF(Sheet2!$B$1:$B$3,B2)>0),"YES",""))

Oto próbka pliku: https://1drv.ms/x/s!Ao8EzDmtlA0JhiS_KbIZSnlWSno4


Myślę, że to powinno zadziałać! Będę się z tym bawił i wrócę, aby zaznaczyć odpowiedź, jeśli będę zadowolony z wyników. Dziękujemy za dołączenie przykładowego pliku - to bardzo pomocne
EJF

Aktualizacja: dokładnie tego potrzebowałem. Zmieniłem formułę, aby uwzględnić wszystkie cztery nasze rzeczywiste zespoły i działa idealnie. Dzięki wielkie!
EJF

0

Musisz utworzyć Nazwę zespołu, na przykład Zespół A (Smith, John MD i Jones, Mike MD i Doe, Jane MD) Zespół B (Brown, Bob MD i Green, Ann MD i White, Mary MD) możesz dodać wszystkie swoje drużyny w 2 kolumnach jedna dla PCP druga nazwa drużyny (A, B, C i D) Użyj Vlookup, aby znaleźć nazwę drużyny dla każdego renderowania i PCP i porównać ją z Jeśli, jeśli masz ten sam zespół, wpisz TAK TAK „” pusty .

=IF(VLOOKUP("*"&A2&"*",$F$2:$G$7,2,FALSE)=VLOOKUP(B2,$F$2:$G$7,2,FALSE),"YES","")

=if(vlookup("*"&@Rendering&"*",PCP:Team,2,False)=vlookup(@PCP,PCP:Team,2,False),"YES","")

Twoje dane są w A1: B7 jako druga tabela (Rendering, PCP, Seen ...)
F2: G7 to tablica 2 kolumn (PCP: Zespół)
2 w Vlookup, aby przeczytać drugą kolumnę Nazwa zespołu
Fałsz, aby mieć dokładny wynik

wprowadź opis zdjęcia tutaj

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.