Documentatie/Calc-functies/SOM.ALS

From The Document Foundation Wiki
Jump to navigation Jump to search
This page is a translated version of the page Documentation/Calc Functions/SUMIF and the translation is 100% complete.
Other languages:
English • ‎Nederlands • ‎dansk



Functienaam:

SOM.ALS

Categorie:

Wiskundig

Samenvatting:

In zijn eenvoudigste vorm bepaalt SOM.ALS welke cellen in een bereik voldoen aan een bepaald criterium en berekent het de som van de getallen in die overeenkomende cellen. In de tweede vorm bepaalt SOM.ALS welke cellen in een bereik voldoen aan een bepaald criterium en berekent vervolgens de som van de getallen in de overeenkomstige cellen van een tweede bereik.

Het criterium dat aan SOM.ALS wordt doorgegeven, kan gebruikmaken van jokertekens of reguliere expressies.

Syntaxis:

SOM.ALS(Bereik; Criteria[; Sombereik])

Retourneert:

Retourneert een reëel getal dat het resultaat is van het optellen van de getallen in relevante cellen.

Argumenten:

Argument Bereik

Bereik specificeert de cellen die moeten worden vergeleken en, wanneer het Sombereik argument wordt weggelaten, de cellen die moeten worden opgeteld. Bereik neemt gewoonlijk een van de volgende vormen aan:

  • Een verwijzing naar een celbereik (bijvoorbeeld A1:A25). Als Sombereik wordt weggelaten, kan Bereik de referentie-aaneenschakelingsoperator (~) gebruiken.
  • De naam van een benoemd bereik.
  • De naam van een databasebereik.

Argument Criteria

Criteria is het criterium voor het matchen, of een cel die dat criterium bevat. Criteria kan één van de volgende vormen aannemen:

  • Een getal, zoals 34,5. Datums en logische waarden (WAAR of ONWAAR) worden behandeld als getallen.
  • Een uitdrukking, zoals 2/3, WORTEL($D$1) of DATUM(2021; 11; 1).
  • Een tekenreeks, zoals "golf" of "<>10".

SOM.ALS zoekt naar cellen in Bereik die gelijk zijn aan Criteria, tenzij Criteria een tekenreeks is die begint met een comparator (>, <, >=, < =, = of <>). In het laatste geval vergelijkt SOM.ALS de cellen in Bereik met de rest van de tekstreeks (indien mogelijk geïnterpreteerd als een getal en anders als tekst). De voorwaarde ">4,5" test bijvoorbeeld of de inhoud van elke cel groter is dan het getal 4,5, de voorwaarde "<hond" test of de inhoud van elke cel alfabetisch voor de tekst "hond" komt, en de voorwaarde "< >2021-11-01" test of de inhoud van elke cel niet gelijk is aan de opgegeven datum.

Criteria ondersteunt het volgende specifieke gedrag:

  • De tekenreeks "=" komt overeen met lege cellen. De formule =SOM.ALS(B1:B10; "="; A1:A10) retourneert bijvoorbeeld de som van alle waarden in het bereik A1:A10 als alle cellen in het bereik B1:B10 leeg zijn. Merk op dat "=0" niet overeenkomt met lege cellen.
  • De tekenreeks "<>" komt overeen met niet-lege cellen. De formule =SOM.ALS(C1:C10; "<>"; A1:A10) retourneert bijvoorbeeld de som van alle waarden in het bereik A1:A10 als er geen lege cellen in het bereik C1 zijn: C10.
  • Als de waarde na de <> comparator niet leeg is, komt Criteria overeen met elke celinhoud behalve die waarde, inclusief lege cellen.

Argument Sombereik

Sombereik specificeert de cellen die moeten worden opgeteld en neemt één van de vormen aan die worden vermeld voor Bereik. Sombereik zou normaal dezelfde afmetingen moeten hebben als Bereik - als dit niet het geval is, zal SOM.ALS een celbereik optellen beginnend bij de eerste cel in Sombereik en met dezelfde afmetingen als Bereik.

Foutcondities

  • Als het argument Sombereik is opgegeven en de referentie-aaneenschakelingsoperator wordt gebruikt binnen Bereik, dan retourneert SOM.ALS als fout Fout in lijst met parameters (Fout:504).

Aanvullende details:

