
Generisk formel
(=MODE(IF(criteria,data)))
Sammanfattning
För att beräkna ett villkorligt läge med ett eller flera kriterier kan du använda en matrisformel baserad på funktionerna IF och MODE. I exemplet som visas är formeln i F5:
(=MODE(IF(group=E5,data)))
där "grupp" är det namngivna området B5: B14 och "data" är det namngivna området C5: C14.
Obs: detta är en matrisformel och måste anges med kontroll + skift + enter.
Förklaring
MODE-funktionen har inget inbyggt sätt att tillämpa kriterier. Med tanke på ett intervall returnerar det det nummer som förekommer oftast i det intervallet.
För att tillämpa kriterier använder vi IF-funktionen i MODE för att filtrera värden i ett intervall. I det här exemplet filtrerar IF-funktionen värden efter grupp med ett uttryck så här:
IF(group=E5,data)
Detta jämför varje värde i det angivna området "grupp" med värdet i E5, vilket är "A". Eftersom det logiska testet tillämpas på en array med flera värden blir resultatet en array med TRUE FALSE-värden:
(TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE)
där varje SANT motsvarar en rad där gruppen är "A". Denna matris blir ett filter. För varje SANT returnerar IF motsvarande värde i det angivna intervallet "data". FALSE värden förblir oförändrade. Det slutliga resultatet av IF är denna matris:
(3;FALSE;3;FALSE;5;FALSE;1;FALSE;2;FALSE)
Observera att endast värden i grupp A har överlevt, grupp B-värden är nu FALSE. Denna matris återgår till MODE-funktionen, som automatiskt ignorerar FALSE-värden och returnerar det nummer som oftast förekommer, vilket är 3.
Obs! När IF används på detta sätt för att filtrera värden med en arrayoperation måste formeln anges med kontroll + shift + enter.
Ytterligare kriterier
För att tillämpa mer än ett kriterium kan du hysa en annan IF i den första IF:
(=MODE(IF(criteria1,IF(criteria2,data))))