Formula Excel: IF cu logică booleană -

Cuprins

Formula generică

= IF(criteria1*criteria2*criteria3,result)

rezumat

În exemplul prezentat, formula din F8 este:

(=SUM(IF((color="red")*(region="East")*(quantity>7),quantity)))

Notă: aceasta este o formulă matrice și trebuie introdusă cu control + shift + enter.

Explicaţie

Notă: Acest exemplu demonstrează cum se înlocuiește o formulă IF imbricată cu un singur IF într-o formulă matrice utilizând logica booleană. Această tehnică poate fi utilizată pentru a reduce complexitatea în formule complexe. Cu toate acestea, exemplul este doar pentru ilustrare. Această problemă particulară ar putea fi rezolvată cu ușurință cu SUMIFS sau SUMPRODUCT.

Formulele din F7 și F8 returnează același rezultat, dar au abordări diferite. În celula F7, avem următoarea formulă, folosind o abordare IF imbricată:

(=SUM(IF(color="red",IF(region="east",IF(quantity>7,quantity)))))

Acesta este modul în care Excel evaluează IF-urile din SUM:

=IF((TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;TRUE), IF((TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE), IF((FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE),quantity)))

În esență, fiecare IF „filtrează” valorile în următorul IF și numai cantitățile în care toate cele trei teste logice returnează TRUE „supraviețuiesc” operației. Alte cantități devin FALSE și sunt evaluate de SUM ca zero. Rezultatul final din SUM este o serie de valori ca aceasta:

=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))

Valorile FALSE se evaluează la zero, iar funcția SUM returnează un rezultat final de 18.

În F8 avem această formulă, care folosește o singură logică IF și booleană:

=SUM(IF((color="red")*(region="East")*(quantity>7),quantity))

Fiecare expresie logică returnează o matrice de valori ADEVĂRATE și FALSE. Când aceste matrici sunt înmulțite împreună, operația matematică constrânge valori la unii și zerouri într-o singură matrice ca aceasta:

IF((0;0;0;0;0;0;1;0;1),quantity)

Matricea de 1s și 0s filtrează datele irelevante și același rezultat livrat către SUM:

=SUM((FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;8;FALSE;10))

Ca și înainte, SUM returnează un rezultat final de 18.

Articole interesante...