Details specifiek voor de functie SOM.ALS

  • SOM.ALS staat slechts één matchingscriterium toe. Als u cellen moet optellen op basis van meerdere criteria, gebruikt u de functie SOMMEN.ALS.
  • De standaardovereenkomst die wordt uitgevoerd door SOM.ALS is niet hoofdlettergevoelig. Een hoofdlettergevoelige overeenkomst kan echter worden uitgevoerd bij gebruik van een reguliere expressie door een modusmodifier "(?-i)" op te nemen in de reguliere expressie, zoals blijkt uit één van de onderstaande voorbeelden.
  • Het gedrag van SOM.ALS wordt beïnvloed door verschillende instellingen die beschikbaar zijn in het dialoogvenster Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen (LibreOffice ▸ Voorkeuren ▸ LibreOffice Calc ▸ Calculate op macOS).
  1. Als het selectievakje is aangevinkt voor Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn, dan komt de voorwaarde "rood" alleen overeen met "rood"; indien niet aangevinkt, komt het overeen met "rood", "Fred", "rood bruin".
  2. Als het selectievakje is aangevinkt voor Jokertekens in formules inschakelen, komt de voorwaarde overeen met behulp van jokertekens - dus bijvoorbeeld "b?g" komt overeen met "bag", "beg", "big", "bog ", en "bug".
  3. Als het selectievakje is aangevinkt voor Reguliere expressies in formules toestaan, komt de voorwaarde overeen met het gebruik van reguliere expressies - dus bijvoorbeeld "rd" komt overeen met "red", "rid" en "rod", terwijl "red.*" komt overeen met "red", "redden" en "reddingsboot".
  4. De instelling van het selectievakje Hoofdlettergevoelig heeft geen invloed op de werking van SOM.ALS.



Calc wildcards
Jokerteken Beschrijving
? (vraagteken) Komt overeen met elk afzonderlijk teken. De zoekreeks 'b?g' komt bijvoorbeeld overeen met 'bag' en 'beg', maar niet met 'boog' of 'mug'.

Houd er rekening mee dat deze ook niet overeenkomt met 'bg' , sinds "?" moet exact overeenkomen met één karakter. Het "?" jokerteken komt niet overeen met een nul-tekenovereenkomst.
* (sterretje) Komt overeen met elke reeks tekens, inclusief een lege tekenreeks. De zoekreeks "*cast" komt bijvoorbeeld overeen met "cast", "forecast" en "outcast", maar komt niet overeen met "forecaster" met de standaardinstellingen van Calc.

Als de optie 'Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn' is uitgeschakeld in Extra > Opties > LibreOffice Calc > Berekenen, dan zal 'forecaster' een overeenkomst zijn met de zoekreeks '*cast'.
~ (tilde) Ontvangt de speciale betekenis van een vraagteken, asterisk of tilde-teken dat direct volgt op het tilde-teken.

Bijvoorbeeld de zoekreeks "why~?" komt overeen met "why?" maar komt niet overeen met "whys" of "why~s".


Voorbeelden:

Basisvoorbeelden

Formule Beschrijving Retourneert
=SOM.ALS(A1:A9; "<0") waarbij de cellen A1 t/m A9 respectievelijk de getallen -1, 2, -3, 4, -5, 6, -7, 8 en -9 bevatten. Hier telt de functie de negatieve getallen in het celbereik A1:A9 op. -25
=SOM.ALS(A1:A9; F1) waarbij cellen A1 tot A9 respectievelijk de getallen -1, 2, -3, 4, -5, 6, -7, 8 en -9 bevatten en cel F1 de tekenreeks ">= 0" (ingevoerd zonder dubbele aanhalingstekens te typen). Hier telt de functie de niet-negatieve getallen op in het celbereik A1:A9. 20
=SOM.ALS(B2:B4; "<"&F2; C2:C4) waarbij cellen B2 tot B4 respectievelijk de nummers 7, 9 en 11 bevatten; cellen C2 tot C4 bevatten respectievelijk de nummers 4, 5 en 6 en cel F2 bevat het getal 10. Hier bepaalt de functie dat de waarden in de cellen B2 en B3 kleiner zijn dan 10 en telt dus de waarden in de cellen C2 en C3 op. 9
=SOM.ALS(D1:D9; "appels"; E1:E9) waarbij de cellen D1, D4, D5, D6 en D9 de tekenreeks "appels" bevatten; cellen D2, D3, D7 en D8 bevatten de tekst "peren"; en cellen E1 tot E9 bevatten respectievelijk de nummers 12, 19, 10, 27, 97, 73, 79, 71 en 40, die een hoeveelheid van het overeenkomstige fruit vertegenwoordigen. Hier berekent de functie de totale hoeveelheid appels. 249

