Excel-formule: filter sluit lege waarden uit -

Inhoudsopgave

Generieke formule

=FILTER(data,(rng1"")*(rng2"")*(rng3""))

Samenvatting

Om rijen met lege of lege cellen uit te filteren, kunt u de FILTER-functie met booleaanse logica gebruiken. In het getoonde voorbeeld is de formule in F5:

=FILTER(B5:D15,(B5:B15"")*(C5:C15"")*(D5:D15""))

De uitvoer bevat alleen rijen van de brongegevens waarvan alle drie de kolommen een waarde hebben.

Uitleg

De FILTER-functie is ontworpen om gegevens te extraheren die voldoen aan een of meer criteria. In dit geval willen we criteria toepassen die vereisen dat alle drie de kolommen in de brongegevens (naam, groep en ruimte) gegevens bevatten. Met andere woorden, als een rij een van deze waarden mist, willen we die rij uitsluiten van uitvoer.

Om dit te doen, gebruiken we drie booleaanse expressies die op arrays werken. De eerste uitdrukking test op lege namen:

B5:B15"" // check names

De operator not () met een lege string ("") vertaalt zich naar "niet leeg". Voor elke cel in het bereik B5: B15 is het resultaat WAAR of ONWAAR, waarbij WAAR betekent "niet leeg" en ONWAAR betekent "leeg". Omdat er 11 cellen in het bereik zijn, krijgen we 11 resultaten in een array als deze:

(TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE)

De tweede uitdrukking test voor blanco groepen:

C5:C15"" // check groups

Nogmaals, we controleren 11 cellen, dus we krijgen 11 resultaten:

(TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE)

Ten slotte controleren we op lege kamernummers:

D5:D15"" // check groups

die produceert:

(TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE)

Wanneer de matrices die het resultaat zijn van de drie bovenstaande uitdrukkingen met elkaar worden vermenigvuldigd, worden de waarden WAAR en ONWAAR samengebracht met 1s en 0s. We gebruiken in dit geval vermenigvuldiging, omdat we de "AND" -logica willen afdwingen: expression1 AND expression2 AND expression3. Met andere woorden, alle drie de uitdrukkingen moeten WAAR in een bepaalde rij retourneren.

Volgens de regels van de booleaanse logica is het eindresultaat een array als deze:

(1;0;1;0;1;1;1;0;0;0;1)

Deze array wordt rechtstreeks aan de FILTER-functie geleverd als het include-argument. FILTER bevat alleen de 6 rijen die overeenkomen met 1s in de uiteindelijke uitvoer.

Interessante artikelen...