Dokumentacja HotXLS

Wybór obszaru INDEX i tożsamość odwołania

Dokumentacja HotXLS · Wierność obliczeń i konwersji

Wersja 2.384.101 rozszerza INDEX(source,row_num,column_num,area_num) o akceptację czwartego argumentu dla tablic obliczeniowych i o składanie obsługiwanych rzeczywistych odwołań wieloobszarowych przez nazwy zdefiniowane i LET; selektory wiersza, kolumny i obszaru mogą rozgłaszać się razem

Jedna tablica obliczeniowa albo wiele obszarów odwołania

Stała lub obliczona tablica to jeden obszar źródłowy, więc INDEX(SEQUENCE(2,2),2,2,1) zwraca 4; całkowite pominięcie czwartego argumentu również wybiera obszar 1, podczas gdy jawnie pusty czwarty argument jest nieprawidłowym selektorem obszaru

Unia odwołań może zawierać wiele rzeczywistych obszarów arkusza na tym samym arkuszu; area_num wybiera obszar w kolejności unii, a numery wiersza i kolumny odnoszą się wewnątrz wybranego obszaru

W przykładach poniżej Source!A1:B2 zawiera {1,2;3,4}, a Source!D1:E2 zawiera {10,20;30,40}; Other!A1:B2 zawiera {100,200;300,400}

FormułaWynik
INDEX((Source!A1:B2,Source!D1:E2),2,2,2)40, z zachowaniem skalarnego wyniku odwołaniowego
SUM(INDEX((Source!A1:B2,Source!D1:E2),0,0,2))100, sumowanie całego drugiego obszaru
INDEX(SEQUENCE(2,2),0,0,1){1,2;3,4}, tablica wartości obliczonych
INDEX(SEQUENCE(2,2),2,2,2)#REF!, bo tablica obliczeniowa nie ma drugiego obszaru

Nazwy zdefiniowane, LET i CHOOSE

Obsługiwana lokalna nazwa zdefiniowana o wyrażeniu (Source!$A$1:$B$2,Source!$D$1:$E$2) zachowuje oba obszary; zagnieżdżone nazwy zachowują tę tożsamość, a AREAS(NamedAreas) zwraca 2

INDEX(NamedAreas,2,2,2) zwraca 40, podczas gdy ISREF(INDEX(NamedAreas,0,0,2)) zwraca TRUE; ROW, COLUMN, ROWS, COLUMNS i konsumenci agregujący dalej korzystają ze współrzędnych wybranego odwołania

Względne nazwy odwołaniowe rozwiązują się w każdej pozycji konsumenta, a nazwa lokalna arkusza ma pierwszeństwo przed nazwą o zasięgu skoroszytu o tej samej pisowni; zachowanie tożsamości odwołania nie zamraża nazwy względnej w jej pierwszej pozycji ewaluacji

LET(areas,(Source!A1:B2,Source!D1:E2),INDEX(areas,2,2,2))
LET(areas,(Source!A1:B2,Source!D1:E2),ISREF(INDEX(areas,0,0,2)))

Te wyrażenia zwracają odpowiednio 40 i TRUE; wiązanie do SEQUENCE(2,2) pozostaje tablicą wartości obliczonych i nie nabywa tożsamości odwołania

Skalarne CHOOSE wybierające rzeczywiste odwołanie zachowuje to wybrane odwołanie, łącznie z wyborem na innym arkuszu: INDEX(CHOOSE(2,Source!A1:B2,Other!A1:B2),2,2) zwraca 400, a odpowiadający skalarne wynik odwołaniowy przechodzi ISREF

CHOOSE z selektorem tablicowym łączy wartości według orientacji selektora, zamiast budować unię obszarów odwołań; CHOOSE({1,2},Source!A1:B2,Source!D1:E2) zwraca {1,20;3,40}, a dodatkowy selektor obszaru INDEX równy 2 nadal zwraca #REF!

Trzy tablice selektorów

Selektory wiersza, kolumny i obszaru przyjmują wartości skalarne albo tablice; wymiary jednoelementowe rozgłaszają się, przeciwne orientacje wiersza i kolumny tworzą iloczyn krzyżowy, a zgodne orientacje parują pozycje; niedopasowane pozycje w nierównych kształtach zawierają pojedyncze błędy #N/A

INDEX((Source!A1:B2,Source!D1:E2),{1;2},2,{1,2})
INDEX((Source!A1:B2,Source!D1:E2),2,2,{2;1})

Pierwsze wyrażenie zwraca {2,20;4,40}, a drugie {40;4}; wybrane wartości zachowują swoje reprezentacje tekstowe, Boolean, liczbowe i typowanych błędów

