Dynamiczne hiperłącze w ramach funkcji JEŻELI

0

Zwykle więc nie publikuję na stronach takich jak te, ale używam ich dość często. Dziękuję bardzo, jeśli wpadłem tutaj tylko po to, by zwiększyć moją naukę. Jednak dziś wieczorem jestem bardzo sfrustrowany. Oto moje wyzwanie: zagnieżdżam formułę hiperłącza w instrukcji if do dziennika cyfrowego, który stworzyłem na podstawie tego, czy są to informacje już wprowadzone do dziennika. Jeśli tak, link do następnego wiersza wprowadzania danych; jeśli ich nie ma, połącz się z pierwszym rzędem. Formułę stworzyłem z powodzeniem przy użyciu wielu łączy, jednak nie mogę jej uruchomić, jeśli formuła opiera się na unikalnym numerze umieszczonym w innej komórce (będącej nazwą arkusza dynamicznego, którą chcę osiągnąć). Numer to numer w pustym pojemniku, a arkusze są nazywane tym numerem. Muszę użyć jednej formuły hiperłącza zamiast setek, aby mój program miał trwały, dynamiczny interfejs, który nie wymaga ode mnie aktualizacji za każdym razem, gdy nasza organizacja dodaje więcej zasobów.

Oto przykład działającej formuły:

=IF('1016'!$J$7="", HYPERLINK("#'1016'!$J$7",""), HYPERLINK("#INDEX('1016'!$j$7:$j$56,MATCH(999999,'1016'!$j$7:$j$56,1)+1)",""))

To właśnie daje mi więcej siwych włosów, jak mówię:

=IF('"&X2&"'!$J$7="", HYPERLINK("#'"&X2&"'!$J$7",""), HYPERLINK("#INDEX('"&X2&"'!$j$7:$j$56,MATCH(999999,'"&X2&"'!$j$7:$j$56,1)+1)",""))

Zatem część formuły & amp; X2 i ... to w zasadzie jakikolwiek numer kosza, który użytkownik może wprowadzić do jednej komórki, a formuła będzie linkować do dziennika dla tego kosza. W rzeczywistości są to zdjęcia wklejone w tło arkuszy, które sprawiają, że obrazek wydaje się być linkiem do kliknięcia w ten sposób „” przyjaznej nazwy „pustej”.

To, co jest tak frustrujące, to to, że oba moje warunki hiperłącza działają same w sobie, ale kiedy podłączam tę samą dokładną składnię do części logicznej mojej funkcji if, łącze arkusza nie będzie działać, jeśli dziennik wprowadzania danych jest pusty. Uważam, że mam hiperłącze do fałszywej części instrukcji if, ale bez względu na to, co spróbuję, nie mogę uzyskać prawdziwej części mojej instrukcji if. Dostaję wiadomość z informacją, że link jest w zasadzie nieprawidłowy, błąd #REF lub błąd #VALUE. Przesunąłem moje skróty, moje znaki cudzysłowu, wypróbowałem funkcje łączenia zamiast powyższej składni, wypiłem więcej, zrobiłem przerwy, nazywacie to, nic nie działa. Poważnie się w tym momencie wściekam. Proszę pomóż mi, jeśli możesz. Wiem, że to musi być prosta poprawka. Jeszcze raz dziękuję. Jeśli muszę opublikować mój arkusz, nie będę w tym momencie pewien, jak to zrobić. Och, tak na marginesie, szukałem odpowiedzi bez końca w sieci i wygląda na to, że jestem jedyną osobą na naszej planecie, która próbuje to zrobić, a nasza organizacja marszczy brwi na jakikolwiek kod, proszę, bez VBA. Dziękuję Ci

