Documentatie/Calc-functies/SOM.ALS
TDF LibreOffice Document Liberation Project Blogs gemeenschap Weblate Nextcloud Redmine Ask LibreOffice Doneren
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 ▸ ▸ ▸ ( ▸ ▸ ▸ 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", "Fred", "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 "reddingsboot".
- De instelling van het selectievakje Hoofdlettergevoelig heeft geen invloed op de werking van SOM.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 hun 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
▸ ▸ ▸ en controleert u of de optie 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", sinds "?" moet exact overeenkomen met één karakter. De "?" 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 van toepassing zijn op hele cellen 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". |
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:
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; "????"; 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:
ODF standaard:
Gerelateerde (of gelijkwaardige) Excel-functies:
SUMIF