Jeśli dowolny selektor jest tablicą, wynikiem jest tablica wartości, a nie odwołanie; zero wiersza lub kolumny albo pominięty selektor wiersza czy kolumny wybiera pierwszy element tej osi w każdej pozycji wyniku

To różni się od ekstrakcji czysto skalarnej: dwa skalarne zera wiersza i kolumny zwracają cały wybrany obszar, ale INDEX((Source!A1:B2,Source!D1:E2),0,0,{1,2}) zwraca {1,10}, a nie dwie zagnieżdżone tablice dwa-na-dwa; jej suma to 11

Koercja obszaru i błędy

Selektory obszaru obcinają ułamkowe wartości liczbowe w stronę zera i akceptują tekst liczbowy oraz wartości Boolean; 1.9, "1" i TRUE wybierają obszar 1

Obszar zerowy, FALSE, jawnie pusty czwarty argument, wartości ujemne i ułamki obcinane do zera zwracają #VALUE!; tekst nieliczbowy też zwraca #VALUE!, podczas gdy dodatni obszar poza liczbą dostępnych obszarów zwraca #REF!

Typowane błędy selektorów propagują się z istniejącymi kodami błędów; dla selektora tablicowego nieprawidłowy obszar daje błąd tylko w odpowiadającej mu pozycji wyniku, więc INDEX(SEQUENCE(2,2),2,2,{1,2}) zwraca {4,#REF!}

Istniejące błędy nie są zastępowane przez późniejsze sprawdzenia granic: INDEX(#N/A,1,1,2) zwraca #N/A, a INDEX(SEQUENCE(2,2),#N/A,1,#DIV/0!) zachowuje #N/A selektora wiersza

Nieprawidłowe odwołanie zakwalifikowane istniejącym lokalnym arkuszem pozostaje #REF!, łącznie z Source!#REF! i 'Plan! O''Brien'!#REF!; nazwa zdefiniowana zawierająca ten lokalny błąd odwołania też zachowuje #REF! przy przekazaniu do INDEX lub ISFORMULA

Token lokalnego błędu można użyć z operatorem procentu albo niejawnego przecięcia, a biały znak po separatorze arkusza jest akceptowany; biały znak między nazwą arkusza a jego separatorem wykracza poza akceptowaną składnię

Cudzysłowowe ciągi formuł takie jak "Source!#REF!" pozostają tekstem; token odwołania kwalifikowanego arkuszem wewnątrz stałej tablicowej wykracza poza obsługiwana gramatykę źródła

Selektory wiersza i kolumny zachowują swoje istniejące reguły ekstrakcji zerem i walidacji wartości ujemnych; obszar zerowy nigdy nie oznacza ekstrakcji całego źródła

Zapis, zależności i limity

Automatyczne obliczenia rozlań XLSX mogą rozwijać albo kurczyć wyniki selektorów tablicowych i zwalniają nieaktualne komórki zależne należące do kotwicy; obsługiwane wyrażenia liczą się też wewnątrz jawnego stałego celu CSE i przeżywają zapis oraz ponowne otwarcie XLSX

Nazwany selektor może wymagać zachowawczego dynamicznego zapisu nawet wtedy, gdy jego obliczony wynik jest skalarny; jednokomórkowy znacznik dynamiczny nie zmienia wartości ani tożsamości obsługiwanego wyniku odwołaniowego

Wybrane odwołania źródłowe i zagnieżdżone nazwy uczestniczą w śledzeniu zależności, więc kolejne edycje źródła są obserwowane po przeliczeniu; przemierzanie selektorów i generowane ładunki macierzy zużywają istniejące budżety kroków ewaluacji i pamięci tablic

Granice

Bezpośrednia unia, której obszary należą do różnych arkuszy, zwraca #VALUE!, nawet gdyby żądany numer obszaru wybierał tylko jeden z nich; skalarne CHOOSE wybierające jedno odwołanie pozostaje obsługiwaną alternatywą międzyarkuszową

Unia tablic obliczeniowych, stałych albo wyrażeń wartości nie jest rzeczywistym odwołaniem wieloobszarowym; unie tablic obliczeniowych związane w LET zwracają #VALUE!, a bezpośrednia składnia unii tablicy tablic nie jest akceptowana jako postać źródła

Ten kontrakt obejmuje przetestowane lokalne postacie odwołań i tablic obliczeniowych; nie oznacza obsługi każdego grafu odwołań zewnętrznych, każdej funkcji zwracającej odwołanie ani dowolnych zagnieżdżonych kontenerów tablic

Nieznany kwalifikator arkusza nie jest normalizowany do znanego lokalnego błędu odwołania; Excel może utworzyć graf linku zewnętrznego dla formuły takiej jak NoSuchSheet!#REF!, a odtworzenie tego grafu wykracza poza ten lokalny kontrakt obliczeń