Aby połączyć wyniki wyszukiwania o zmiennym rozmiarze w programie Excel dla komputerów Mac, użyj funkcji REDUCE z funkcją VSTACK, aby utworzyć jedną prostokątną tablicę. W tym przewodniku utworzysz listę zasobów graficznych, zachowasz kolejność żądań i wyświetlisz niedopasowane grupy zamiast pomijać je bez informacji.
Zadanie jest proste: każda żądana grupa zasobów może odpowiadać kilku wierszom źródłowym, jednemu wierszowi albo żadnemu. Chcesz umieścić wszystkie wyniki w jednym rozszerzającym się zakresie arkusza, zachowując etykiety zasobów i ich liczby razem.
Które wersje programu Excel dla komputerów Mac obsługują to rozwiązanie?
Do głównej formuły poniżej użyj programu Excel dla Microsoft 365 dla komputerów Mac. Microsoft wymienia tę edycję na stronie dokumentacji funkcji REDUCE. Na aktualnej stronie nie wymieniono programu Excel 2024 dla komputerów Mac, więc sama dostępność innych nowoczesnych funkcji tablicowych nie potwierdza, że cała formuła będzie dostępna.
| Funkcja | Edycje dla komputerów Mac wymienione w odpowiedniej dokumentacji Microsoft | Rola w tym przykładzie |
|---|---|---|
BYROW, MAP |
Microsoft 365 dla komputerów Mac; Excel 2024 dla komputerów Mac | Wyjaśniają pierwotne podejście i jego ograniczenia |
REDUCE |
Microsoft 365 dla komputerów Mac | Przenosi rosnący wynik między kolejnymi żądaniami |
VSTACK, HSTACK |
Microsoft 365 dla komputerów Mac; Excel 2024 dla komputerów Mac | Łączą bloki wyników i tworzą wiersz zastępczy |
FILTER |
Microsoft 365 dla komputerów Mac; Excel 2024 dla komputerów Mac; Excel 2021 dla komputerów Mac | Zwraca wszystkie pasujące wiersze zasobów |
Informacje o tych edycjach pochodzą ze stron referencyjnych Microsoft dotyczących funkcji BYROW, MAP, VSTACK, HSTACK i FILTER.
Aby sprawdzić swoją instalację, otwórz menu Excel i wybierz Informacje o programie Excel. Instrukcje Microsoft dla komputerów Mac wyjaśniają, że okno dialogowe „Informacje” aplikacji pakietu Office pokazuje jej wersję i typ licencji. Sprawdź oba te elementy, wybierając formułę. Zobacz Informacje o pakiecie Office: z jakiej wersji pakietu Office korzystam?.
Nowsza wersja zapoznawcza dla komputerów Mac w kanale Beta zmienia ograniczenia dotyczące tablic zagnieżdżonych
W ogłoszeniu Microsoft z 24 września 2026 r. przedstawiono tablice zagnieżdżone i funkcję FLATTEN jako funkcje w wersji zapoznawczej dla kanału Beta. Wymagana jest wersja 16.114 kompilacja 26092111 lub nowsza programu Excel dla komputerów Mac, a dostępność zależy od wdrażania. Większość obliczeń z użyciem tablic zagnieżdżonych wymaga ustawienia zgodności skoroszytu na wersję 3, które można wybrać w menu Formuły > Opcje obliczania. Te warunki mają znaczenie: sama subskrypcja Microsoft 365 nie potwierdza, że funkcja w wersji zapoznawczej jest włączona. Zobacz Umieszczanie wielu wartości w jednej komórce za pomocą list i tablic w programie Excel.
Poniższe rozwiązanie tworzy zwykły prostokątny wynik bez korzystania z tej wersji zapoznawczej. Dzięki temu podstawowe zadanie tworzenia listy zasobów w skoroszycie nie zależy od ustawień tablic zagnieżdżonych.
Dlaczego zwracanie tablic przez BYROW lub MAP powoduje problemy?
Microsoft dokumentuje, że funkcja BYROW zwraca jeden wynik dla każdego wiersza wejściowego. W dokumentacji wyraźnie zaznaczono, że zwrócenie przez wewnętrzną funkcję LAMBDA czegoś innego niż pojedyncza wartość powoduje błąd #CALC!. Wyszukiwanie zwracające kilka rekordów przekracza to udokumentowane ograniczenie. Zobacz Funkcja BYROW.
Na przykład po wprowadzeniu przykładowych danych z następnej sekcji poniższy przykład diagnostyczny pokazuje problematyczne podejście przy założeniu udokumentowanego zachowania zwracającego pojedynczą wartość:
=BYROW(E2:E4,LAMBDA(key,FILTER(A2:C7,A2:A7=key,"No match")))
Pierwsze żądanie zwraca trzy wiersze i trzy kolumny. Próba umieszczenia tego bloku w jednej pozycji wyniku przez funkcję BYROW powoduje problem z tablicą zagnieżdżoną. Zmiana funkcji zewnętrznej na MAP nie zapewnia ogólnego sposobu łączenia bloków przy konwencjonalnym sposobie obliczania: wynik wewnętrzny nadal zawiera wiele komórek. Dokumentacja Microsoft dotycząca funkcji MAP opisuje mapowanie wartości wejściowych na nowe wartości, a wskazówki dotyczące błędu #CALC! omawiają ograniczenie związane z tablicami zagnieżdżonymi.
Ujęcie nieudanego obliczenia w funkcję VSTACK nie naprawi wyniku wewnętrznego. Warto zmienić podejście i dołączać każdy blok wyszukiwania podczas przetwarzania żądań, tak aby każdy wynik pośredni był już jedną prostokątną tablicą.
Utwórz pełne wyszukiwanie zasobów za pomocą REDUCE i VSTACK
1. Wprowadź syntetyczne dane źródłowe
Zacznij od pustego arkusza. Wklej ten blok rozdzielony tabulatorami do A1. Liczby oznaczają przykładowe ilości zasobów graficznych.
Grupa\tZasób\tLiczba
Mozaika\tPłytka bursztynowa\t2
Orbita\tSrebrny pierścień\t3
Mozaika\tNiebieska płytka\t4
Pryzmat\tPrzezroczysty panel\t5
Mozaika\tKoralowa płytka\t1
Pryzmat\tMatowy panel\t2
Wklej następującą listę żądań do E1. Zachowaj podaną kolejność, aby móc porównać oczekiwany wynik.
Żądana grupa
Mozaika
Orbita
Kamyk
W tym przykładzie celowo uwzględniono trzy przypadki: grupa Mozaika ma trzy pasujące rekordy, Orbita ma jeden, a Kamyk nie ma żadnego. Rekordy grupy Pryzmat powinny pozostać poza wynikiem, ponieważ ta grupa nie została uwzględniona w żądaniu.
2. Sprawdź osobno jedno wyszukiwanie
Wprowadź tę formułę w nieużywanym obszarze, na przykład w L1:
=FILTER($A$2:$C$7,$A$2:$A$7=$E$2,"No match")
Powinna zwrócić trzy rekordy grupy Mozaika. Funkcja FILTER używa porównania grup, aby wybrać całe wiersze ze źródła. Tablica uwzględniania musi mieć zgodną wysokość lub szerokość; w tym przypadku zarówno źródło, jak i warunek obejmują wiersze 2:7. Zobacz Funkcja FILTER.
Ten krótki test oddziela wyszukiwanie od logiki łączenia. Jeśli wiersze są nieprawidłowe, popraw etykiety źródłowe lub odwołania przed dodaniem obliczenia zewnętrznego.
3. Wprowadź pełną formułę łączącą wyniki
Pozostaw wolne miejsce w kolumnach G:I, a następnie wprowadź tę formułę w G1:
=REDUCE(
$A$1:$C$1,
$E$2:$E$4,
LAMBDA(acc,key,
VSTACK(
acc,
FILTER(
$A$2:$C$7,
$A$2:$A$7=key,
HSTACK(key,"No match","")
)
)
)
)
Naciśnij Return. Wprowadź formułę tylko raz w komórce w lewym górnym rogu obszaru wyników; Excel automatycznie dopasuje zakres rozlania. Umieść ją poza tabelą programu Excel, ponieważ formuły tablicowe rozlewające wyniki nie są obsługiwane wewnątrz tabel. Microsoft opisuje oba te zachowania w artykule Formuły tablic dynamicznych i zachowanie rozlewania wyników.
4. Porównaj oczekiwany wynik
Dla podanych danych wynik zajmuje zakres G1:I6:
| Grupa | Zasób | Liczba |
|---|---|---|
| Mozaika | Płytka bursztynowa | 2 |
| Mozaika | Niebieska płytka | 4 |
| Mozaika | Koralowa płytka | 1 |
| Orbita | Srebrny pierścień | 3 |
| Kamyk | Brak dopasowania |
Oczekiwane wymiary wynikają bezpośrednio z przykładu: jeden wiersz nagłówka, trzy wiersze dla grupy Mozaika, jeden dla Orbita i jeden wiersz dla niedopasowanego żądania. Cztery pasujące rekordy mają łącznie 10 sztuk. Pusta komórka z liczbą obok grupy Kamyk odróżnia brak wyniku wyszukiwania od zasobu o liczbie równej zero.
Jak formuła składa wynik
Funkcja REDUCE zaczyna od A1:C1 jako akumulatora. Dla każdej wartości w zakresie E2:E4 funkcja key przechowuje bieżącą żądaną grupę, a acc — dotychczas złożony wynik. Microsoft opisuje ten wzorzec z wartością początkową, akumulatorem i bieżącą wartością w dokumentacji funkcji REDUCE.
W tej formule funkcja FILTER tworzy kolejny blok pasujących wyników, a VSTACK dołącza go pod acc. Użycie właściwego nagłówka jako wartości początkowej od razu daje wynik z trzema kolumnami i pozwala uniknąć dodawania tymczasowego pustego wiersza początkowego. Funkcja VSTACK dołącza tablice pionowo, jedna pod drugą, zgodnie z opisem w dokumentacji funkcji VSTACK.
Gdy nie ma dopasowań, trzeci argument funkcji FILTER dostarcza wartość HSTACK(key,"No match",""). Tworzy to trzykolumnowy wiersz zastępczy: żądaną grupę, etykietę wyjaśniającą i pustą liczbę. Microsoft opisuje argument dotyczący pustego wyniku w dokumentacji funkcji FILTER, a łączenie w poziomie w dokumentacji funkcji HSTACK.
Ważne, aby ten wiersz zastępczy miał trzy kolumny. Microsoft informuje, że funkcja VSTACK wypełnia brakujące kolumny błędem #N/A, gdy tablice wejściowe mają różne szerokości. Jednokomórkowy wiersz zastępczy pozostawiłby więc obok siebie niepożądane wypełnienie. Zobacz Funkcja VSTACK.
Zdecyduj o sposobie prezentacji wyników przed rozbudowaniem arkusza
Formuła realizuje konkretną zasadę: przetwarza każde żądanie po kolei, zachowuje wszystkie pasujące wiersze źródłowe i wyświetla jeden wiersz oznaczenia dla niedopasowanej grupy. Dlatego powtórzenie grupy na liście żądań spowoduje ponowne wyświetlenie odpowiadającego jej bloku. Powtórzony rekord źródłowy również zostanie zachowany; formuła nie usuwa duplikatów.
Skorzystaj z poniższej tabeli przy dostosowywaniu przykładu:
| Oczekiwany wynik | Odpowiednie podejście | Warunek |
|---|---|---|
| Jedna liczba dla każdej grupy | MAP z funkcją COUNTIF |
Każde żądanie zwraca pojedynczą wartość |
| Wszystkie rekordy zasobów w kolejności żądań | Powyższa pełna formuła REDUCE |
Wymaga funkcji udokumentowanych dla programu Excel dla Microsoft 365 dla komputerów Mac |
| Kilka jawnie wymienionych bloków wyszukiwania | Bezpośrednie VSTACK osobnych wywołań FILTER |
Dodaj argument formuły dla każdego żądania |
| Tablice zagnieżdżone przechowywane w komórkach | Wersja zapoznawcza tablic zagnieżdżonych firmy Microsoft | Wymaga udokumentowanej dostępności w kanale Beta i odpowiednich ustawień skoroszytu |
Aby sprawdzić liczbę w skróconej formie, wprowadź tę pełną formułę w K6, pozostawiając pod nią trzy wolne komórki:
=MAP($E$2:$E$4,LAMBDA(key,COUNTIF($A$2:$A$7,key)))
Oczekiwane liczby to 3, 1 i 0. To odpowiednie zastosowanie funkcji MAP, ponieważ każde żądanie zwraca jedną liczbę. Funkcja COUNTIF zlicza komórki spełniające kryterium; w przykładzie użyto prostych, syntetycznych etykiet. Zobacz funkcję MAP oraz Używanie funkcji COUNTIF w programie Microsoft Excel.
Alternatywa ze stałą listą żądań dla programu Excel 2024 dla komputerów Mac
Jeśli Twoja edycja zawiera funkcje FILTER, HSTACK i VSTACK, ale nie zawiera funkcji REDUCE, użyj tej kompletnej alternatywnej formuły w G1, zastępując poprzednią formułę. Dla trzech podanych żądań zwróci taki sam oczekiwany wynik:
=VSTACK(
$A$1:$C$1,
FILTER($A$2:$C$7,$A$2:$A$7=$E$2,HSTACK($E$2,"No match","")),
FILTER($A$2:$C$7,$A$2:$A$7=$E$3,HSTACK($E$3,"No match","")),
FILTER($A$2:$C$7,$A$2:$A$7=$E$4,HSTACK($E$4,"No match",""))
)
Microsoft wymienia program Excel 2024 dla komputerów Mac w dokumentacji wszystkich trzech wymaganych funkcji: FILTER, HSTACK i VSTACK. Wadą jest konieczność konserwacji: każda dodatkowa żądana grupa wymaga kolejnego argumentu funkcji FILTER.
Diagnozuj błędy i zachowaj kompletność wyników
Jeśli wystąpi błąd #SPILL!, zaznacz komórkę z formułą i sprawdź planowany obszar wyników. Usuń istniejące wpisy z tego obszaru i sprawdź, czy nie ma scalonych komórek. Microsoft wskazuje również, że przyczyną może być umieszczenie formuł w tabelach; wynik powinien znajdować się w zwykłej siatce arkusza. Zobacz Jak naprawić błąd #SPILL!.
W przypadku błędu #CALC! najpierw ustal, które obliczenie go spowodowało. Formuła BYROW zwracająca wielokomórkowy blok przekracza udokumentowane ograniczenie do pojedynczej wartości. Z kolei samodzielna formuła FILTER, która nie znajduje dopasowań i nie ma wartości zastępczej, może spowodować błąd pustej tablicy. Są to odrębne przyczyny opisane we wskazówkach Microsoft dotyczących błędu #CALC!.
Dodając rekordy źródłowe, rozszerz zarówno $A$2:$C$7, jak i $A$2:$A$7 do tego samego wiersza końcowego. Dodając żądania w wersji REDUCE, rozszerz zakres $E$2:$E$4 do ostatniego żądanego wiersza. Nie uwzględniaj nieużywanych komórek żądań: formuła przetwarza każdą komórkę z tego zakresu.
Jeśli lista źródłowa często rośnie, rozważ zapisanie jej w tabeli programu Excel i zastąpienie stałych odwołań źródłowych odwołaniami strukturalnymi. Microsoft informuje, że odwołania strukturalne dostosowują się po dodaniu lub usunięciu wierszy tabeli. Wynik rozlewający się powinien pozostać poza tabelą. Zobacz Formuły tablic dynamicznych i zachowanie rozlewania wyników.
Przed użyciem złożonej listy zasobów porównaj bloki grup z listą żądań i sprawdź oznaczenia niedopasowań. W tym przykładzie konkretny test kompletności jest prosty: trzy rekordy grupy Mozaika, jeden rekord Orbita, jedno widoczne oznaczenie dla Kamyk i brak rekordów Pryzmat. Potwierdza to prawidłowy wybór i kolejność dla podanych danych.
Źródła
Funkcja BYROW — Microsoft Support.
Funkcja MAP — Microsoft Support.
Funkcja REDUCE — Microsoft Support.
Funkcja VSTACK — Microsoft Support.
Funkcja HSTACK — Microsoft Support.
Funkcja FILTER — Microsoft Support.
Używanie funkcji COUNTIF w programie Microsoft Excel — Microsoft Support.
Formuły tablic dynamicznych i zachowanie rozlewania wyników — Microsoft Support.
Jak naprawić błąd #CALC! — Microsoft Support.
Jak naprawić błąd #SPILL! — Microsoft Support.
Informacje o pakiecie Office: z jakiej wersji pakietu Office korzystam? — Microsoft Support.
Umieszczanie wielu wartości w jednej komórce za pomocą list i tablic w programie Excel — Microsoft 365 Insider Blog.