Documentatie/Calc-functies/VINDENB

    From The Document Foundation Wiki
    This page is a translated version of the page Documentation/Calc Functions/FINDB and the translation is 100% complete.
    Other languages:


    Functienaam:

    VIND.ALLES.B

    Categorie:

    Tekst

    Samenvatting:

    Gebruikt een hoofdlettergevoelige overeenkomst om de startbyte van een tekstreeks binnen een andere tekstreeks te vinden. Elke string kan zowel enkelbyte- als dubbelbyte-tekens bevatten.

    Syntaxis:

    VIND.ALLES.B(Tekst zoeken; Tekst[; Positie])

    Retourneert:

    Retourneert een positief geheel getal dat de positie is van de eerste byte van het eerste voorkomen van de string die moet worden gevonden, binnen de string die moet worden doorzocht. De geretourneerde waarde kan niet groter zijn dan de lengte (in bytes) van de tekenreeks die moet worden doorzocht.

    Argumenten:

    Tekst zoeken is een tekenreeks (tussen aanhalingstekens), een getal of een verwijzing naar een cel die één van die typen bevat, dat wil zeggen de tekenreeks die moet worden gevonden.

    Tekst is een tekenreeks (tussen aanhalingstekens), een getal of een verwijzing naar een cel die één van die typen bevat, dat wil zeggen de tekenreeks die moet worden doorzocht.

    Positie is een positief geheel getal, of een verwijzing naar een cel die een positief geheel getal bevat, dat wil zeggen de bytepositie van waaruit het zoeken begint. Als Positie wordt weggelaten, gebruikt VIND.ALLES.B de waarde 1.

    • Als Positie een niet-gehele waarde is, kapt VIND.ALLES.B deze af tot een geheel getal.
    • Na afkappen, als Positie kleiner is dan 1 of groter is dan (LENGTEB(Tekst) - LENGTEB(Tekst zoeken) + 1), dan meldt VIND.ALLES.B als fout Ongeldig argument (Fout:502).
    • Als er geen overeenkomst wordt gevonden, retourneert VIND.ALLES.B als fout #WAARDE! Dit is een foutconditie die moet worden afgehandeld als deze wordt gebruikt als argument voor een andere functie.

    Aanvullende details:

    Details specifiek voor de functie VIND.ALLES.B

    VIND.ALLES.B ondersteunt geen jokertekens of reguliere expressies.

    Gebruik de functie VIND.ALLES.B als u zoekopdrachten nodig hebt die niet hoofdlettergevoelig zijn.

    In Extra ▸ Opties ▸ LibreOffice Calc ▸ Berekenen (of LibreOffice ▸ Voorkeuren ▸ LibreOffice Calc ▸ Berekenen op macOS), heeft de instelling voor Zoekcriteria = en <> moeten op hele cellen toepasbaar zijn geen effect op het gedrag van VIND.ALLES.B.

    Suggesties voor het omgaan met de fout #WAARDE! die wordt geretourneerd wanneer er geen overeenkomst wordt gevonden, zijn onder meer:

    • =ALS(ISFOUT(VIND.ALLES.B("xyz"; "abcdef"; 1)); "ERR: Ontbrekende subtekenreeks"; "Subtekenreeks aanwezig") geeft als resultaat "ERR: Ontbrekende subtekenreeks" en geeft niet de fout van de functie VIND.ALLES.B.
    • =ALS(ISGETAL(VIND.ALLES.B("xyz"; "abcdef"; 1)); "Substring Present"; "ERR: Ontbrekende Substring") geeft als resultaat "ERR: Ontbrekende Substring" en wordt niet doorgegeven als fout van de functie VIND.ALLES.B.


    Algemene informatie over byte-positiefuncties

    Note pin.svg

    NB:
    Voor het gemak wordt de informatie in dit subgedeelte herhaald op alle pagina's die de bytepositiefuncties van Calc beschrijven.

    Calc biedt verschillende byte-positie tekstfuncties, die bedoeld zijn om te worden gebruikt met dubbelbyte tekensettalen (DBCS). Deze functies zijn VIND.ALLES.B, LINKSB, LENGTEB,DEELB, VERVANGENB, RECHTSB en VIND.SPEC.B. Elk heeft een equivalente "gewone" tekstfunctie met een vergelijkbare naam, maar zonder de laatste letter "B".

    Calc beschouwt double-byte-tekens als de tekens die binnen de volgende Unicode-codeblokken liggen:

    • Bopomofo Uitgebreid (U+31A0 ... U+31BF)
    • Bopomofo (U+3100 ... U+312F)
    • CJK Compatibiliteitsformulieren (U+FE30 ... U+FE4F)
    • CJK Compatibility Ideographs Supplement (U+2F800 ... U+2FA1F)
    • CJK Compatibility Ideographs (U+F900 ... U+FAFF)
    • CJK Compatibility (U+3300 ... U+33FF)
    • CJK Radicals Supplement (U+2E80 ... U+2EFF)
    • CJK Strokes (U+31C0 ... U+31EF)
    • CJK Symbols and Punctuation (U+3000 ... U+303F)
    • CJK Unified Ideographs Extension A (U+3400 ... U+4DBF)
    • CJK Unified Ideographs Extension B (U+20000 ... U+2A6DF)
    • CJK Unified Ideographs (U+4E00 ... U+9FFF)
    • Enclosed CJK Letters and Months (U+3200 ... U+32FF)
    • Halfwidth and Fullwidth Forms (U+FF00 ... U+FFEF)
    • Hangul Compatibility Jamo (U+3130 ... U+318F)
    • Hangul Jamo (U+1100 ... U+11FF)
    • Hangul Syllables (U+AC00 ... U+D7AF)
    • High Private Use Surrogates (U+DB80 ... U+DBFF)
    • High Surrogates (U+D800 ... U+DB7F)
    • Hiragana (U+3040 ... U+309F)
    • Ideographic Description Characters (U+2FF0 ... U+2FFF)
    • Kanbun (U+3190 ... U+319F)
    • Kangxi Radicals (U+2F00 ... U+2FDF)
    • Katakana (U+30A0 ... U+30FF)
    • Low Surrogates (U+DC00 ... U+DFFF)
    • Private Use Area (U+E000 ... U+F8FF)
    • Yi Radicals (U+A490 ... U+A4CF)
    • Yi Syllables (U+A000 ... U+A48F)

    Zie Wikipedia's Unicode block pagina voor meer informatie over deze blokken.

    Bovendien worden de codepunten U+005C en U+20AC als dubbelbytetekens beschouwd als de systeemtaal is ingesteld op Japans.

    Zoals opgemerkt in ODF 1.2, zijn byteposities implementatie-afhankelijk en dus vermindert het vertrouwen op hen de interoperabiliteit.

    Voorbeelden:

    De volgende voorbeelden zijn vergelijkbaar met die gebruikt voor de functie VIND.ALLES en demonstreren het consistente gedrag van de twee functies voor enkelbyte tekenreeksen.

    Formule Beschrijving Retourneert
    =VIND.ALLES.B("fifty"; "Fifty-fifty") Hier retourneert de functie 7 omdat de overeenkomst hoofdlettergevoelig is. 7
    =VIND.ALLES.B(76; 998877667654) Hier retourneert de functie 6 omdat het matchen standaard begint bij de eerste byte van de string die moet worden doorzocht. 6
    =VIND.ALLES.B(76; 998877667654; 7) Hier retourneert de functie 9 omdat het matchen begint bij de zevende byte van de string die moet worden doorzocht. 9
    =VIND.ALLES(D1; D2; D3) waarbij cel D1, D2 en D3 respectievelijk "Rook", "Ridder" en het cijfer 1 bevatten. Hier retourneert de functie de fout #WAARDE! omdat er geen overeenkomst is. #WAARDE!

    De overige voorbeelden demonstreren het gedrag van VIND.ALLES voor tekenreeksen met dubbelbytetekens. Voor een beter begrip vermijden deze voorbeelden het gebruik van tekst in talen zoals Chinees, Japans en Koreaans, waarin dubbelbytetekens worden gebruikt. Omdat dit een Engelstalige pagina is, verwijzen deze voorbeelden naar dubbelbytetekens in het Unicode-blok Halfwidth and Fullwidth Forms die logisch zijn in het Engels. Het Unicode-teken U+3000, ook wel de Ideographic Space genoemd, wordt ook gebruikt in de eerste twee van deze voorbeelden.

    Formule Beschrijving Retourneert
    =VIND.ALLES.B("a"; "LibreOffice Calc") Hier is het argument Tekst zoeken een enkelbyte teken (U+0061), terwijl het argument Tekst alleen dubbelbyte tekens bevat. In het bijzonder is de "a" in het Tekst-argument het teken U+FF41 ("Volledige Latijnse kleine letter A"), wat anders is dan U+0061 ("Latijnse kleine letter A"). De functie retourneert de fout #WAARDE! omdat er geen overeenkomst is. #WAARDE!
    =VIND.ALLES.B("a"; "LibreOffice Calc") Hier retourneert de functie 27, de eerste byte van het dubbelbyte "a"-teken binnen het Tekst-argument. 27
    =VIND.ALLES.B("a"; "LibreOffice Calc") Hier bevat het Tekst-argument 12 enkelbyte-tekens gevolgd door vier dubbel-byte-tekens. De functie retourneert 15, de eerste byte van het dubbelbyte "a"-teken binnen het Tekst-argument. 15

    Gerelateerde LibreOffice-functies:

    VIND.ALLES

    LINKSB

    LENGTEB

    DEELB

    VERVANGENB

    RECHTSB

    VIND.SPEC.B

    ODF standaard:

    Section 6.7.2, part 2

    Gerelateerde (of gelijkwaardige) Excel-functies:

    FINDB