Spis treści
Ten samouczek Excel INDIRECT wyjaśnia składnię funkcji, podstawowe zastosowania i zapewnia szereg przykładów formuł, które pokazują, jak korzystać z INDIRECT w programie Excel.
W programie Microsoft Excel istnieje bardzo wiele funkcji, niektóre są łatwe do zrozumienia, inne wymagają długiej nauki, a te pierwsze są używane częściej niż te drugie. A jednak Excel INDIRECT jest jedną z nich. Ta funkcja Excela nie wykonuje żadnych obliczeń, nie ocenia żadnych warunków ani testów logicznych.
No właśnie, czym jest funkcja INDIRECT w Excelu i do czego jej używam? To bardzo dobre pytanie i mam nadzieję, że wyczerpującą odpowiedź otrzymasz za kilka minut, gdy skończysz czytać ten poradnik.
Funkcja INDIRECT w Excelu - składnia i podstawowe zastosowania
Jak sama nazwa wskazuje, funkcja Excel INDIRECT służy do pośredniego odwoływania się do komórek, zakresów, innych arkuszy lub skoroszytów. Innymi słowy, funkcja INDIRECT pozwala na tworzenie dynamicznych odwołań do komórek lub zakresów, zamiast ich twardego kodowania. W rezultacie można zmienić odwołanie w formule bez zmiany samej formuły. Co więcej, te pośrednie odwołania nie zmienią się, gdy pojawią się nowe wiersze lub kolumny.są wstawiane do arkusza lub gdy usuwasz istniejące.
Wszystko to może być łatwiejsze do zrozumienia na podstawie przykładu. Jednak aby móc napisać formułę, nawet najprostszą, trzeba znać argumenty funkcji, prawda? Przyjrzyjmy się więc najpierw szybko składni Excel INDIRECT.
Składnia funkcji INDIRECT
Funkcja INDIRECT w Excelu zwraca odwołanie do komórki z ciągu tekstowego. Ma dwa argumenty, pierwszy jest wymagany, a drugi opcjonalny:
INDIRECT(ref_text, [a1])ref_text - jest odwołaniem do komórki, lub odwołaniem do komórki w postaci łańcucha tekstowego, lub nazwanego zakresu.
a1 - jest wartością logiczną określającą jaki typ referencji zawiera argument ref_text:
- Jeśli TRUE lub pominięty, ref_text jest interpretowany jako odniesienie do komórki w stylu A1.
- Jeśli FALSE, ref_text jest traktowany jako referencja R1C1.
Chociaż typ referencji R1C1 może być przydatny w niektórych sytuacjach, prawdopodobnie będziesz chciał używać znanych referencji A1 przez większość czasu. Zresztą prawie wszystkie formuły INDIRECT w tym samouczku będą używać referencji A1, więc będziemy pomijać drugi argument.
Podstawowe zastosowanie funkcji INDIRECT
Aby wnikliwie zapoznać się z funkcją, napiszmy prostą formułę, która demonstruje, jak używa się INDIRECT w Excelu.
Załóżmy, że w komórce A1 masz liczbę 3 i tekst A1 w komórce C1. Teraz umieść formułę =INDIRECT(C1)
w każdej innej komórce i zobaczyć co się stanie:
- Funkcja INDIRECT odwołuje się do wartości w komórce C1, czyli A1.
- Funkcja jest kierowana do komórki A1, gdzie wybiera wartość do zwrotu, którą jest liczba 3.
Tak więc, to co funkcja INDIRECT faktycznie robi w tym przykładzie to. konwersja ciągu tekstowego na odwołanie do komórki .
Jeśli uważasz, że to nadal ma bardzo mało praktycznego sensu, to proszę, wytrzymaj ze mną, a pokażę Ci jeszcze kilka formuł, które ujawniają prawdziwą moc funkcji INDIRECT w Excelu.
Jak używać INDIRECT w Excelu - przykłady formuł
Jak pokazano w powyższym przykładzie, można użyć funkcji INDIRECT Excela, aby umieścić adres jednej komórki w drugiej jako zwykły ciąg tekstowy i uzyskać wartość pierwszej komórki przez odwołanie do drugiej. Jednak ten banalny przykład nie jest niczym więcej niż podpowiedzią możliwości INDIRECT.
Podczas pracy z prawdziwymi danymi funkcja INDIRECT może przekształcić dowolny ciąg tekstowy w odniesienie, w tym bardzo złożone ciągi, które budujesz, wykorzystując wartości innych komórek i wyniki zwracane przez inne formuły Excela. Ale nie stawiajmy wozu przed koniem i przejedźmy przez kilka formuł Excel Indirect, po kolei.
Tworzenie odwołań pośrednich z wartości komórek
Jak pamiętasz, funkcja INDIRECT w Excelu umożliwia stosowanie stylów referencji A1 i R1C1. Zazwyczaj nie można używać obu stylów jednocześnie w jednym arkuszu, można jedynie przełączać się między tymi dwoma typami referencji poprzez Plik> Opcje> Formuły > Pole wyboru R1C1 Jest to powód, dla którego użytkownicy Excela rzadko rozważają użycie R1C1 jako alternatywnego sposobu odniesienia.
W formule INDIRECT możesz użyć obu typów referencji na tym samym arkuszu, jeśli chcesz. Zanim przejdziemy dalej, możesz chcieć poznać różnicę między stylami referencji A1 i R1C1.
Styl A1 to zwykły typ odwołania w programie Excel, który odnosi się do kolumny, po której następuje numer wiersza. Na przykład B2 odnosi się do komórki w miejscu przecięcia kolumny B i wiersza 2.
Styl R1C1 Jest to odwrotny typ referencji - wiersze, po których następują kolumny, do czego trzeba się trochę przyzwyczaić : ) Na przykład R4C1 odnosi się do komórki A4, która znajduje się w wierszu 4, kolumnie 1 w arkuszu. Jeśli po literze nie występuje żadna cyfra, to odnosisz się do tego samego wiersza lub kolumny.
A teraz zobaczmy, jak funkcja INDIRECT obsługuje odwołania do A1 i R1C1:
Jak widzisz na powyższym zrzucie ekranu, trzy różne formuły Pośredniej zwracają ten sam wynik. Czy już zorientowałeś się dlaczego? Założę się, że tak : )
- Formuła w komórce D1:
=INDIRECT(C1)
Jest to najprostsze rozwiązanie. Formuła odwołuje się do komórki C1, pobiera jej wartość - ciąg tekstowy A2 , przekształca go w odwołanie do komórki, kieruje się do komórki A2 i zwraca jej wartość, która wynosi 222.
- Formuła w komórce D3:
=INDIRECT(C3,FALSE)
FALSE w 2 argumencie wskazuje, że wartość referowana (C3) powinna być traktowana jak odwołanie do komórki R1C1, czyli numer wiersza, po którym następuje numer kolumny. Dlatego nasza formuła INDIRECT interpretuje wartość w komórce C3 (R2C1) jako odwołanie do komórki w koniunkcji wiersza 2 i kolumny 1, czyli komórki A2.
Tworzenie odwołań pośrednich z wartości komórek i tekstu
Podobnie jak w przypadku tworzenia odwołań z wartości komórek, można łączyć ze sobą ciąg tekstowy i odniesienie do komórki w ramach formuły INDIRECT, połączonej operatorem konkatenacji (&).
W poniższym przykładzie formuła: =INDIRECT("B"&C2) zwraca wartość z komórki B2 na podstawie następującego łańcucha logicznego:
Funkcja INDIRECT konkatenuje elementy zawarte w argumencie ref_text - tekst B i wartość w komórce C2 -> wartością w komórce C2 jest liczba 2, co powoduje odwołanie do komórki B2 -> formuła przechodzi do komórki B2 i zwraca jej wartość, którą jest liczba 10.
Używanie funkcji INDIRECT z nazwanymi zakresami
Oprócz tworzenia odwołań z komórek i wartości tekstowych, można uzyskać funkcję Excel INDIRECT, aby odwołać się do nazwane zakresy .
Załóżmy, że w swoim arkuszu masz następujące nazwane zakresy:
- Jabłka - B2:B6
- Banany - C2:C6
- Cytryny - D2:D6
Aby utworzyć dynamiczne odwołanie w Excelu do dowolnego z wyżej wymienionych zakresów, wystarczy wpisać jego nazwę do jakiejś komórki, np. G1, i odwołać się do tej komórki za pomocą formuły Pośredni =INDIRECT(G1)
.
A teraz możesz zrobić krok dalej i zaimplantować tę formułę INDIRECT w innych funkcjach Excela, aby obliczyć sumę i średnią wartości w danym nazwanym zakresie lub znaleźć maksymalną / minimalną wartość w obrębie szału:
=SUMA(INDIRECT(G1))
=ŚREDNIA(INDIRECT(G1))
=MAX(INDIRECT(G1))
=MIN(INDIRECT(G1))
Teraz, gdy masz już ogólne pojęcie o tym, jak używać funkcji INDIRECT w Excelu, możemy eksperymentować z bardziej potężnymi formułami.
Formuła INDIRECT do dynamicznego odwoływania się do innego arkusza
Przydatność funkcji INDIRECT w Excelu nie ogranicza się do budowania "dynamicznych" odwołań do komórek. Możesz ją wykorzystać również do odwoływania się "w locie" do komórek w innych arkuszach, a oto jak to zrobić.
Załóżmy, że masz pewne ważne dane w Arkuszu 1 i chcesz wyciągnąć te dane w Arkuszu 2. Poniższy zrzut ekranu demonstruje, jak formuła pośrednia programu Excel może obsłużyć to zadanie:
Rozbijmy formułę, którą widzisz na zrzucie ekranu i zrozumiemy.
Jak wiadomo, zwykły sposób odwoływania się do innego arkusza w programie Excel polega na wpisaniu nazwy arkusza, a następnie wykrzyknika i odwołania do komórki / zakresu, np. SheetName!Zakres Ponieważ nazwa arkusza często zawiera spację (spacje), lepiej zawrzeć ją (nazwę, nie spację : ) w pojedynczym cudzysłowie, aby uniknąć błędu, np. 'My Sheet!'$A$1 .
Teraz wystarczy wpisać nazwę arkusza do jednej komórki, adres komórki do drugiej, połączyć je w ciąg tekstowy i podać ten ciąg do funkcji INDIRECT. Pamiętaj, że w ciągu tekstowym każdy element inny niż adres komórki lub numer musisz zamknąć w cudzysłów i połączyć wszystkie elementy ze sobą za pomocą operatora konkatenacji (&).
Biorąc pod uwagę powyższe, otrzymujemy następujący wzór:
INDIRECT("'" & Nazwa arkusza & "'!" & Komórka do pobierania danych z )Wracając do naszego przykładu, umieszczasz nazwę arkusza w komórce A1, a adresy komórek wpisujesz w kolumnie B, jak pokazano na powyższym zrzucie ekranu. W rezultacie otrzymujesz następującą formułę:
INDIRECT("'" & $A$1 & "'!" & B1)
Zwróć również uwagę, że jeśli kopiujesz formułę do wielu komórek, musisz zablokować odwołanie do nazwy arkusza za pomocą bezwzględnych odniesień do komórek, takich jak $A$1.
Uwagi
- Jeśli któraś z komórek zawierających nazwę i adres komórki 2. arkusza (A1 i B1 w powyższej formule) jest pusta, Twoja formuła INDIRECT zwróci błąd. Aby temu zapobiec, możesz zawinąć funkcję INDIRECT w funkcję IF:
IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))
- Aby formuła INDIRECT odwołująca się do innego arkusza działała poprawnie, arkusz odwołujący się powinien być otwarty, w przeciwnym razie formuła zwróci błąd #REF. Aby uniknąć błędu, można użyć funkcji IFERROR, która wyświetli pusty łańcuch, niezależnie od tego, jaki błąd wystąpi:
IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")
Tworzenie dynamicznego odwołania do innego skoroszytu w programie Excel
Formuła Pośrednia odwołująca się do innego skoroszytu Excela opiera się na tym samym podejściu co odwołanie do innego arkusza kalkulacyjnego. Wystarczy, że oprócz nazwy arkusza i adresu komórki podasz nazwę skoroszytu.
Dla ułatwienia zacznijmy od zrobienia odwołania do innej książki w zwykły sposób (apostrofy są dodawane w przypadku, gdy Twoje nazwy książek i/lub arkuszy zawierają spacje):
'[nazwa_ksiazki.xlsx]nazwa_arkusza'!Zakres
Zakładając, że nazwa książki znajduje się w komórce A2, nazwa arkusza w B2, a adres komórki w C2, otrzymujemy następującą formułę:
=INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)
Ponieważ nie chcesz, aby komórki zawierające nazwy książki i arkusza zmieniały się podczas kopiowania formuły do innych komórek, blokujesz je, stosując bezwzględne odwołania do komórek, odpowiednio $A$2 i $B$2.
A teraz możesz łatwo napisać własne dynamiczne odwołanie do innego skoroszytu Excela, używając następującego wzorca:
=INDIRECT("'[" & Nazwa książki & "]" & Nazwa arkusza & "'!" & Adres komórki )Uwaga. skoroszyt, do którego odwołuje się formuła, powinien być zawsze otwarty, w przeciwnym razie funkcja INDIRECT wyrzuci błąd #REF. Jak zwykle, funkcja IFERROR może pomóc uniknąć tego błędu:
=IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")
Używanie funkcji Excel INDIRECT do zablokowania odwołania do komórki
Normalnie Microsoft Excel zmienia odwołania do komórek, gdy wstawiasz nowe lub usuwasz istniejące wiersze lub kolumny w arkuszu. Aby temu zapobiec, możesz użyć funkcji INDIRECT do pracy z odwołaniami do komórek, które powinny pozostać nienaruszone w każdym przypadku.
Aby zobrazować różnicę, proszę wykonać następujące czynności:
- Wpisz dowolną wartość w dowolnej komórce, powiedzmy liczbę 20 w komórce A1.
- Odwołaj się do A1 z dwóch innych komórek na różne sposoby:
=A1
oraz=INDIRECT("A1")
- Wstawić nowy wiersz nad wierszem 1.
Widzisz, co się dzieje? równy Operator logiczny nadal zwraca 20, ponieważ jego formuła została automatycznie zmieniona na =A2. Komórka z formułą INDIRECT zwraca teraz 0, ponieważ formuła nie została zmieniona po wstawieniu nowego wiersza i nadal odnosi się do komórki A1, która jest obecnie pusta:
Po tej demonstracji możesz odnieść wrażenie, że funkcja INDIRECT jest bardziej uciążliwa niż pomocna. Dobrze, spróbujmy to zrobić w inny sposób.
Załóżmy, że chcesz zsumować wartości w komórkach A2:A5, a możesz to łatwo zrobić za pomocą funkcji SUM:
=SUM(A2:A5)
Chcesz jednak, aby formuła pozostała niezmieniona, niezależnie od tego, ile wierszy zostanie usuniętych lub wstawionych. Najbardziej oczywiste rozwiązanie - użycie bezwzględnych odniesień - nie pomoże. Aby się upewnić, wprowadź formułę =SUMA($A$2:$A$5)
w jakiejś komórce, wstawić nowy wiersz, powiedzmy w wierszu 3, i... znaleźć formułę zamienioną na =SUMA($A$2:$A$6)
.
Oczywiście taka uprzejmość programu Microsoft Excel będzie działać dobrze w większości przypadków. Niemniej jednak mogą istnieć scenariusze, w których nie chcesz, aby formuła została automatycznie zmieniona. Rozwiązaniem jest użycie funkcji INDIRECT, jak poniżej:
=SUMA(INDIRECT("A2:A5"))
Ponieważ Excel postrzega "A1:A5" jako zwykły ciąg tekstowy, a nie odwołanie do zakresu, nie wprowadzi żadnych zmian, gdy wstawisz lub usuniesz wiersz (wiersze).
Używanie INDIRECT z innymi funkcjami Excela
Oprócz SUM, INDIRECT jest często używany z innymi funkcjami Excela, takimi jak ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, aby wymienić tylko kilka.
Przykład 1. Funkcje INDIRECT i ROW
Dość często funkcja ROW jest używana w Excelu do zwracania tablicy wartości. Na przykład możesz użyć następującej formuły tablicowej (pamiętaj, że wymaga ona naciśnięcia klawiszy Ctrl + Shift + Enter ), aby zwrócić średnią z 3 najmniejszych liczb z zakresu A1:A10:
=ŚREDNIA(SMALL(A1:A10,ROW(1:3)))
Jeśli jednak wstawisz do arkusza nowy wiersz, w dowolnym miejscu pomiędzy wierszami 1 i 3, zakres w funkcji ROW zostanie zmieniony na ROW(1:4) i formuła zwróci średnią z 4 najmniejszych liczb zamiast 3.
Aby temu zapobiec, zagnieżdż INDIRECT w funkcji ROW, a Twoja formuła tablicowa zawsze pozostanie poprawna, niezależnie od tego, ile wierszy zostanie wstawionych lub usuniętych:
=ŚREDNIA(SMALL(A1:A10,ROW(INDIRECT("1:3"))))
Oto jeszcze kilka przykładów użycia INDIRECT i ROW w połączeniu z funkcją LARGE: Jak zsumować N największych liczb w zakresie.
Przykład 2. Funkcje INDIRECT i ADDRESS
Możesz użyć Excel INDIRECT wraz z funkcją ADRES, aby uzyskać wartość w określonej komórce w locie.
Jak zapewne pamiętasz, funkcja ADRES jest używana w Excelu do uzyskania adresu komórki po numerach wierszy i kolumn. Na przykład formuła =ADDRESS(1,3)
zwraca łańcuch $C$1, ponieważ C1 jest komórką znajdującą się na przecięciu pierwszego wiersza i trzeciej kolumny.
Aby utworzyć pośrednie odwołanie do komórki, wystarczy osadzić funkcję ADRES w formule INDIRECT, jak poniżej:
=INDIRECT(ADDRESS(1,3))
Oczywiście ten banalny wzór tylko demonstruje technikę. A oto kilka przykładów, które mogą okazać się naprawdę przydatne:
- Formuła INDIRECT ADDRESS - jak przełączać wiersze i kolumny.
- VLOOKUP i INDIRECT - jak dynamicznie wyciągać dane z różnych arkuszy.
- INDIRECT z INDEX / MATCH - jak doprowadzić do perfekcji wrażliwą na wielkość liter formułę VLOOKUP.
- Excel INDIRECT i COUNTIF - jak używać funkcji COUNTIF na zakresie nieciągłym lub na wybranych komórkach.
Używanie INDIRECT z walidacją danych w Excelu
Możesz użyć funkcji Excel INDIRECT z walidacją danych, aby utworzyć kaskadowe listy rozwijane, które wyświetlają różne wybory w zależności od tego, jaką wartość użytkownik wybrał w pierwszym rozwijaniu.
Prosta zależna lista rozwijana jest naprawdę łatwa do stworzenia. Wystarczy kilka nazwanych zakresów do przechowywania elementów listy rozwijanej i prosty program =INDIRECT(A2)
gdzie A2 to komórka wyświetlająca pierwszą listę rozwijaną.
Aby stworzyć bardziej złożone 3-poziomowe menu lub drop-down z wielosłownymi wpisami, będziesz potrzebował nieco bardziej złożonej formuły INDIRECT z zagnieżdżoną funkcją SUBSTITUTE.
Aby uzyskać szczegółowe wskazówki krok po kroku, jak używać INDIRECT z Walidacją danych w Excelu, sprawdź ten samouczek: Jak zrobić zależną listę rozwijaną w Excelu.
Funkcja INDIRECT w Excelu - możliwe błędy i problemy
Jak pokazano w powyższych przykładach, funkcja INDIRECT jest dość pomocna w przypadku odwołań do komórek i zakresów. Jednak nie wszyscy użytkownicy Excela chętnie ją stosują, głównie dlatego, że szerokie zastosowanie INDIRECT w formułach Excela powoduje brak przejrzystości. Funkcja INDIRECT jest trudna do przejrzenia, ponieważ komórka, do której się odwołuje, nie jest ostateczną lokalizacją wartości użytej w formule,co rzeczywiście jest dość mylące, zwłaszcza podczas pracy z dużymi złożonymi formułami.
Oprócz wyżej wymienionych, jak każda inna funkcja Excela, INDIRECT może rzucić błąd, jeśli źle użyjesz argumentów funkcji. Oto lista najbardziej typowych błędów:
Błąd programu Excel INDIRECT #REF!
Najczęściej funkcja INDIRECT zwraca błąd #REF! w trzech przypadkach:
- ref_text nie jest prawidłowym odnośnikiem do komórki Jeśli parametr ref_text w formule INDIRECT nie jest prawidłowym odwołaniem do komórki, formuła spowoduje wyświetlenie wartości błędu #REF! Aby uniknąć ewentualnych problemów, sprawdź argumenty funkcji INDIRECT.
- Przekroczony limit zakresu Jeśli argument ref_text twojej formuły pośredniej odnosi się do zakresu komórek poza limitem wierszy 1 048 576 lub limitem kolumn 16 384, otrzymasz również błąd #REF w Excelu 2007, 2010 i Excelu 2013. Wcześniejsze wersje Excela ignorują przekroczony limit i zwracają jakąś wartość, choć często nie taką, jakiej byś oczekiwał.
- Polecony arkusz lub skoroszyt jest zamknięty. Jeśli formuła pośrednia odnosi się do innego skoroszytu lub arkusza programu Excel, ten inny skoroszyt/arkusz musi być otwarty, w przeciwnym razie INDIRECT zwraca błąd #REF!
Błąd Excela INDIRECT #NAME?
Jest to najbardziej oczywisty przypadek, sugerujący, że istnieje jakiś błąd w nazwie funkcji, co prowadzi nas do następnego punktu : )
Używanie funkcji INDIRECT w językach innych niż angielski
Ciekawostką może być fakt, że angielska nazwa funkcji INDIRECT została przetłumaczona na 14 języków, w tym:
|
|
Jeśli jesteś zainteresowany, aby uzyskać pełną listę, sprawdź tę stronę.
Częstym problemem w nieanglojęzycznych lokalizacjach nie jest nazwa funkcji INDIRECT, a raczej różne Ustawienia regionalne dla Separator list W standardowej konfiguracji systemu Windows dla Ameryki Północnej i niektórych innych krajów, domyślnie Separator list jest przecinek. Podczas gdy w krajach europejskich przecinek jest zarezerwowany jako Symbol dziesiętny i Separator list jest ustawiony na średnik.
W rezultacie, podczas kopiowania formuły między dwoma różnymi lokalnymi wersjami Excela, możesz otrzymać komunikat o błędzie " Znaleźliśmy problem z tą formułą... ", ponieważ. Separator listy Jeśli napotkasz ten błąd podczas kopiowania formuły INDIRECT z tego poradnika do swojego Excela, po prostu zamień wszystkie przecinki (,) na średniki (;), aby go naprawić.
Aby sprawdzić, jaki separator list i symbol dziesiętny są ustawione w Twoim urządzeniu, otwórz Panel sterowania i udać się do Region i język> Ustawienia dodatkowe .
Mamy nadzieję, że ten tutorial rzucił trochę światła na używanie funkcji INDIRECT w Excelu. Teraz, gdy znasz jej mocne strony i ograniczenia, czas spróbować i zobaczyć, jak funkcja INDIRECT może uprościć twoje zadania w Excelu. Dziękuję za przeczytanie!