Spis treści
Szybki sposób na przekształcenie zakresu komórek w jeden wiersz za pomocą TOROW funkcja.
Microsoft Excel 365 wprowadził kilka nowych funkcji do wykonywania różnych manipulacji z tablicami. Dzięki TOROW możesz błyskawicznie wykonać transformacje zakresu do wiersza. Oto lista zadań, które może wykonać ta nowa funkcja:
Funkcja TOROW w programie Excel
Funkcja TOROW w Excelu służy do przekształcenia tablicy lub zakresu komórek w jeden wiersz.
Funkcja przyjmuje w sumie trzy argumenty, z których tylko pierwszy jest wymagany.
TOROW(tablica, [ignore], [scan_by_column])Gdzie:
Array (wymagane) - tablica lub zakres do przekształcenia w pojedynczy wiersz.
Zignoruj (opcjonalne) - określa, czy ignorować spacje lub/i błędy. Może przyjmować 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 sposób skanowania tablicy:
- FALSE lub pominięty (domyślnie) - skanuje tablicę poziomo według wierszy.
- TRUE - skanuje tablicę w pionie po kolumnie.
Wskazówki:
- Do przekształcenia tablicy w pojedynczą kolumnę służy funkcja TOCOL.
- Aby wykonać odwrotną transformację wiersza do tablicy, użyj funkcji WRAPCOLS do zawijania do kolumn lub funkcji WRAPROWS do zawijania tablicy do wierszy.
- Aby zamienić wiersze w kolumny, należy użyć funkcji TRANSPOZYCJA.
dostępność TOROW
TOROW to nowa funkcja, która jest obsługiwana tylko w Excelu dla Microsoft 365 (dla Windows i Mac) oraz Excelu dla sieci.
Podstawowa formuła TOROW w programie Excel
Aby wykonać proste przekształcenie zakresu na wiersz, należy użyć formuły TOROW w jej podstawowej postaci. W tym celu należy zdefiniować tylko pierwszy argument ( macierz ).
Na przykład, aby zamienić tablicę dwuwymiarową składającą się z 3 kolumn i 3 wierszy w jeden wiersz, wzór to:
=TOROW(A3:C6)
Wprowadzasz formułę do jednej komórki (w naszym przypadku A10), a ona automatycznie rozlewa się na tyle komórek, ile potrzeba, aby pomieścić wszystkie wyniki. W terminologii Excela zakres wyjściowy otoczony cienką niebieską obwódką nazywany jest zakresem rozlewania.
Jak działa ta formuła:
Najpierw podany zakres komórek jest przekształcany w tablicę dwuwymiarową. Zwróć uwagę na rozdzielone przecinkami kolumny i rozdzielone średnikami wiersze:
{"Apple","Banana","Cherry";1,2,3;4,5,6;7,8,9}
Następnie funkcja TOROW odczytuje tablicę od lewej do prawej i przekształca ją w jednowymiarową tablicę poziomą:
{"Apple","Banana","Cherry",1,2,3,4,5,6,7,8,9}
Wynik trafia do komórki A10, z której rozlewa się do sąsiedniej komórki po prawej stronie.
Przekształć zakres w wiersz, ignorując puste miejsca i błędy
Domyślnie funkcja TOROW zachowuje wszystkie wartości z tablicy źródłowej, w tym puste komórki i błędy. Na wyjściu w miejscu pustych komórek pojawiają się wartości zerowe, co może być dość mylące.
Do wykluczyć puste miejsca , ustawić ignorować argument do 1:
=TOROW(A3:C5, 1)
Do ignorować błędy , ustawić ignorować argument do 2:
=TOROW(A3:C5, 2)
Aby pominąć obie, puste miejsca i błędy , użyj 3 dla ignorować argument:
=TOROW(A3:C5, 3)
Poniższy obrazek pokazuje wszystkie trzy scenariusze w akcji:
Czytaj tablicę poziomo lub pionowo
Przy domyślnym zachowaniu, funkcja TOROW przetwarza tablicę poziomo od lewej do prawej. Aby skanować wartości według kolumny od góry do dołu, ustawiasz trzeci argument ( scan_by_column ) na TRUE lub 1.
Na przykład, aby odczytać zakres źródła według wiersza, formuła w E3 to:
=TOROW(A3:C5)
Aby zeskanować zakres według kolumn, formuła w E8 to:
=TOROW(A3:C5, ,TRUE)
W obu przypadkach tablice wynikowe mają ten sam rozmiar, ale wartości są ułożone w innej kolejności.
Scalanie wielu zakresów w jeden wiersz
Aby połączyć kilka nie sąsiadujących ze sobą zakresów w jeden rząd, najpierw układasz je poziomo lub pionowo w jedną tablicę za pomocą odpowiednio HSTACK lub VSTACK, a następnie używasz funkcji TOROW do przekształcenia połączonej tablicy w rząd.
W zależności od twojej logiki biznesowej, jedna z poniższych formuł wykona zadanie.
Układaj tablice poziomo i przeliczaj według wierszy
Mając pierwszy zakres w A3:C4 i drugi zakres w A8:C9, poniższa formuła ułoży oba zakresy poziomo w jedną tablicę, a następnie przekształci ją w wiersz czytający wartości od lewej do prawej. Wynik znajduje się w E3 na poniższym obrazku.
=TOROW(HSTACK(A3:C4, A8:C9))
Układaj tablice poziomo i konwertuj według kolumn
Aby odczytać tablicę ułożoną w stos pionowo z góry na dół, ustawiamy 3 argument TOROW na TRUE, jak pokazano w E5 na poniższym obrazku:
=TOROW(HSTACK(A3:C4, A8:C9), ,TRUE)
Układanie tablic w pionie i konwersja według wierszy
Aby dołączyć każdą kolejną tablicę do dna poprzedniej i odczytać połączoną tablicę poziomo, wzór w E12 to:
=TOROW(VSTACK(A3:C4, A8:C9))
Układaj tablice w pionie i konwertuj według kolumn
Aby dodać każdą kolejną tablicę do spodu poprzedniej i zeskanować połączoną tablicę w pionie, wzór to:
=TOROW(VSTACK(A3:C4, A8:C9), ,TRUE)
Aby lepiej zrozumieć logikę, zaobserwuj inną kolejność wartości w wynikowych tablicach:
Wyodrębnij unikalne wartości z zakresu w wierszu
Począwszy od Microsoft Excel 2016, mamy wspaniałą funkcję o nazwie UNIQUE, która może łatwo uzyskać unikalne wartości z pojedynczej kolumny lub wiersza. Jednak nie może obsługiwać tablic wielokolumnowych. Aby pokonać to ograniczenie, użyj funkcji UNIQUE i TOROW razem.
Na przykład, aby wyodrębnić wszystkie różne (distinct) wartości z zakresu A2:C7 i umieścić wyniki w jednym wierszu, formuła to:
=UNIQUE(TOROW(A2:C7), TRUE)
Ponieważ TOROW zwraca jednowymiarową tablicę poziomą, ustawiamy 2. ( przez_kol ) argumentu UNIQUE na TRUE, aby porównać kolumny względem siebie.
W przypadku, gdy chcesz, aby wyniki były ułożone w porządku alfabetycznym, zawiń powyższą formułę w funkcję SORT:
=SORT(UNIQUE(TOROW(A2:C7), TRUE), , ,TRUE )
Podobnie jak w przypadku UNIQUE,. przez_kol argument SORT jest również ustawiony na TRUE.
TOROW alternatywa dla Excel 365 - 2010
W wersjach Excela, w których funkcja TOROW nie jest dostępna, można przekształcić zakres w pojedynczy wiersz za pomocą kombinacji kilku różnych funkcji, które działają w starszych wersjach. Te rozwiązania są bardziej złożone, ale działają.
Aby zeskanować zakres w poziomie, ogólna formuła to:
INDEX( zakres , QUOTIENT(KOLUMNA (A1)-1, KOLUMNY( zakres ))+1, MOD(KOLUMNA(A1)-1, KOLUMNY( zakres ))+1)Aby zeskanować zakres w pionie, ogólna formuła to:
INDEX( zakres , MOD(KOLUMNA(A1)-1, KOLUMNY( zakres ))+1, ILORAZ(KOLUMNA (A1)-1, KOLUMNY( zakres ))+1)Dla naszego przykładowego zbioru danych w A3:C5 formuły przyjmują taki kształt:
Aby przeskanować zakres według wierszy:
=INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)
Formuła ta jest alternatywą dla funkcji TOROW z trzecim argumentem ustawionym na FALSE lub pominiętym:
=TOROW(A3:C5)
Aby przeskanować zakres według kolumn:
=INDEX($A$3:$C$5, MOD(KOLUMNA(A1)-1, KOLUMNY($A$3:$C$5))+1, ILORAZ(KOLUMNA(A1)-1, KOLUMNY($A$3:$C$5))+1)
Formuła ta jest odpowiednikiem funkcji TOROW z trzecim argumentem ustawionym na TRUE:
=TOROW(A3:C5, ,TRUE)
Zwróć uwagę, że w przeciwieństwie do funkcji dynamicznej tablicy TOROW, te tradycyjne formuły należy wpisać w każdej komórce, w której chcemy, aby pojawiły się wyniki. W naszym przypadku pierwsza formuła (wg wiersza) trafia do E3 i jest kopiowana przez M3. Druga formuła (wg kolumny) ląduje w E8 i jest przeciągana przez M8.
Aby formuły kopiowały się poprawnie, blokujemy zakres za pomocą odwołań bezwzględnych ($A$3:$C$5). Nazwany zakres też się nada.
Jeśli skopiowałeś formuły do większej liczby komórek niż potrzeba, w "dodatkowych" komórkach pojawi się błąd #REF! Aby to naprawić, zawiń swoją formułę w funkcję IFERROR, jak poniżej:
=IFERROR(INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1), "")
Jak działają te formuły
Poniżej znajduje się szczegółowe rozbicie pierwszej formuły, która porządkuje wartości według wierszy:
=INDEX($A$3:$C$5, QUOTIENT(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+1)
W sercu formuły używamy funkcji INDEX, aby uzyskać wartość komórki na podstawie jej względnej pozycji w zakresie.
Na stronie numer rzędu jest obliczany według tego wzoru:
ILORAZ(KOLUMNA(A1)-1, KOLUMNY($A$3:$C$5))+1
Chodzi o to, aby stworzyć powtarzający się ciąg liczbowy, taki jak 1,1,1,2,2,3,3, ..., gdzie każda liczba powtarza się tyle razy, ile jest kolumn w zakresie źródłowym. A oto jak to robimy:
QUOTIENT zwraca część całkowitą podziału.
Dla licznik , używamy COLUMN(A1)-1, który zwraca numer porządkowy od 0 w pierwszej komórce, w której wprowadzono formułę, do n (całkowita liczba wartości w zakresie minus 1) w ostatniej komórce, w której wprowadzono formułę. W tym przykładzie mamy 0 w E2 i 8 w M3.
Dla mianownik , używamy COLUMNS($A$3:$C$5)). Zwraca to stałą liczbę równą liczbie kolumn w twoim zakresie (3 w naszym przypadku).
W efekcie funkcja KWOTY zwraca 0 w pierwszych 3 komórkach (E3:G3), do których dodajemy 1, więc numer wiersza to 1.
Dla kolejnych 3 komórek (H3:J3) QUOTIENT zwraca 1, a +1 daje numer wiersza 2. I tak dalej.
Aby obliczyć numer kolumny , budujesz odpowiedni ciąg liczbowy korzystając z funkcji MOD:
MOD(KOLUMNA(A1)-1, KOLUMNY($A$3:$C$5))+1
Ponieważ w naszym zakresie są 3 kolumny, to sekwencja musi wyglądać tak: 1,2,3,...
Funkcja MOD zwraca resztę po dzieleniu.
W E3, MOD(COLUMN(A1)-1, COLUMNS($A$3:$C$5))+.
staje się
MOD(1-1, 3)+1)
i zwraca 1.
W F3, MOD(COLUMN(B1)-1, COLUMNS($A$3:$C$5))+.
staje się
MOD(2-1, 3)+1)
i zwraca 2.
Po ustaleniu numerów wiersza i kolumny, INDEX z łatwością pobiera wartość na przecięciu tego wiersza i kolumny.
W komórce E3, INDEX($A$3:$C$5, 1, 1) zwraca wartość z 1. wiersza i 1. kolumny powołanego zakresu, czyli z komórki A3.
W F3, INDEX($A$3:$C$5, 1, 2) zwraca wartość z 1 wiersza i 2 kolumny, czyli z komórki B3.
I tak dalej.
Druga formuła, która skanuje zakres według kolumn, działa w podobny sposób. Różnica polega na tym, że używamy MOD do obliczenia numeru wiersza i QUOTIENT, aby dowiedzieć się numeru kolumny.
Nie działa funkcja TOROW
Jeśli funkcja TOROW powoduje błąd, to najprawdopodobniej jest to jeden z tych powodów:
#NAME? error
W przypadku większości funkcji Excela błąd #NAME? jest wyraźną informacją, że nazwa funkcji jest błędnie wpisana. W przypadku TOROW może to również oznaczać, że funkcja nie jest dostępna w Twoim Excelu. Jeśli Twoja wersja Excela jest inna niż 365, spróbuj użyć alternatywy TOROW.
#NUM błąd
Błąd #NUM wskazuje, że zwrócona tablica nie mieści się w wierszu. Najczęściej dzieje się tak, gdy odwołujesz się do całych kolumn i/lub wierszy zamiast mniejszego zakresu.
#BłądSPILL
W większości przypadków błąd #SPILL sugeruje, że wiersz, w którym wprowadziłeś formułę, nie ma wystarczającej liczby pustych komórek, do których można rozlać wyniki. Jeśli sąsiednie komórki są wizualnie puste, upewnij się, że nie ma w nich spacji ani innych znaków niedrukowalnych. Aby uzyskać więcej informacji, zobacz Co oznacza błąd #SPILL w programie Excel.
Tak oto używasz funkcji TOROW w Excelu, aby przekształcić dwuwymiarową tablicę lub zakres w pojedynczy wiersz. Dziękuję Ci za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!
Zeszyt ćwiczeń do pobrania
Funkcja Excel TOROW - przykłady formuł (plik .xlsx)