Documentatie/Calc-functies/SOMMEN.ALS
TDF LibreOffice Document Liberation Project Blogs gemeenschap Weblate Nextcloud Redmine Ask LibreOffice Doneren
Functienaam:
SOMMEN.ALS
Categorie:
Wiskundig
Samenvatting:
Berekent de som van een reeks getallen in een celbereik, waarbij de bij elkaar op te tellen cellen worden bepaald aan de hand van meerdere criteria. Het belangrijkste verschil tussen SOMMEN.ALS en Calc's SOM.ALS functie is dat de laatste beperkt is tot het evalueren van slechts één criterium.
De criteria die aan SOMMEN.ALS worden doorgegeven, kunnen gebruikmaken van jokertekens of reguliere expressies.
Syntaxis:
SOMMEN.ALS(Sombereik; Bereik 1; Criteria 1[; Bereik 2; Criteria 2[; … [; Bereik 127; Criteria 127]]])
Retourneert:
Retourneert een reëel getal dat het resultaat is van het optellen van de getallen in relevante cellen.
Argumenten:
Argument Sombereik
Sombereik specificeert de cellen die moeten worden opgeteld. Sombereik heeft meestal één van de volgende vormen:
- Een verwijzing naar een celbereik (bijvoorbeeld A1:A25), die mogelijk geen gebruik maakt van de referentie-aaneenschakelingsoperator (~).
- De naam van een benoemd bereik.
- De naam van een databasebereik.
Argumenten Bereik
Bereik 1 specificeert de set cellen die moet worden vergeleken met Criteria 1 en neemt één van de vormen aan die worden vermeld voor Sombereik. Bereik 1 moet dezelfde afmetingen hebben als Sombereik.
Bereik 2, ..., Bereik 127 hebben dezelfde betekenis als Bereik 1.
Argumenten Criteria
Criteria 1 is het criterium voor het matchen met de cellen in Bereik 1 of een cel die dat criterium bevat. Criteria 1 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".
SOMMEN.ALS zoekt naar cellen in Bereik 1 die gelijk zijn aan Criteria 1, tenzij Criteria 1 een tekenreeks is die begint met een comparator (>, <, > =, <=, = of <>). In het laatste geval vergelijkt SOMMEN.ALS de cellen in Bereik 1 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 1 ondersteunt het volgende specifieke gedrag:
- De tekenreeks "=" komt overeen met lege cellen. De formule
=SOMMEN.ALS(A1:A10; B1:B10; "=")
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
=SOMMEN.ALS(A1:A10; C1:C10; "<>")
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 1 overeen met elke celinhoud behalve die waarde, inclusief lege cellen.
Criteria 2, ..., Criteria 127 hebben dezelfde betekenis als Criteria 1.
Foutcondities
- Als een celbereik dat als argument wordt doorgegeven een verwijzingsaaneenschakelingsoperator (~) bevat, retourneert SOMMEN.ALS als fout Ongeldig argument (Fout:502).
- Alle celbereiken die als argumenten worden doorgegeven (Sombereik en Bereik 1, ..., Bereik 127) moeten hetzelfde aantal rijen en hetzelfde aantal kolommen bezetten . Als dit niet het geval is, retourneert SOMMEN.ALS als fout Ongeldig argument (Fout:502).
- Als de argumenten Bereik n en Criteria n niet correct zijn gekoppeld, retourneert SOMMEN.ALS als fout Ontbrekende variabele (Fout:511).
Aanvullende details:
Details specifiek voor de functie SOMMEN.ALS
- De standaardovereenkomst die door SOMMEN.ALS wordt uitgevoerd, 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 SOMMEN.ALS wordt beïnvloed door verschillende instellingen die beschikbaar zijn in het dialoogvenster ▸ ▸ ▸ ( ▸ ▸ ▸ op macOS).
- 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", "brood", "rood bruin".
- 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".
- 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 "redevoering".
- De instelling van het selectievakje Hoofdlettergevoelig heeft geen invloed op de werking van SOMMEN.ALS.
Algemene informatie over de reguliere expressies van Calc
- Een reguliere expressie is een reeks tekens die een tekstpatroon definieert dat moet worden vergeleken. Meer gedetailleerde, algemene achtergrondinformatie is te vinden op Wikipedia's Reguliere expressies pagina.
- Reguliere expressies worden veel gebruikt in veel domeinen en er zijn meerdere reguliere expressieprocessors beschikbaar. Calc gebruikt het open source Regular Expressions-pakket van de International Components for Unicode (ICU). Zie de Regular Expressions documentatie voor meer details, inclusief een volledige definitie van de syntaxis voor ICU Reguliere Expressies.
- Bovendien biedt het LibreOffice Help-systeem een lijst met reguliere expressies op hoog niveau.
- De reguliere expressie-engine van Calc ondersteunt genummerde capturegroepen, waarmee subbereiken binnen een overeenkomst kunnen worden geïdentificeerd en gebruikt in vervangende tekst. Haakjes worden gebruikt om componenten van een reguliere expressie te groeperen en een genummerde capture-groep te maken. Om een capture-groep in een vervangende tekst in te voegen, gebruikt u het formulier "$n", waarbij n het nummer van de capture-groep is.
Algemene informatie over de jokertekens van Calc
Jokertekens zijn speciale tekens die kunnen worden gebruikt in zoekreeksen die als argumenten aan sommige Calc-functies worden doorgegeven; ze kunnen ook worden gebruikt om zoekcriteria te definiëren in het dialoogvenster Zoeken en vervangen. Het gebruik van jokertekens maakt het mogelijk om meer geavanceerde zoekparameters te definiëren met een enkele zoekreeks.
Calc ondersteunt ofwel jokertekens of reguliere expressies als argumenten, afhankelijk van de huidige toepassingsinstellingen. Standaard worden jokertekens ondersteund in plaats van reguliere expressies.
Om er zeker van te zijn dat jokertekens worden ondersteund, gaat u naar Jokertekens in formules inschakelen
is geselecteerd. Merk op dat u dit dialoogvenster kunt gebruiken om over te schakelen naar reguliere expressies door Reguliere expressies in formules inschakelen
te kiezen of ervoor te kiezen om geen jokertekens of reguliere expressies te ondersteunen.
De volgende tabel identificeert de jokertekens die Calc ondersteunt.
Jokerteken | Beschrijving |
---|---|
? (vraagteken) | Komt overeen met elk afzonderlijk teken. De zoekreeks "b?g" komt bijvoorbeeld overeen met "bag" en "beg" maar komt niet overeen met "boog" of "mug". Houd er rekening mee dat deze ook niet overeenkomt met "bg", omdat "?" exact moet overeenkomen met één karakter. Het jokerteken "?" komt niet overeen met een nul-teken. |
* (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 van toepassing zijn op hele cellen is uitgeschakeld in ▸ ▸ ▸ , 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". |
Vergelijkingen met jokertekens zijn niet hoofdlettergevoelig, vandaar komt "A?" overeen met zowel "A1" als "a1".
Deze jokertekens worden ondersteund in zowel Calc als Microsoft Excel. Kies daarom, als interoperabiliteit tussen de twee toepassingen nodig is, om met jokertekens te werken in plaats van reguliere expressies. Omgekeerd, als interoperabiliteit niet nodig is, overweeg dan om reguliere expressies te gebruiken voor krachtigere zoekmogelijkheden.
Voorbeelden:
Verkoopvoorbeelden briefpapier
Bekijk de volgende tabel met verkoop- en omzetinformatie voor een kleine leverancier van kantoorbenodigdheden. De string "N/B" verwijst naar producten die niet beschikbaar waren voor levering tijdens de periode waarop de gegevens betrekking hebben.
A | B | C | |
---|---|---|---|
1 | Product | Verkopen | Omzet |
2 | Penhouder | 20 | $65 |
3 | Pen | 35 | $85 |
4 | Kladblok | 20 | $190 |
5 | Boek | 17 | $180 |
6 | Penetui | N/B | N/B |
In alle voorbeelden op basis van deze tabel moet worden opgemerkt dat rij 6 voor etuis geen numerieke gegevens bevat en dus nooit zal bijdragen aan het resultaat van SOMMEN.ALS, ongeacht de criteria die zijn gespecificeerd
Formule | Beschrijving | Retourneert |
---|---|---|
=SOMMEN.ALS(B2:B6; B2:B6; ">=20") | Hier telt de functie de numerieke Verkoop-gegevens op die groter zijn dan of gelijk zijn aan 20. | 75 |
=SOMMEN.ALS(C2:C6; B2:B6; ">=20"; C2:C6; ">70") | Hier lokaliseert de functie items groter dan of gelijk aan 20 in de Verkoop-gegevens die ook een waarde hebben groter dan $ 70 in de Omzet-gegevens, en telt de corresponderende numerieke items in de Omzet-gegevens op . | $275 |
=SOMMEN.ALS(C2:C6; B2:B6; ">"&MIN(B2:B6); B2:B6; "<"&MAX(B2:B6)) | Hier berekent de functie de som van de numerieke invoer in de Omzet-gegevens die overeenkomen met alle waarden in de Verkoop-gegevens behalve het minimum en maximum. | $255 |
=SOMMEN.ALS(C2:C6; A2:A6; "pen.*"; B2:B6; "<"&MAX(B2:B6)) | Dit voorbeeld werkt alleen zoals hier beschreven als reguliere expressies zijn ingeschakeld. Hier lokaliseert de functie items in de Product-gegevens die beginnen met de tekens "pen" en hebben een waarde in de Verkoop-gegevens die niet het maximum is, en sommeert de corresponderende numerieke items in de Omzet- gegevens. | $65 |
=SOMMEN.ALS(C2:C6; A2:A6; E2&".*"; B2:B6; "<"&MAX(B2:B6)) waarbij cel E2 de tekenreeks "pen" bevat (ingevoerd zonder dubbele aanhalingstekens te typen). | Dit voorbeeld werkt alleen zoals hier beschreven als reguliere expressies zijn ingeschakeld. Als u een criterium gemakkelijk moet wijzigen, kunt u het in een aparte cel specificeren en een verwijzing naar deze cel gebruiken in de voorwaarde van de functie SOMMEN.ALS. Hier wordt de link naar de cel vervangen door de inhoud ervan, wat hetzelfde resultaat oplevert als in het vorige voorbeeld. | $65 |
Verkoopvoorbeelden sportuitrusting
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 |
---|---|---|
=SOMMEN.ALS(B2:B10; B2:B10; ">=4000") | Hier telt de functie de numerieke invoer op in de Verkoopwaarde-gegevens die groter zijn dan of gelijk zijn aan $ 4.000. Deze formule is gelijk aan zowel =SOM.ALS(B2:B10; ">=4000") als =SOM.ALS(B2:B10; ">=4000"; B2:B10) . |
$9,067 |
=SOMMEN.ALS(B2:B10; E2:E10; "ute") | Hier lokaliseert de functie de invoer voor Ute in de Werknemer-gegevens en sommeert de corresponderende numerieke invoeren in de Verkoopwaarde-gegevens. Deze formule is gelijk aan =SOM.ALS(E2:E10; "ute"; B2:B10) en deze herschikking van de argumenten benadrukt een belangrijk verschil tussen de twee functies - Sombereik is het derde argument voor SOM.ALS en het eerste argument voor SOMMEN.ALS. |
$6,535 |
=SOMMEN.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 SOMMEN.ALS gegevens Verkoopwaarde op. | $11,465 |
=SOMMEN.ALS(B2:B10; D2:D10; F1; E2:E10; F2) waarbij de cellen F1 en F2 respectievelijk de tekstreeksen ">=zuid" en "ute" bevatten (beide ingevoerd zonder dubbele aanhalingstekens te typen). | Hier lokaliseert de functie de invoer voor Zuid en West in de Regio-gegevens die ook Ute in de Werknemer-gegevens hebben, en telt de corresponderende numerieke invoer in de Verkoopwaarde-gegevens op. | $6,535 |
=SOMMEN.ALS(B2:B10; A2:A10; DATUM(2021; 10; 2); C2:C10; "tennis") | Hier zoekt de functie de items voor 2021-10-02 in de Datum-kolom die ook Tennis in de Categorie-gegevens hebben en telt de corresponderende numerieke invoer in de Verkoopwaarde-gegevens op. | $410 |
=SOMMEN.ALS(B2:B10; A2:A10; ">="&DATUM(2021; 10; 6); E2:E10; "<>"&E8) | Hier lokaliseert de functie de items die zijn gedateerd op of na 2021-10-06 in de Datum-kolom die geen Fritz hebben in de Werknemer-gegevens en teltde corresponderende numerieke items in de Verkoopwaarde gegevens op. | $6,218 |
=SOMMEN.ALS(B2:B10; C2:C10; "tennis"; D2:D10; "east"; E2:E10; "fritz") | Hier lokaliseert de functie de items met Tennis in de Categorie-gegevens, Oost in de Regio-gegevens en Fritz in de Werknemer-gegevens. Het telt de corresponderende numerieke invoer op in de Verkoopwaarde-gegevens. | $2,623 |
=SOMMEN.ALS(B2:B10; D2:D10; "????"; E2:E10; "*e") | Dit voorbeeld werkt alleen zoals hier beschreven als jokertekens zijn ingeschakeld. Hier lokaliseert de functie de items van vier tekens in de Regio-gegevens (Oost en West) die ook een vermelding hebben in de Werknemer-gegevens die eindigen op de letter "e" of "E" (Brigitte en Ute). Het somt de corresponderende numerieke invoer op in de Verkoopwaarde-gegevens. | $9,067 |
=SOMMEN.ALS(B2:B10; C2:C10; "^t.*"; D2:D10; ".*h") | Dit voorbeeld werkt alleen zoals hier beschreven als reguliere expressies zijn ingeschakeld. Hier zoekt de functie de items voor Tennis in de Categorie-gegevens die beginnen met de letter "t" of "T" (Tennis) die ook een vermelding hebben in de Regio-gegevens die eindigen met de letter " d" of "D" (Noord en Zuid). Het telt de corresponderende numerieke invoer op in de Verkoopwaarde-gegevens. | $4,231 |
=SOMMEN.ALS(B2:B10; E2:E10; "(?-i)ute") | 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 Werknemer-gegevens. Vergelijk dit met het tweede voorbeeld in deze tabel. | $0 |
Extra voorbeelden
Download en bekijk dit Calc-werkblad voor meer voorbeelden.
Gerelateerde LibreOffice-functies:
ODF standaard:
Gerelateerde (of gelijkwaardige) Excel-functies:
SUMIFS