
Yleinen kaava
=FILTER(data,(header="a")+(header="b"))
Yhteenveto
Suodata sarakkeita toimittamalla vaakasuuntainen taulukko sisällyttämisargumentille. Esitetyssä esimerkissä kaava kohdassa I5 on:
=FILTER(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))
Tulos on suodatettu tietojoukko, joka sisältää vain lähdetietojen sarakkeet A, C ja E.
Selitys
Vaikka FILTER-ohjelmaa käytetään yleisemmin rivien suodattamiseen, voit myös suodattaa sarakkeita, temppu on toimittaa taulukolle sama määrä sarakkeita kuin lähdetiedot. Tässä esimerkissä rakennetaan tarvittava taulukko loogisella logiikalla, jota kutsutaan myös Boolen algebraksi.
Boolen algebrassa kertolasku vastaa AND-logiikkaa ja summaus vastaa OR-logiikkaa. Esitetyssä esimerkissä käytämme Boolen algebraa OR-logiikalla (lisäys) kohdistamaan vain sarakkeet A, C ja E näin:
(B4:G4="a")+(B4:G4="c")+(B4:G4="e")
Kun jokainen lauseke on arvioitu, meillä on kolme TOSI / EPÄTOSI-arvoa:
(TRUE,FALSE,FALSE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,TRUE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)
Matemaattinen operaatio (lisäys) muuntaa TOSI- ja EPÄTOSI-arvot arvoksi 1 ja 0, joten voit ajatella operaatiota näin:
(1,0,0,0,0,0)+ (0,0,1,0,0,0)+ (0,0,0,0,1,0)
Loppujen lopuksi meillä on yksi vaakasuora taulukko 1s ja 0s:
(1,0,1,0,1,0)
joka toimitetaan suoraan FILTER-funktiolle include-argumenttina:
=FILTER(B5:G12,(1,0,1,0,1,0))
Huomaa, että lähdetiedoissa on 6 saraketta ja taulukossa 6 arvoa, kaikki joko 1 tai 0. FILTER käyttää tätä taulukkoa suodattimena sisällyttääkseen vain sarakkeet 1, 3 ja 5 lähdetietoihin. Sarakkeet 2, 4 ja 6 poistetaan. Toisin sanoen ainoat selviytyneet sarakkeet liittyvät 1-sarakkeisiin.
MATCH-toiminnolla
TAI-logiikan soveltaminen lisäyksellä, kuten yllä on esitetty, toimii hyvin, mutta se ei skaalaudu hyvin, ja tekee mahdottomaksi käyttää taulukkolaskenta-arvoluokkaa kriteereinä. Vaihtoehtoisesti voit käyttää MATCH-funktiota yhdessä tämän luvun ISNUMBER-funktion kanssa rakentaaksesi sisällysargumentin tehokkaammin:
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,("a","c","e"),0)))
MATCH-toiminto on konfiguroitu etsimään kaikkia taulukon vakion sarakkeiden otsikoita ("a", "c", "e") kuvan mukaisesti. Teemme sen tällä tavalla, jotta MATCH-tuloksella on mitat, jotka ovat yhteensopivia lähdetietojen kanssa, jotka sisältävät 6 saraketta. Huomaa myös, että MATCH: n kolmas argumentti on asetettu nollaksi tarkan vastaavuuden pakottamiseksi.
Kun MATCH on suoritettu, se palauttaa seuraavanlaisen taulukon:
(1,#N/A,2,#N/A,3,#N/A)
Tämä matriisi menee suoraan osioon ISNUMBER, joka palauttaa toisen taulukon:
(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)
Kuten yllä, tämä taulukko on vaakasuora ja sisältää 6 arvoa pilkuilla erotettuna. FILTER poistaa taulukon sarakkeet 2, 4 ja 6 taulukosta.
Alueella
Koska sarakeotsikot ovat jo laskentataulukossa alueella I4: K4, yllä olevaa kaavaa voidaan helposti mukauttaa käyttämään aluetta suoraan tällä tavalla:
=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,I4:K4,0)))
Alue I4: K4 arvioidaan ("a", "c", "e") ja käyttäytyy aivan kuten yllä olevan kaavan matriisivakio.