Documentatie/Calc-functies/ZOEKENB

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



Functienaam:

ZOEKENB

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:

ZOEKENB(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 ZOEKENB de waarde 1.

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

ZOEKENB ondersteunt geen jokertekens of reguliere expressies.

Gebruik de functie VINDENB 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 ZOEKENB.

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

  • =ALS(ISFT(ZOEKSB ("xyz"; "abcdef"; 1)); "ERR: Ontbrekende subtekenreeks"; "Subtekenreeks aanwezig") geeft als resultaat "ERR: Ontbrekende subtekenreeks" en wordt niet doorgegeven als fout van de functie ZOEKENB.
  • =ALS(ISGETAL(ZOEKENB ("xyz"; "abcdef"; 1)); "Substring aanwezig"; "ERR: Ontbrekende subtekenreeks") geeft als resultaat "ERR: Ontbrekende subtekenreeks" en wordt niet doorgegeven als fout van de functie ZOEKENB.


Algemene informatie over byte-positiefuncties

Note pin.svg

Note:
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 VINDENB, LINKSB, LENGTEB, DEELB, VERVANGENB, RECHTSB en ZOEKENB. 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 ZOEKENB voor tekenreeksen die alleen tekens van één byte bevatten.

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

De overige voorbeelden demonstreren het gedrag van ZOEKENB 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
=ZOEKENB("a"; "LibreOffice Calc") Hier is 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!
=ZOEKENB("a"; "LibreOffice Calc") Hier retourneert de functie 27, de eerste byte van het dubbelbyte "a"-teken binnen het Tekst-argument. 27
=ZOEKENB("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:

VINDENB

LINKSB

LENGTEB

DEELB

VERVANGENB

RECHTSB

ZOEKEN

ODF standaard:

Section 6.7.8, part 2

Gelijkwaardige Excel-functies:

VIND.SPEC.B