Documentatie/Calc-functies/ZOEKENB

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


    Functienaam:

    VIND.SPEC.B

    Categorie:

    Tekst

    Samenvatting:

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

    Syntaxis:

    VIND.SPEC.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.SPEC.B de waarde 1.

    • Als Positie een niet-gehele waarde is, dan kapt VIND.SPEC.B deze af tot een geheel getal.
    • Als Positie kleiner is dan 1, dan retourneert VIND.SPEC.B als fout Ongeldig argument (Fout:502).
    • Als, na afkapping, Positie groter is dan de lengte van de te doorzoeken string, dan retourneert VIND.SPEC.B als fout #WAARDE!.
    • Als er geen overeenkomst wordt gevonden, meldt VIND.SPEC.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.SPEC.B

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

    Gebruik de functie VIND.ALLES.B als u hoofdlettergevoelige zoekopdrachten nodig hebt.

    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.SPEC.B.

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

    • =ALS(ISFOUT(VIND.SPEC.B("xyz"; "abcdef"; 1)); "ERR: Ontbrekende subtekenreeks"; "Subtekenreeks aanwezig") geeft als resultaat "ERR: Ontbrekende subtekenreeks" en wordt niet doorgegeven als fout van de functie VIND.SPEC.B.
    • =ALS(ISGETAL(VIND.SPEC.B("xyz"; "abcdef"; 1)); "Substring aanwezig"; "ERR: Ontbrekende subtekenreeks") geeft als resultaat "ERR: Ontbrekende subtekenreeks" en wordt niet doorgegeven als fout van de functie VIND.SPEC.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 demonstreren het gedrag van VIND.SPEC.B voor tekenreeksen die alleen tekens van één byte bevatten.

    Gegevens voor voorbeelden
    A B C D
    1 Rook Knight 1
    Formule Beschrijving Retourneert
    =VIND.SPEC.B("fifty"; "Fifty-fifty") De overeenkomst is niet hoofdlettergevoelig. 1
    =VIND.SPEC.B(76; 998.877.667.654) Standaard begint het matchen bij de eerste byte van de string die moet worden doorzocht. 6
    =VIND.SPEC.B(76; 998.877.667.654; 7) Het matchen begint bij de zevende byte van de string die moet worden doorzocht. 9
    =VIND.SPEC.B(B1; C1; D1) Er is geen overeenkomst. #WAARDE!

    De overige voorbeelden demonstreren het gedrag van VIND.SPEC.B 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.SPEC.B("a"; "LibreOffice Calc")

    Het Tekst zoeken-argument een enkelbyte-teken (U+0061) terwijl het Tekst-argument alleen double-byte-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 als fout #WAARDE! omdat er geen overeenkomst is.

    #WAARDE!
    =VIND.SPEC.B("a"; "LibreOffice Calc") Eerste byte van het dubbelbyte "a"-teken binnen het Tekst-argument. 27
    =VIND.SPEC.B("a"; "LibreOffice Calc")

    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.B

    LINKSB

    LENGTEB

    DEELB

    VERVANGENB

    RECHTSB

    VIND.SPEC

    ODF standaard:

    Section 6.7.8, part 2

    Gerelateerde (of gelijkwaardige) Excel-functies:

    SEARCHB