Per combinare risultati di ricerca di dimensioni variabili in Excel per Mac, utilizzare REDUCE con VSTACK per creare un'unica matrice rettangolare. Questa procedura guidata crea un elenco di risorse artistiche, mantiene l'ordine delle richieste e mostra i gruppi non corrispondenti invece di ometterli silenziosamente.
L'attività è semplice: ogni gruppo di risorse richiesto può corrispondere a diverse righe di origine, a una sola riga o a nessuna. Si desidera che tutti questi risultati siano in un unico intervallo di foglio di lavoro in espansione, con etichette e quantità delle risorse mantenute insieme.
Quali versioni di Excel per Mac supportano questo approccio?
Utilizzare Excel per Microsoft 365 per Mac per la formula principale riportata di seguito. Microsoft elenca esplicitamente tale edizione nella sua documentazione della funzione REDUCE. La pagina corrente non elenca Excel 2024 per Mac, quindi la presenza di altre funzioni di matrice moderne non garantisce che la formula completa sia disponibile.
| Funzione | Edizioni Mac elencate nella documentazione Microsoft pertinente | Ruolo qui |
|---|---|---|
BYROW, MAP |
Microsoft 365 per Mac; Excel 2024 per Mac | Spiegare l'approccio originale e i suoi limiti |
REDUCE |
Microsoft 365 per Mac | Trasportare il risultato in crescita tra le richieste |
VSTACK, HSTACK |
Microsoft 365 per Mac; Excel 2024 per Mac | Unire blocchi di risultati e costruire una riga di fallback |
FILTER |
Microsoft 365 per Mac; Excel 2024 per Mac; Excel 2021 per Mac | Restituire ogni riga di risorsa corrispondente |
Questi elenchi di edizioni provengono dalle pagine di riferimento Microsoft per BYROW, MAP, VSTACK, HSTACK e FILTER.
Per controllare l'installazione, aprire il menu Excel e scegliere Informazioni su Excel. Le istruzioni Microsoft per Mac spiegano che la finestra di dialogo Informazioni su un'applicazione Office mostra la versione e il tipo di licenza. Controllare entrambi quando si decide quale formula utilizzare. Vedere Informazioni su Office: Quale versione di Office sto utilizzando?.
Una nuova anteprima Beta per Mac modifica il limite degli array nidificati
L'annuncio Microsoft del 24 settembre 2026 introduce gli array nidificati e FLATTEN come funzionalità in anteprima per il canale Beta. Specifica la versione Mac 16.114 Build 26092111 o successiva, con disponibilità soggetta a rollout. La maggior parte dei calcoli con array nidificati richiede la versione di compatibilità della cartella di lavoro 3, selezionabile tramite Formula > Opzioni di calcolo. Queste condizioni sono importanti: avere solo Microsoft 365 non garantisce che l'anteprima sia abilitata. Vedere Inserire più valori in una cella con elenchi e matrici in Excel.
La soluzione illustrata di seguito crea un risultato rettangolare ordinario senza fare affidamento su tale anteprima. Ciò evita anche di rendere l'attività di base dell'elenco di risorse della cartella di lavoro dipendente dalle impostazioni degli array nidificati.
Perché la restituzione di array da BYROW o MAP causa problemi?
Microsoft documenta BYROW come produzione di un risultato per riga di input. Il suo riferimento afferma esplicitamente che la restituzione di qualsiasi cosa diversa da un singolo valore dall'istruzione interna LAMBDA produce un errore #CALC!. Una ricerca che restituisce diversi record supera quel limite documentato. Vedere Funzione BYROW.
Ad esempio, dopo aver inserito i dati di esempio nella sezione successiva, questo è un esempio diagnostico dell'approccio problematico in base al comportamento a valore singolo documentato:
=BYROW(E2:E4,LAMBDA(key,FILTER(A2:C7,A2:A7=key,"No match")))
La prima richiesta restituisce tre righe e tre colonne. Chiedere a BYROW di inserire quel blocco in una sola posizione di risultato crea un problema di array nidificati. Cambiare la funzione esterna in MAP non fornisce un'operazione di impilamento generale nel comportamento di calcolo convenzionale: il risultato interno contiene ancora più celle. La documentazione di MAP di Microsoft descrive il mapping dei valori di input in nuovi valori, mentre la sua guida su #CALC! documenta la limitazione degli array nidificati.
L'incapsulamento del calcolo non riuscito in VSTACK non può riparare il risultato interno. La modifica utile consiste nell'accodare ogni blocco di ricerca durante l'elaborazione delle richieste, in modo che ogni risultato intermedio sia già una matrice rettangolare.
Creare una ricerca completa di risorse con REDUCE e VSTACK
1. Inserire i dati di origine sintetici
Iniziare con un foglio di lavoro vuoto. Incollare questo blocco separato da tabulazioni in A1. Le quantità sono conteggi illustrativi di risorse artistiche.
Group Asset Quantity
Mosaic Tile Amber 2
Orbit Ring Silver 3
Mosaic Tile Blue 4
Prism Panel Clear 5
Mosaic Tile Coral 1
Prism Panel Frost 2
Incollare il seguente elenco di richieste in E1. Mantenere l'ordine mostrato in modo da poter confrontare il risultato previsto.
Requested group
Mosaic
Orbit
Pebble
Questo esempio include deliberatamente tre esiti: Mosaic ha tre record corrispondenti, Orbit ne ha uno e Pebble nessuno. I record Prism devono rimanere fuori dall'output perché quel gruppo non è stato richiesto.
2. Verificare una ricerca indipendentemente
Inserire questa formula in un'area inutilizzata, ad esempio L1:
=FILTER($A$2:$C$7,$A$2:$A$7=$E$2,"No match")
Dovrebbe restituire i tre record Mosaic. FILTER utilizza il confronto tra gruppi per selezionare le righe complete dall'origine. Il suo array di inclusione deve avere un'altezza o una larghezza compatibile; qui sia l'origine che la condizione coprono le righe 2:7. Vedere Funzione FILTER.
Questo piccolo controllo isola la ricerca dalla logica di impilamento. Se queste righe sono errate, correggere le etichette o i riferimenti di origine prima di aggiungere il calcolo esterno.
3. Inserire la formula di impilamento completa
Lasciare spazio nelle colonne G:I, quindi inserire questa formula in 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","")
)
)
)
)
Premere Invio. Inserire la formula una sola volta nella cella di output in alto a sinistra; Excel ridimensiona automaticamente l'intervallo di riversamento. Mantenerla fuori da una tabella di Excel, poiché le formule di matrice riversate non sono supportate all'interno delle tabelle. Microsoft spiega entrambi i comportamenti in Formule di matrice dinamica e comportamento degli array riversati.
4. Confrontare il risultato previsto
Per i dati forniti, l'output occupa G1:I6:
| Gruppo | Risorsa | Quantità |
|---|---|---|
| Mosaic | Tile Amber | 2 |
| Mosaic | Tile Blue | 4 |
| Mosaic | Tile Coral | 1 |
| Orbit | Ring Silver | 3 |
| Pebble | Nessuna corrispondenza |
Le dimensioni previste derivano direttamente dall'esempio: una riga di intestazione, tre righe Mosaic, una riga Orbit e una riga di richiesta non corrispondente. I quattro record corrispondenti contengono quantità per un totale di 10. La quantità vuota accanto a Pebble distingue un risultato di ricerca mancante da una quantità di risorse pari a zero.
Come la formula assembla il risultato
REDUCE inizia con A1:C1 come accumulatore. Per ogni valore in E2:E4, key contiene il gruppo richiesto corrente e acc contiene il risultato assemblato finora. Microsoft documenta questo schema di valore iniziale, accumulatore e valore corrente in Funzione REDUCE.
In questa formula, FILTER crea il blocco corrispondente successivo e VSTACK lo accoda sotto acc. L'utilizzo dell'intestazione effettiva come valore iniziale fornisce immediatamente al risultato tre colonne ed evita l'introduzione di una riga iniziale vuota eliminabile. VSTACK accoda gli array verticalmente in sequenza, come descritto in Funzione VSTACK.
Quando non ci sono corrispondenze, il terzo argomento di FILTER fornisce HSTACK(key,"No match",""). Ciò crea una riga di fallback a tre colonne: gruppo richiesto, etichetta esplicativa e quantità vuota. Microsoft documenta l'argomento per risultato vuoto in Funzione FILTER e l'unione orizzontale in Funzione HSTACK.
Mantenere quel fallback largo tre colonne è importante. Microsoft documenta che VSTACK riempie le colonne mancanti con #N/A quando gli array di input hanno larghezze diverse. Un fallback a singola cella lascerebbe quindi un riempimento indesiderato accanto a esso. Vedere Funzione VSTACK.
Scegliere il comportamento di output prima di estendere il foglio di lavoro
La formula implementa una politica specifica: elaborare ogni richiesta in ordine, mantenere tutte le righe di origine corrispondenti e mostrare una riga di segnalazione per un gruppo non corrispondente. La ripetizione di un gruppo nell'elenco di richieste di conseguenza ripete il suo blocco corrispondente. La ripetizione di un record di origine preserva anche quel record; questa formula non contiene alcun passaggio di rimozione dei duplicati.
Utilizzare questo ausilio decisionale quando si adatta l'esempio:
| Risultato desiderato | Approccio adatto | Condizione |
|---|---|---|
| Un conteggio per ogni gruppo | MAP con COUNTIF |
Ogni richiesta produce un singolo valore |
| Tutti i record delle risorse nell'ordine delle richieste | La formula completa REDUCE sopra |
Richiede le funzioni Microsoft 365 per Mac documentate |
| Alcuni blocchi di ricerca elencati esplicitamente | VSTACK diretto di chiamate FILTER separate |
Aggiungere un argomento di formula per ogni richiesta |
| Array nidificati mantenuti all'interno delle celle | Anteprima degli array nidificati di Microsoft | Richiede la disponibilità Beta documentata e le impostazioni della cartella di lavoro |
Per un controllo del conteggio compatto, inserire questa formula completa in K6, lasciando tre celle sotto di essa disponibili:
=MAP($E$2:$E$4,LAMBDA(key,COUNTIF($A$2:$A$7,key)))
I conteggi previsti sono 3, 1 e 0. Questo è un uso appropriato di MAP perché ogni richiesta produce un numero. COUNTIF conta le celle che soddisfano un criterio; l'esempio utilizza etichette sintetiche semplici. Vedere Funzione MAP e Utilizzare la funzione CONTEGGIO.SE in Microsoft Excel.
Un'alternativa a richieste fisse per Excel 2024 per Mac
Se la propria edizione fornisce FILTER, HSTACK e VSTACK ma non fornisce REDUCE, utilizzare questa alternativa completa in G1, sostituendo la formula precedente. Produce lo stesso output previsto per le tre richieste fornite:
=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 elenca Excel 2024 per Mac nella documentazione di tutte e tre le funzioni richieste: FILTER, HSTACK e VSTACK. Il compromesso è la manutenzione: un altro gruppo richiesto necessita di un altro argomento FILTER.
Diagnosticare gli errori e mantenere il risultato completo
In caso di errore #SPILL!, selezionare la cella della formula e ispezionare l'area di output prevista. Spostare le voci esistenti fuori da quell'area e controllare la presenza di celle unite. Microsoft identifica anche le formule posizionate all'interno delle tabelle come causa; mantenere l'output nella griglia normale del foglio di lavoro. Vedere Come correggere un errore #SPILL!.
Per #CALC!, identificare innanzitutto quale calcolo lo ha prodotto. Una formula BYROW che restituisce un blocco multi-cella raggiunge il limite a valore singolo documentato. Una formula FILTER autonoma senza corrispondenze e senza fallback può invece produrre un errore di array vuoto. Si tratta di cause separate descritte nella guida su #CALC! di Microsoft.
Quando si aggiungono record di origine, estendere sia $A$2:$C$7 che $A$2:$A$7 alla stessa riga finale. Quando si aggiungono richieste alla versione REDUCE, estendere $E$2:$E$4 all'ultima richiesta prevista. Evitare di includere celle di richiesta inutilizzate: la formula elabora ogni cella in quell'intervallo.
Per un elenco di origine che cresce regolarmente, considerare di memorizzare l'origine in una tabella di Excel e sostituire i riferimenti di origine fissi con riferimenti strutturati. Microsoft documenta che i riferimenti strutturati si adattano quando le righe della tabella vengono aggiunte o rimosse. Mantenere il risultato riversato fuori dalla tabella. Vedere Formule di matrice dinamica e comportamento degli array riversati.
Prima di utilizzare l'elenco di risorse assemblato, confrontare i suoi blocchi di gruppi con l'elenco delle richieste e controllare i segnalatori non corrispondenti. In questo esempio, il controllo di completamento utile è concreto: tre record Mosaic, un record Orbit, un segnalatore Pebble visibile e nessun record Prism. Ciò conferma la selezione e l'ordinamento previsti per i dati forniti.
Fonti
BYROW function — Supporto Microsoft.
MAP function — Supporto Microsoft.
REDUCE function — Supporto Microsoft.
VSTACK function — Supporto Microsoft.
HSTACK function — Supporto Microsoft.
FILTER function — Supporto Microsoft.
Utilizzare la funzione CONTEGGIO.SE in Microsoft Excel — Supporto Microsoft.
Formule di matrice dinamica e comportamento degli array riversati — Supporto Microsoft.
Come correggere un errore #CALC! — Supporto Microsoft.
Come correggere un errore #SPILL! — Supporto Microsoft.
Informazioni su Office: Quale versione di Office sto utilizzando? — Supporto Microsoft.
Inserire più valori in una cella con elenchi e matrici in Excel — Blog Microsoft 365 Insider.