Documentatie/Calc-functies/DEELB

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



Functienaam:

DEELB

Categorie:

Tekst

Samenvatting:

Extraheert een substring uit het midden van de opgegeven tekststring, met de startpositie en lengte van de substring gespecificeerd in bytes.

Syntaxis:

DEELB(Tekst; Begin; Getal)

Retourneert:

Retourneert een tekenreeks bestaande uit het opgegeven aantal bytes vanaf de opgegeven positie binnen de opgegeven tekenreeks.

Argumenten:

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 waaruit tekens moeten worden geëxtraheerd.

Begin is een positief geheel getal of een verwijzing naar een cel die een positief geheel getal bevat, dat wil zeggen de positie van de eerste byte die moet worden geëxtraheerd.

Getal is een niet-negatief geheel getal, of een verwijzing naar een cel die een niet-negatief geheel getal bevat, dat wil zeggen het aantal bytes dat moet worden geëxtraheerd.

  • Als Begin of Getal niet-numeriek is, retourneert DEELB als fout #WAARDE!.
  • Als ofwel Begin of Getal een niet-gehele waarde is, dan kapt DEELB deze af tot een geheel getal.
  • Als na afkapping Begin kleiner is dan 1, dan retourneert DEELB als fout Ongeldig argument (Fout:502).
  • Als na afkapping Begin groter is dan de lengte (in bytes) van Tekst, dan retourneert DEELB de lege string.
  • Als Getal kleiner is dan 0, retourneert DEELB als fout Ongeldig argument (Fout:502).
  • Als na afkapping Getal gelijk is aan 0, dan retourneert DEELB de lege string.
  • Als (Begin + Getal – 1) groter is dan de lengte (in bytes) van Tekst, dan retourneert DEELB een tekenreeks die alle bytes van Begin tot het einde van Tekst bevat.

Aanvullende details:

Details specifiek voor de functie DEELB

Als het opgegeven aantal bytes anders zou leiden tot het extraheren van slechts één byte van een teken van twee bytes, voegt DEELB in plaats daarvan een spatie (Unicode U+0020) in aan het einde van de geretourneerde tekenreeks.

Merk op dat =DEELB(Tekst; 1; Getal) gelijk is aan =LINKSB(Tekst; Getal)


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:

The following examples are similar to those used for the MID function and demonstrate the consistent behavior of the two functions for single-byte character strings.

Formule Beschrijving Retourneert
=DEELB("Invoertekenreeks"; 2; 3) Hier retourneert de functie drie bytes van de opgegeven string, beginnend bij de tweede byte. nvo
=DEELB(12345,6789; 5; 4) Hier retourneert de functie vier bytes van het opgegeven getal, beginnend bij de vijfde byte, en formatteert het resultaat als tekst. 5,67
=DEELB(D1; D2; D3) waarbij cel D1 de tekenreeks "Invoertekenreeks" bevat, cel D2 het cijfer 2 en cel D3 het cijfer 3. Hier retourneert de functie drie bytes van de opgegeven string, beginnend bij de tweede byte. nvo
=DEELB("Invoertekenreeks"; 6; 0) Hier retourneert de functie de lege string. ""

De overige voorbeelden demonstreren het gedrag van MIDB voor tekenreeksen die dubbelbytetekens bevatten. Deze voorbeelden gebruiken de dubbelbyte-tekens "中" (Unicode CJK Unified Ideograph-4E2D) en "国" (CJK Unified Ideograph-56FD).

Formule Beschrijving Retourneert
=DEELB("中国"; 1; 0) Hier retourneert de functie de lege tekenreeks, omdat het argument Getal is ingesteld op 0. ""
=DEELB("中国"; 1; 1) Hier retourneert de functie een spatieteken omdat één byte slechts de helft van een DBCS-teken is. " "
=DEELB("中国"; 1; 2) Hier retourneert de functie "中" omdat twee bytes een volledig DBCS-teken vormen. "中"
=DEELB("中国"; 1; 3) Hier retourneert de functie "中 " omdat drie bytes anderhalf DBCS-tekens vormen; de laatste geretourneerde byte is een spatie. "中 "
=DEELB("中国"; 1; 4) Hier retourneert de functie "中国" omdat vier bytes twee volledige DBCS-tekens vormen. "中国"
=DEELB("中国"; 2; 1) Hier retourneert de functie een spatieteken omdat bytepositie 2 niet aan het begin van een teken in deze DBCS-tekenreeks staat. " "
=DEELB("中国"; 2; 2) Hier retourneert de functie twee spatietekens omdat de twee gevraagde bytes overeenkomen met de laatste helft van het eerste teken en de eerste helft van het tweede teken in de DBCS-tekenreeks. " "
=DEELB("中国"; 2; 3) Hier retourneert de functie " 国" omdat bytepositie 2 niet aan het begin van een teken in de DBCS-tekenreeks staat en er dus een spatie wordt geretourneerd voor bytepositie 2. " 国"
=DEELB("中国"; 3; 1) Hier retourneert de functie een spatieteken omdat bytepositie 3 aan het begin van een teken in de DBCS-tekenreeks staat en één byte slechts een half DBCS-teken is. " "
=DEELB("中国"; 3; 2) Hier retourneert de functie "国" omdat bytepositie 3 aan het begin van een teken in de DBCS-tekenreeks staat en twee bytes één DBCS-teken vormen. "国"

Gerelateerde LibreOffice-functies:

VINDENB

LINKSB

LENGTEB

DEEL

VERVANGENB

RECHTSB

ZOEKENB

ODF standaard:

Section 6.7.5, part 2

Gelijkwaardige Excel-functies:

DEELB