
Generisk formel
=SUM(COUNTIF(INDIRECT(("rng1","rng2","rng3")),criteria))
Sammanfattning
För att räkna ett icke-sammanhängande intervall med kriterier kan du använda COUNTIF-funktionen tillsammans med INDIRECT och SUM. I exemplet som visas innehåller cell I5 denna formel:
=SUM(COUNTIF(INDIRECT(("B5:B8","D7:D10","F6:F11")),">50"))
Förklaring
COUNTIF räknar antalet celler i ett intervall som uppfyller givna kriterier. Om du försöker använda COUNTIF med flera intervall åtskilda av komma får du ett fel. En lösning är att skriva ut intervallen som text i en arraykonstant inuti INDIRECT-funktionen så här:
INDIRECT(("B5:B8","D7:D10","F6:F11"))
INDIRECT utvärderar textvärdena och skickar flera intervall till COUNTIF. Eftersom COUNTIF får mer än ett intervall returnerar det mer än ett resultat i en matris. Vi använder SUM-funktionen för att "fånga" och hantera matrisen:
=SUM((4,2,3))
SUM-funktionen returnerar sedan summan av alla värden, 9. Även om detta är en matrisformel, behöver den inte CSE, eftersom vi använder en matriskonstant.
Obs: INDIRECT är en flyktig funktion och kan påverka arbetsbokens prestanda.
Flera COUNTIF
Ett annat sätt att lösa detta problem är att använda mer än en COUNTIF:
=COUNTIF(B5:B8,">50")+COUNTIF(D7:D10,">50")+COUNTIF(F6:F11,">50")
Med ett begränsat antal intervall kan detta tillvägagångssätt vara enklare att implementera. Det undviker möjliga prestandakonsekvenser av INDIRECT och tillåter en normal formelsyntax för intervall, så intervall uppdateras automatiskt med ändringar av kalkylbladet.
Enstaka cellintervall
Med enstaka cellintervall kan du skriva en formel utan COUNTIF så här:
=(A1>50)+(C1>50)+(E1>50)
Varje uttryck returnerar SANT eller FALSKT när de tvingas till 1 och noll under matteoperationen. Detta är ett exempel på att använda boolesk logik i en formel.