Andere voorbeelden

De voorbeelden in deze subsectie zijn gebaseerd op een kleine database met verkoopgegevens voor sportuitrusting, met de gegevens gerangschikt zoals in de volgende tabel.

A B C D E
1 Datum Verkoopwaarde Categorie Regio Werknemer
2 2021-10-02 $1,508 Golf Oost Hans
3 2021-10-02 $410 Tennis Noord Kurt
4 2021-10-02 $2,340 Zeilen Zuid Ute
5 2021-10-03 $4,872 Tennis Oost Brigitte
6 2021-10-06 $3,821 Tennis Zuid Fritz
7 2021-10-06 $2,623 Tennis Oost Fritz
8 2021-10-07 $3,739 Golf Zuid Fritz
9 2021-10-08 $4,195 Golf West Ute
10 2021-10-10 $2,023 Golf Oost Hans
Formule Beschrijving Retourneert
=SOM.ALS(B2:B10; ">=4000") Hier telt de functie de numerieke invoer op in de gegevens van Verkoopwaarde die groter zijn dan of gelijk zijn aan $ 4.000. $9,067
=SOM.ALS(E2:E10; "ute"; B2:B10) Hier lokaliseert de functie de invoer voor Ute in de gegevens Werknemer en sommeert de corresponderende numerieke invoer in de gegevens Verkoopwaarde. $6,535
=SOM.ALS(CategorieGegevens; "golf"; B2:B10) waarbij het genoemde bereik CategorieGegevens is gemaakt om het celbereik C2:C10 te dekken. Hier lokaliseert de functie de gegevens voor Golf in het gegeven Categorie en telt de corresponderende numerieke invoer in de gegevens Verkoopwaarde op. $11,465
=SOM.ALS(D2:D10; F1; B2:B10) waarbij cel F1 de tekst ">=west" bevat (ingevoerd zonder dubbele aanhalingstekens te typen). Hier lokaliseert de functie de invoer voor West en Zuid in de gegevens Regio en telt de corresponderende numerieke invoer in de gegevens Verkoopwaarde op. $14,095
=SOM.ALS(A2:A10; DATUM(2021; 10; 2); B2:B10) Hier lokaliseert de functie de vermeldingen voor 2021-10-02 in de kolom Datum en telt de overeenkomstige numerieke invoer in de gegevens van de Verkoopwaarde op. $4,258
=SOM.ALS(A2:A10; ">="&DATUM(2021; 10; 7); B2:B10) Hier lokaliseert de functie de invoer die is gedateerd op of na 2021-10-07 in de kolom Datum en telt de corresponderende numerieke invoer in de gegevens Verkoopwaarde op. $9,957
=SOM.ALS(D2:D10; "???t"; B2:B10) Dit voorbeeld werkt alleen zoals hier beschreven als jokertekens zijn ingeschakeld. Hier lokaliseert de functie de invoer van drie tekens en de letter "t" in de gegevens Regio (Oost en West) en telt de corresponderende numerieke invoer in de gegevens Verkoopwaarde op. $15,221
=SOM.ALS(E2:E10; "^f.*"; B2:B10) Dit voorbeeld werkt alleen zoals hier beschreven als reguliere expressies zijn ingeschakeld. Hier zoekt de functie de invoer in de gegevens Werknemer die beginnen met de letter "f" of "F" (Fritz) en telt de overeenkomstige numerieke invoer in de gegevens Verkoopwaarde op. $10,183
=SOM.ALS(E2:E10; "(?-i)ute"; B2:B10) Dit voorbeeld werkt alleen zoals hier beschreven als reguliere expressies zijn ingeschakeld. De modusmodifier "(?-i)" binnen de reguliere expressie verandert in een hoofdlettergevoelige overeenkomst en er worden dus geen vermeldingen gevonden in de gegevens Werknemer. Vergelijk dit met het tweede voorbeeld in deze tabel. $0

Gerelateerde LibreOffice-functies:

AANTAL.ALS

SOM

SOMMEN.ALS

ODF standaard:

Section 6.16.62, part 2

Gelijkwaardige Excel-functies:

SOM.ALS