Randy Hall
źródło
1
Testujesz Cell J7, jeśli Blank to Hyper link ,,,,, i X2 i amp; nie wygląda jak nazwa arkusza, J7 musi być poprzedzony prawidłową nazwą arkusza, tak jak poprzednia formuła. A składnia do tworzenia dynamicznego hiperłącza również jest zła, powinna to być = HYPERLINK ("# MMP1!" I amp; D1).
Rajesh S
Lepiej opublikuj to, co dokładnie próbujesz osiągnąć, pomoże nam stworzyć prawidłową Formułę.
Rajesh S
Dzięki Rajesh wyjaśniłem mój post dalej. Mam nadzieję, że to pomoże.
Randy Hall

Odpowiedzi:

0

W twoim pierwszym przykładzie '1016'!$J$7="" sprawdza, czy wartość komórki J7 na arkuszu 1016 jest pusta.

W twoim drugim przykładzie '"&X2&"'!$J$7="" sprawdza, czy wartość komórki J7 na arkuszu i X2 i jest pusty, co nie powiedzie się, jeśli nie będzie mógł znaleźć arkusza o nazwie & amp; X2 i amp;

The & amp; ” operuj konkatenuje łańcuchy, a nie odwołania do komórek, więc aby poprawnie zbudować odwołanie, musisz traktować je wszystkie jako ciąg znaków i odpowiednio sortować cytaty i konkatenację: "'" & X2 &"'!$J7". Jednak po prostu testowałbyś wartość jednego ciągu na innym. Aby przekonwertować łańcuch na odwołanie do komórki, należy użyć INDIRECT(). Coś takiego powinno działać:

=IF( INDIRECT("'" & X2 & "'!$J$7",TRUE), true hyperlink, false hyperlink)

The TRUE parametr jest wymagany, aby powiedzieć INDIRECT, że łańcuch używa stylu odwołania do komórki w stylu A1, a nie domyślnego odniesienia R1C1.

Musisz także naprawić swoje dynamiczne hiperłącza (prawdopodobnie przez połączenie ciągu „#” z przodu formuły).

JRI
źródło
Przepraszam za zamieszanie, to działa, aby za każdym razem zwracać fałszywą część mojej formuły: = JEŻELI ("'" & amp; X2 i ""! $ J $ 7 "=" ", HYPERLINK (" # "" i „'! $ J $ 7”, „”), HYPERLINK („# INDEX (”) i X2 i „”! $ J 7: $ j 56 USD, MATCH (999999, „” i X2 i „”! $ J $ 7: $ j $ 56,1) +1) "," ") & amp; X2 i amp; mogą być użyte w konkatenacie, ale nie są dokładnie potrzebne. Twoja sugestia łączy się z pierwszym wpisem danych za każdym razem. Jeśli jest pusta, daje ja nieprawidłowy błąd odniesienia, więc prawdziwa część nie działa poprawnie, a fałszywy wynik, który chcę osiągnąć, zwraca wartość, którą chciałbym uzyskać.
Randy Hall
Przy okazji bardzo dziękuję, doceniam to, że w to walczysz.
Randy Hall
Przypuszczam, że powinienem wyjaśnić, że & amp; X2 & amp; to po prostu sztuczna komórka, którą testuję, aby sprawdzić, czy mogę wpisać dowolną liczbę, zakładając, że numer ma arkusz, a formuła hiperłącza zwróci ten arkusz. Tak więc to komórka, w której kończą użytkownik, wpisze numer kosza w celu kliknięcia łącza i uzyskania dostępu do jego arkusza, niezależnie od tego, czy jest to X2, czy A1, czy cokolwiek innego. Mam nadzieję, że to ma sens.
Randy Hall
To, co mnie wprawiło w zakłopotanie, to fakt, że kiedy izoluję hiperłącze TRUE, tzn. = HYPERLINK („#” ”i amp;„ A! ”$ J $ 7”, „”), działa to dobrze, ale nie zadziała dla życie mnie w oświadczeniu if. To prawie tak, jakbym naruszył pewne niestabilne reguły odwołań do komórek w formułach hiperłączy
Randy Hall
Zarówno prawdziwe, jak i fałszywe hiperłącza działają dobrze samodzielnie. Nigdy nie widziałem, aby prawdziwe lub fałszywe stwierdzenie unieważniało logikę. do licha!
Randy Hall