Funkcja Excel TOCOL do konwersji zakresu na pojedynczą kolumnę

  • Udostępnij To
Michael Brown

Łatwy sposób na przekształcenie tablicy lub zakresu w kolumnę za pomocą funkcji TOCOL.

Możliwość transpozycji danych z kolumn do wierszy i w odwrotnym kierunku jest w Excelu od dłuższego czasu. Jednak przekształcanie zakresu komórek w pojedynczą kolumnę było zadaniem trudnym do złamania. Teraz to się w końcu zmienia. Microsoft wprowadził nową funkcję o nazwie TOCOL, która potrafi w mgnieniu oka wykonać transformację tablicy do kolumny. Poniżej znajduje się lista zadań, które ta nowa funkcja może łatwo rozwiązać.

    Funkcja TOCOL w programie Excel

    Funkcja TOCOL w programie Excel przekształca tablicę lub zakres komórek w pojedynczą kolumnę.

    Funkcja przyjmuje trzy argumenty, ale tylko pierwszy jest wymagany.

    TOCOL(tablica, [ignore], [scan_by_column])

    Gdzie:

    Array (wymagane) - tablica lub zakres do przekształcenia w kolumnę.

    Zignoruj (opcjonalne) - określa czy ignorować spacje lub/i błędy. Może być jedną z tych wartości:

    • 0 lub pominięty (domyślnie) - zachowaj wszystkie wartości
    • 1 - ignorowanie pustych miejsc
    • 2 - ignorowanie błędów
    • 3 - ignorowanie pustych miejsc i błędów

    Scan_by_column (opcjonalne) - określa, czy macierz ma być skanowana poziomo czy pionowo:

    • FALSE lub pominięty (domyślnie) - skanuje tablicę według wierszy od lewej do prawej.
    • TRUE - skanuje tablicę po kolumnie z góry na dół.

    Wskazówki:

    • Aby przekształcić tablicę w pojedynczy wiersz, należy użyć funkcji TOROW.
    • Aby wykonać odwrotną transformację kolumny do tablicy, użyj funkcji WRAPCOLS do zawijania według kolumny lub funkcji WRAPROWS do zawijania według wiersza.
    • Do transpozycji tablicy z poziomu na pion lub odwrotnie, czyli zamiany wierszy na kolumny, służy funkcja TRANSPOSE.

    Dostępność TOCOL

    TOCOL to nowa funkcja, która jest obsługiwana w programie Excel dla Microsoft 365 (dla Windows i Mac) oraz Excel dla sieci.

    Podstawowa formuła TOCOL do przekształcenia zakresu w kolumnę

    Wzór TOCOL w najprostszej postaci wymaga tylko jednego argumentu -. macierz . Na przykład, aby umieścić dwuwymiarową tablicę składającą się z 3 kolumn i 4 wierszy w jednej kolumnie, wzór to:

    =TOCOL(A2:C5)

    Formuła jest wprowadzana tylko w jednej komórce (E2 w tym przykładzie) i automatycznie rozlewa się na poniższe komórki. W kategoriach Excela wynik nazywany jest zakresem rozlewania.

    Jak działa ta formuła:

    Z technicznego punktu widzenia zakres A2:C5 jest najpierw przekształcany w tablicę dwuwymiarową. Proszę zwrócić uwagę na oddzielone średnikiem wiersze i ograniczone przecinkami kolumny:

    {"Apple","Banana","Cherry";1,0,3;4,#N/A,6;7,8,9}

    Funkcja TOCOL skanuje tablicę od lewej do prawej i przekształca ją w jednowymiarową tablicę pionową:

    {"Apple";"Banana";"Cherry";1;0;3;4;#N/A;6;7;8;9}

    Wynik umieszczany jest w komórce E2, z której rozlewa się do poniższych komórek.

    Jak wykorzystać funkcję TOCOL w Excelu - przykłady formuł

    Aby lepiej zrozumieć możliwości funkcji TOCOL i to, jakie zadania może ona obejmować, przyjrzyjmy się kilku przykładom formuł.

    Przekształć tablicę w kolumnę, ignorując puste miejsca i błędy

    Jak być może zauważyłeś w poprzednim przykładzie, domyślna formuła TOCOL zachowuje wszystkie wartości z tablicy źródłowej, w tym puste komórki i błędy.

    W wynikowej tablicy puste komórki są reprezentowane przez zera, co może być dość mylące, zwłaszcza jeśli oryginalna tablica ma wartości 0. Rozwiązaniem jest półfabrykaty W tym celu ustawiasz drugi argument na 1:

    =TOCOL(A2:C5, 1)

    Do ignorować błędy , ustaw 2. argument na 2:

    =TOCOL(A2:C5, 2)

    Aby wykluczyć jedno i drugie, puste miejsca i błędy , użyj 3 dla ignorować argument:

    =TOCOL(A2:C5, 3)

    Skanowanie matrycy w poziomie lub w pionie

    Przy domyślnym scan_by_column argument (FALSE lub pominięty), funkcja TOCOL skanuje tablicę poziomo według wierszy. Aby przetwarzać wartości według kolumn, ustaw ten argument na TRUE lub 1. Na przykład:

    =TOCOL(A2:C5, ,TRUE)

    Zauważ, że w obu przypadkach zwrócone tablice mają ten sam rozmiar, ale wartości są ułożone w innej kolejności.

    Połącz wiele zakresów w jedną kolumnę

    Jeśli mamy do czynienia z kilkoma nie sąsiadującymi ze sobą zakresami, to można najpierw połączyć zakresy pionowo w jedną tablicę za pomocą funkcji VSTACK, a następnie za pomocą TOCOL przekształcić połączoną tablicę w kolumnę.

    Zakładając, że pierwszy zakres to A2:C4, a drugi zakres to A8:C9, formuła przyjmuje taką postać:

    =TOCOL(VSTACK(A2:C4, A8:C9))

    Formuła ta demonstruje domyślne zachowanie - odczytuje połączone tablice poziomo od lewej do prawej, jak pokazano w kolumnie E na poniższym obrazku.

    Aby odczytywać wartości pionowo z góry na dół, ustawiasz 3. argument TOCOL na TRUE:

    =TOCOL(VSTACK(A2:C4, A8:C9), ,TRUE)

    Zwróć uwagę, że w tym przypadku formuła najpierw zwraca wartości z kolumny A obu tablic, potem z kolumny B itd. Powodem jest to, że TOCOL skanuje pojedynczą tablicę ułożoną w stos, a nie oryginalne poszczególne zakresy.

    Jeśli twoja logika biznesowa wymaga układania oryginalnych zakresów poziomo, a nie pionowo, to użyj funkcji HSTACK zamiast VSTACK.

    Aby dołączyć każdą kolejną tablicę do prawej strony poprzedniej i czytać połączone tablice w poziomie, wzór to:

    =TOCOL(HSTACK(A2:C4, A8:C10))

    Aby dodać każdą kolejną tablicę na prawo od poprzedniej i zeskanować połączone tablice w pionie, wzór to:

    =TOCOL(HSTACK(A2:C4, A8:C10), ,TRUE)

    Wyodrębnij unikalne wartości z zakresu wielokolumnowego

    Funkcja Excel UNIQUE może łatwo znaleźć unikaty w pojedynczej kolumnie lub wierszu, a także zwrócić unikaty w wierszach, ale nie może wydobyć unikalnych wartości z tablicy wielokolumnowej. Rozwiązaniem jest użycie jej razem z funkcją TOCOL.

    Na przykład, aby wyodrębnić wszystkie różne (distinct) wartości z zakresu A2:C7, wzór to:

    =UNIQUE(TOCOL(A2:C7))

    Dodatkowo możesz zawinąć powyższą formułę w funkcję SORT, aby uporządkować zwróconą tablicę w kolejności alfabetycznej:

    =SORT(UNIQUE(TOCOL(A2:C7)))

    Jak przekonwertować zakres na kolumnę w programie Excel 365 - 2010

    W wersjach Excela, w których funkcja TOCOL nie jest obsługiwana, istnieje kilka alternatywnych sposobów przekształcenia zakresu komórek w kolumnę. Rozwiązania te są dość podstępne, ale w każdym razie działają.

    Aby odczytać zakres według wierszy:

    INDEX( zakres , QUOTIENT(ROW(A1)-1, COLUMNS( zakres ))+1, MOD(WIERSZ(A1)-1, KOLUMNY( zakres ))+1)

    Aby odczytać zakres według kolumn:

    INDEX( zakres , MOD(WIERSZ(A1)-1, WIERSZE( zakres ))+1, ILORAZ(WIERSZ(A1)-1, WIERSZE( zakres ))+1)

    Dla naszego przykładowego zbioru danych wzory są następujące:

    Aby zeskanować zakres poziomo od lewej do prawej :

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    Formuła ta jest równoważna funkcji TOCOL z trzecim argumentem ustawionym na FALSE lub pominiętym:

    =TOCOL(A2:C5)

    Aby zeskanować zakres pionowo od góry do dołu :

    =INDEX($A$2:$C$5, MOD(ROW(A1)-1, ROWS($A$2:$C$5))+1, QUOTIENT(ROW(A1)-1, ROWS($A$2:$C$5))+1)

    Wzór ten można porównać do funkcji TOCOL z trzecim argumentem ustawionym na TRUE:

    =TOCOL(A2:C5, ,TRUE)

    W przeciwieństwie do TOCOL, formuły alternatywne należy wpisać w każdej komórce, w której chcemy, aby pojawiły się wyniki. W naszym przypadku formuły trafiają do komórek E2 (po wierszu) i G2 (po kolumnie), a następnie są kopiowane w dół do wiersza 13.

    Jeśli formuły zostaną skopiowane do większej liczby wierszy niż potrzeba, w "dodatkowych" komórkach pojawi się błąd #REF! Aby temu zapobiec, można zagnieździć formuły w funkcji IFERROR w następujący sposób:

    =IFERROR(INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)), "")

    Zauważ, że aby formuły kopiowały się poprawnie, blokujemy zakres za pomocą bezwzględnych odwołań do komórek ($A$2:$C$5). Zamiast tego możesz użyć zakresu nazwanego.

    Jak działają te formuły

    Poniżej znajduje się szczegółowe rozbicie pierwszej formuły, która porządkuje komórki według wierszy:

    =INDEX($A$2:$C$5, QUOTIENT(ROW(A1)-1, COLUMNS($A$2:$C$5))+1, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    Chodzi o to, aby użyć funkcji INDEX do zwrócenia wartości określonej komórki na podstawie jej względnych numerów wierszy i kolumn w zakresie.

    Na stronie numer rzędu jest obliczany przez tę kombinację:

    ILORAZ(WIERSZ(A1)-1, KOLUMNY($A$2:$C$5))+1

    QUOTIENT zwraca część całkowitą podziału.

    Dla licznik , używasz ROW(A1)-1, który zwraca numer porządkowy od 0 w E2 (pierwsza komórka, w której wpisano formułę) do 11 w E13 (ostatnia komórka, w której wpisano formułę).

    Na stronie mianownik brough by COLUMNS($A$2:$C$5)) jest stała i równa liczbie kolumn w twoim zakresie (3 w naszym przypadku).

    Teraz, jeśli sprawdzisz wynik KWOTY dla pierwszych 3 komórek (E2:E4), zobaczysz, że jest on równy 0 (ponieważ część całkowita podziału wynosi zero). Dodanie 1 daje wiersz o numerze 1.

    Dla kolejnych 3 komórek (E5:E5) QUOTIENT zwraca 1, a operacja +1 dostarcza wiersz o numerze 2. I tak dalej.

    Innymi słowy, ta część formuły tworzy powtarzającą się sekwencję liczb, taką jak 1,1,1,2,2,3,3,3,4,4,4,... Każda liczba powtarza się tyle razy, ile jest kolumn w twoim zakresie.

    Aby obliczyć numer kolumny , budujesz odpowiedni ciąg liczbowy korzystając z funkcji MOD:

    MOD(WIERSZ(A1)-1, KOLUMNY($A$2:$C$5))+1

    Ponieważ w naszym zakresie (A2:C5) są 3 kolumny, to kolejność musi być 1,2,3,1,2,3,....

    Funkcja MOD zwraca resztę po dzieleniu.

    W E2, MOD(ROW(A1)-1, COLUMNS($A$2:$C$5))+1)

    staje się

    MOD(1-1, 3)+1)

    i zwraca 1.

    W E3, MOD(ROW(A2)-1, COLUMNS($A$2:$C$5))+1)

    staje się

    MOD(2-1, 3)+1)

    i zwraca 2.

    Mając ustalone numery wierszy i kolumn, INDEX bez problemu pobiera żądaną wartość.

    W komórce E2, INDEX($A$2:$C$5, 1, 1) zwraca wartość z 1. wiersza i 1. kolumny powołanego zakresu, czyli z komórki A2.

    W E3, INDEX($A$2:$C$5, 1, 2) zwraca wartość z 1 wiersza i 2 kolumny, czyli z komórki B2.

    I tak dalej.

    Druga formuła, która skanuje zakres według kolumny, działa w podobny sposób. Różnica polega na tym, że używa MOD, aby uzyskać numer wiersza i QUOTIENT, aby uzyskać numer kolumny.

    Nie działa funkcja TOCOL

    Jeśli funkcja TOCOL rzuca błąd, najprawdopodobniej jest to jeden z tych powodów:

    TOCOL nie jest obsługiwany w Twoim Excelu

    Gdy otrzymujesz błąd #NAME?, pierwszą rzeczą do sprawdzenia jest poprawna pisownia nazwy funkcji. Jeśli nazwa jest poprawna, ale błąd się utrzymuje, funkcja nie jest dostępna w Twojej wersji Excela. W takim przypadku rozważ użycie alternatywy TOCOL.

    Tablica jest zbyt duża

    Błąd #NUM wskazuje, że tablica nie mieści się w kolumnie. Typowym przypadkiem jest sytuacja, gdy odwołujemy się do całych kolumn lub wierszy.

    Nie ma wystarczającej liczby pustych komórek

    Gdy wystąpi błąd #SPILL, sprawdź, czy kolumna, w której wprowadzono formułę, ma wystarczająco dużo pustych komórek, aby wypełnić je wynikami. Jeśli komórki są wizualnie puste, upewnij się, że nie ma w nich spacji i innych znaków niedrukowalnych. Aby uzyskać więcej informacji, zobacz Jak naprawić błąd #SPILL w programie Excel.

    Oto jak można wykorzystać funkcję TOCOL w Excelu 365 i alternatywne rozwiązania we wcześniejszych wersjach, aby przekształcić tablicę dwuwymiarową w pojedynczą kolumnę. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Zeszyt ćwiczeń

    Funkcja TOCOL w Excelu - przykłady formuł (plik .xlsx)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.