Excel-formule: filter en transponeer horizontaal naar verticaal -

Inhoudsopgave

Generieke formule

=TRANSPOSE(FILTER(data,logic))

Samenvatting

Om horizontaal gerangschikte gegevens te filteren en het resultaat verticaal weer te geven, kunt u de FILTER-functie samen met TRANSPONEREN gebruiken. In het getoonde voorbeeld is de formule in B10:

=TRANSPOSE(FILTER(data,group="fox"))

waarbij gegevens (C4: L6) en groep (C5: L5) benoemde bereiken zijn.

Uitleg

Het doel is om de horizontale gegevens in het bereik C4: L6 te filteren om leden van de groep "fox" te extraheren en resultaten weer te geven met gegevens die zijn omgezet naar een verticaal formaat. Voor het gemak en de leesbaarheid hebben we twee benoemde bereiken om mee te werken: data (C4: L6) en groep (C5: L5).

De FILTER-functie kan worden gebruikt om gegevens te extraheren die verticaal (in rijen) of horizontaal (in kolommen) zijn gerangschikt. FILTER retourneert de overeenkomende gegevens in dezelfde richting. De formule in B5 is:

=TRANSPOSE(FILTER(data,group="fox"))

Werkend van binnen naar buiten, is het include-argument voor FILTER een logische uitdrukking:

group="fox" // test for "fox"

Wanneer de logische uitdrukking wordt geëvalueerd, retourneert deze een array van 10 WAAR en ONWAAR waarden:

(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE)

Opmerking: de komma's (,) in deze array geven kolommen aan. Puntkomma's (;) zouden rijen aangeven.

De array bevat één waarde per record in de gegevens, en elke TRUE komt overeen met een kolom waarin de groep "fox" is. Deze array wordt direct naar FILTER geretourneerd als het include-argument, waar het de daadwerkelijke filtering doet:

FILTER(data,(TRUE,FALSE,TRUE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE,FALSE))

Alleen gegevens in kolommen die overeenkomen met TRUE, komen door het filter, dus het resultaat is gegevens voor de zes personen in de "fox" -groep. FILTER retourneert deze gegevens in de oorspronkelijke horizontale structuur. Omdat we de resultaten van FILTER in een verticaal formaat willen weergeven, is de functie TRANSPONEREN om de functie FILTER heen gewikkeld:

=TRANSPOSE(FILTER(data,group="fox"))

De functie TRANSPONEREN transponeert de gegevens en retourneert een verticale matrix als een eindresultaat in cel B10. Omdat FILTER een dynamische matrixfunctie is, lopen de resultaten over in het bereik B10: D15. Als gegevens in gegevens (C4: L6) veranderen, wordt het resultaat van FILTER automatisch bijgewerkt.

Interessante artikelen...