Een Excel-spreadsheet vertalen zonder formules of dropdowns te breken
Ontdek welke tekst een cel-voor-cel-vertaler in een .xlsx mist (formuletekst, opgemaakte tekst, links, grafieken, macro's), herstel de dropdowns en codes die hij kan breken, en controleer het resultaat met een gratis script en een testwerkmap.

Om een hele Excel-werkmap te vertalen, upload je het .xlsx-bestand naar een documentvertaler in plaats van cel voor cel te vertalen. De opdracht Controleren > Vertalen van Excel zelf werkt op de tekst die je selecteert (Microsoft Support), wat prima is voor een label maar traag voor een prijslijst. Een bestandsvertaler leest elke tekstcel, vertaalt die en schrijft de vertaling terug naar hetzelfde adres, zodat formules, getallen en datums blijven staan waar ze stonden.
Wat hij je niet vertelt, is welke tekst hij nooit heeft gelezen. Tekst die in een formule is getypt, een cel met één vet woord, een link, een notitie, een grafiektitel: bij een cel-voor-cel-vertaling kunnen al deze dingen in de oorspronkelijke taal terugkomen. En er kunnen twee dingen breken: een dropdown waarvan de toegestane waarden niet zijn vertaald, en een productcode die wél is vertaald.
We hebben een testwerkmap met twee bladen gemaakt met tekst op elk van die plekken, een gratis controleprogramma geschreven dat laat zien waar de tekst staat, en de werkmap door een lokale reproductie van de spreadsheetverwerking van BookTranslator gehaald. Deze gids laat zien wat er terugkwam, wat je moet aanpassen voordat je uploadt, en hoe je het vertaalde bestand controleert.
Snel antwoord: wat wordt er in een werkmap vertaald?
| Waar de tekst staat | Voorbeeld uit onze test | Vertaald door BookTranslator? | Wat te doen |
|---|---|---|---|
| Gewone tekstcellen, inclusief kopregels | "Blauw notitieboek", "Prijs" | Ja | Niets |
| Getallen, datums, booleans | 4.5, 2026-10-30 | Onveranderd gelaten | Controleer getalnotaties voor de doelmarkt |
| Formules | =C2*D2 | Onveranderd gelaten | Niets |
| Tekst in een formule | =IF(D2>5,"In stock","Low stock") | Nee | Verplaats de woorden naar cellen (zie stap 2) |
| Cel met gemengde opmaak | "Beperkte editie pen" | Nee, de hele cel wordt overgeslagen | Wis eerst de opmaak, of vertaal het handmatig |
| Cellen met hyperlinks | "Productpagina" | Nee | Bewerk de linktekst na het vertalen |
| Waarde in een vervolgkeuzecel | "Kantoorartikelen" | Ja, maar de vervolgkeuzelijst niet | Herstel de lijst, anders is de cel niet meer geldig |
| Codes met letters | "A-77", "B-09" | Naar de vertaler gestuurd | Controleer ze na het vertalen |
| Codes met alleen cijfers of symbolen | "00123" | Onveranderd gelaten | Niets |
| Notities en opmerkingen | "Controleer leveranciersnaam voor vrijgave" | Nee | Vertaal ze handmatig, of verwijder ze |
| Bladnamen en benoemde bereiken | "Producten", PriceRange | Nee, zodat formules tussen werkbladen blijven werken | Wijzig werkbladnamen alleen handmatig als het echt nodig is, nadat je de formules hebt gecontroleerd |
| Grafieken en macro's | Een staafdiagram, een VBA-project | Verwijderd uit het vertaalde bestand in onze test | Bewaar het origineel, bouw het daarna opnieuw op (zie hieronder) |
Oudere .xls-bestanden worden niet geaccepteerd. Open ze in Excel en sla ze eerst op als .xlsx. Macro-enabled .xlsm-bestanden worden geaccepteerd, maar lees de sectie over macro's voordat je er een uploadt: het vertaalde bestand bevat geen macro's, en als de download nog steeds eindigt op .xlsm, wijzig de naam dan naar .xlsx voordat je het opent.
Stap 1: Voer de Checker uit op je werkmap
Download check_xlsx_text.py en voer het uit op je bestand:
python3 check_xlsx_text.py "Price list.xlsx"
Het vereist alleen Python 3 en leest het bestand zonder het te wijzigen. Hier is de samenvatting voor onze voorbeeldwerkmap:
Counts by location:
cell code, ID or address 2
cell link text 1
cell mixed formatting 1
cell plain text 15
comments comment or note text 1
dropdown list of allowed values 1
formula text text inside a formula 6
sheet sheet name 2
workbook defined name 1
Plain text cells (translated by a cell-by-cell translator): 15
Items that need a decision before you upload: 12
Onder de tellingen staat elk item met het werkblad en de cel, zoals Products!E2 formula text 'In stock'. Gebruik die lijst als je takenlijst voor Stap 2. Als je werkmap grafieken, tekstvakken, draaitabellen of een macroproject bevat, verschijnen die ook in de tellingen.
De README beschrijft de voorbeeldwerkmap, vermeldt bestandshashes en linkt naar de scripts die deze bouwen, zodat je de test kunt herhalen.
Wat er gebeurde met onze testwerkmap
We hebben de voorbeeldwerkmap door de code gehaald die de spreadsheet-handler van BookTranslator gebruikt, lokaal gereproduceerd op 2026-11-01 met dezelfde bibliotheek (ExcelJS 4.4.0). In plaats van een echte vertaling gebruikten we een placeholder die "[DE]" voor de tekst van elke cel zet. Zo blijft het taalmodel buiten de test, zodat de resultaten alleen laten zien wat de bestandsverwerking verstuurt, behoudt en weglaat.
De handler leest elk werkblad cel voor cel. Het stuurt een cel alleen voor vertaling als de cel een platte tekstwaarde bevat, en slaat alle tekst over die alleen uit cijfers, leestekens en symbolen bestaat. Al het andere in het celraster wordt ongewijzigd gekopieerd. BookTranslator retourneert vervolgens twee bestanden: een vertaalde werkmap en een tweetalige werkmap.
De vertaalde werkmap
Dit is het bestand om te gebruiken. Alle 6 formules, 7 getallen en datums, de valuta- en datumnotaties, de samengevoegde cellen, de notitie, de dropdown-regel en het benoemde bereik kwamen ongewijzigd terug. De 9 kopcellen en de andere platte tekstcellen werden ter plaatse vertaald. Drie resultaten vragen aandacht:
Tekst in formules blijft in de brontaal. De kolom Status gebruikte =IF(D2>5,"In stock","Low stock"). Een formule is geen tekstcel, dus de handler leest deze nooit, en "In stock" blijft in elke rij in het Engels. Hetzelfde geldt voor tekst die is samengevoegd met & of CONCAT, en voor tekst in HYPERLINK.
Een vertaalde dropdown-waarde komt niet meer overeen met de lijst. Cel H2 had een dropdown die "Stationery, Office, Art" toestond. De waarde van de cel werd vertaald, maar de lijst wordt opgeslagen in de validatieregel, niet in een cel, dus die werd niet vertaald. De vergelijkingsmodus van onze checker meldde het als volgt:
Problems: 3
Products!A3: code changed: 'A-77' -> '[DE] A-77'
Products!A4: code changed: 'B-09' -> '[DE] B-09'
Products!H2: '[DE] Stationery' is not in its dropdown list ['Art', 'Office', 'Stationery']
Excel behoudt een waarde die de validatieregel schendt, maar de volgende persoon die de dropdown opent, ziet alleen de oude keuzes, en Gegevens > Ongeldige gegevens omcirkelen zal de cel markeren.
Codes met letters worden naar de vertaler gestuurd. "00123" werd overgeslagen omdat het alleen cijfers bevat. "A-77" en "B-09" werden verstuurd, omdat ze een letter bevatten. Of een code ongewijzigd terugkomt, hangt dan af van het model; niets in de bestandsverwerking beschermt het. Een SKU die terugkomt als "A-77-Artikel" breekt elke lookup die ervan gebruikmaakt.
De tweetalige werkmap
Het tweetalige bestand voegt een vertaalkolom in rechts van elke kolom die ten minste één vertaalde cel had, met koppen zoals "Name (Translated)". Het verplaatst celwaarden naar hun nieuwe kolommen, maar het verplaatst geen celopmaak en werkt formules niet bij. In onze test:
- bleef de prijsnotatie
$#,##0.00in kolom C staan, die nu productnamen bevat, terwijl de prijzen naar kolom E verhuisden zonder die notatie; - de datumnotatie bleef in kolom G staan, die nu de hoeveelheid bevat, dus een hoeveelheid van 10 werd als datum weergegeven;
=C2*D2verhuisde naar kolom K maar verwees nog steeds naar C2 en D2, die nu de productnaam en de vertaling daarvan bevatten, dus kan niet langer 45 retourneren;- op het blad Samenvatting telde
=SUM(Products!F2:F4)nu een lege vertaalkolom op.
De tweetalige werkmap is dus bedoeld om de bron en de vertaling naast elkaar te lezen, niet om te berekenen. Bewerk deze niet en kopieer er geen formules uit.
Grafieken en macro's
In een aparte kopie van de werkmap hebben we een grafiek en een macroproject toegevoegd, opgeslagen zoals Excel dat doet. Geen van beide zat in het vertaalde of het tweetalige bestand. ExcelJS leest en schrijft werkbladen, stijlen, gedeelde tekst, afbeeldingen, tabellen en opmerkingen, en heeft geen code voor grafiekonderdelen of het VBA-project, dus laat deze weg bij het opslaan. Dezelfde code heeft niets voor draaitabellen, dus verwacht dat draaitabellen ook worden verwijderd, hoewel we er geen hebben getest. De handler slaat de uitvoer ook op als een .xlsx-bestand, dat geen macro's kan bevatten.
Nog een beperking van de test: we hebben de voorbeeldwerkmap zelf met ExcelJS gebouwd, wat het gunstigste geval is voor het behouden van opmaak, samengevoegde cellen en validatieregels. Een werkmap die door Excel is opgeslagen kan functies bevatten die ExcelJS niet modelleert, dus voer de vergelijkingsstap hieronder uit op je eigen bestand in plaats van hetzelfde schone resultaat aan te nemen.
Stap 2: Bereid de werkmap voor voordat je uploadt
Werk op een kopie. De checker vertelt je welke cellen je moet aanpassen.
- Verplaats formuletekst naar cellen. Zet de woorden in een klein blad "Labels" en laat de formule ernaar verwijzen:
=IF(D2>5,Labels!$A$1,Labels!$A$2). De labelcellen zijn platte tekst, dus ze worden vertaald, en elke formule neemt de vertaling over. Deze ene wijziging lost meestal het grootste deel van het aantal "formuletekst" op, omdat dezelfde zin vaak in een hele kolom wordt herhaald. - Verplaats vervolgkeuzelijsten naar cellen. Wijzig in Gegevens > Gegevensvalidatie de Bron van een getypte lijst (
Stationery,Office,Art) naar een bereik op het blad Labels (=Labels!$B$1:$B$3). De lijstwaarden worden dan samen met de cellen die ze gebruiken vertaald. Controleer achteraf een paar cellen: de vervolgkeuzelijst accepteert de vertaalde waarde alleen als het model "Stationery" op beide plaatsen op dezelfde manier heeft vertaald. - Wis gemengde opmaak. Een cel met één vet of gekleurd woord wordt opgeslagen als opgemaakte tekstblokken en volledig overgeslagen. Selecteer de cel en kies Start > Wissen > Opmaak wissen, of typ deze opnieuw en pas daarna het vet weer toe. Als je er veel hebt, noteer ze dan eerst.
- Bepaal wat je met notities en opmerkingen doet. Ze worden niet vertaald. Verwijder controlenotities die je niet naar een vertaaldienst wilt sturen en vertaal de rest handmatig.
- Sla werkmappen met macro's op als
.xlsx. Bewaar je.xlsmals het hoofdbestand. Vertaal een.xlsx-kopie en kopieer vervolgens de vertaalde tekstkolommen terug naar het hoofdbestand (Plakken speciaal > Waarden, alleen tekstkolommen, zodat je geen formules overschrijft) of exporteer de VBA-modules en importeer ze in het vertaalde bestand. - Laat grafieken voor later. Een grafiek bevat weinig tekst: een titel, aslabels en een legenda die meestal uit kopcellen komt. Het is vaak sneller om de grafiek in de vertaalde werkmap opnieuw op te bouwen uit dezelfde bereiken, of om de vertaalde tekstkolommen terug te plakken in de oorspronkelijke werkmap, zodat de grafieken en draaitabellen zichzelf bijwerken.
Stap 3: Vertaal het hele bestand
Upload het .xlsx-bestand op de documentvertaler-pagina, kies de doeltaal en controleer de getoonde prijs voordat je betaalt. Een upload van het hele bestand vertaalt elke tekstcel op elk blad in één taak, waardoor het gemakkelijker is om een productnaam hetzelfde te houden in rij 3 en rij 3.000. Onze gids over een vertaalwoordenlijst opbouwen legt uit hoe je termen vastlegt die niet mogen variëren.
Wanneer de taak is voltooid, biedt de Geschiedenispagina beide downloads aan. Gebruik de vertaalde werkmap. Open de tweetalige werkmap alleen om de formulering te bespreken met iemand die beide talen leest.
Als je in Google Sheets werkt, zijn er twee andere routes. Het tabblad Documenten van Google Translate accepteert .xlsx-bestanden tot 10 MB (Google Translate Help); onze gids voor het vertalen van Google Docs vergelijkt de opties. En Sheets heeft een functie GOOGLETRANSLATE(text, source_language, target_language) (Google Docs Editors Help) die je in een nieuwe kolom naast de bron kunt doorvullen. Dat is handig voor één kolom met korte labels, maar de resultaten zijn formules, dus plak ze als waarden voordat je het blad deelt. DeepL vertaalt ook documenten; zie wat de documentlimieten in de praktijk betekenen. Wat je ook gebruikt, voer de checker eerst uit op de bron: tekst in formules, links en grafieken staat op dezelfde plaatsen, ongeacht welke tool het bestand leest.
Stap 4: Controleer de vertaalde werkmap
-
Gebruik de vergelijkingsmodus. Zet de bron en het vertaalde bestand naast elkaar:
python3 check_xlsx_text.py --compare "Price list.xlsx" "Price list (translated).xlsx"Het controleert of elke formule, elk getal en elke datum ongewijzigd is, of codes met letters exact hetzelfde zijn teruggekomen en of elke vervolgkeuzewaarde in de lijst staat. Gebruik het alleen op de vertaalde werkmap. Omdat het tweetalige bestand kolommen verschuift, zou bijna elke cel worden gemeld.
-
Herbereken. Als een formule na het aanpassen van de labels nog steeds de oude tekst toont, druk op F9 (of Formules > Nu berekenen).
-
Vertaal de restjes. Gebruik de lijst van de checker uit stap 1: linktekst, notities, grafiektitels en eventuele cellen waarvan je de opmaak hebt gewist.
-
Let op afgekapte tekst. Vertalingen zijn vaak langer dan de bron, en korte strings groeien het meest. Het W3C citeert IBM-richtlijnen die de gemiddelde uitbreiding van Engels naar Europese talen op 200–300% stellen voor tekst tot 10 tekens (W3C). Kolomkoppen zijn kort, dus maak kolommen breder of zet Tekstterugloop aan waar ze afgekapt worden.
-
Controleer de weergave van getallen en datums. De waarden zijn niet aangepast, maar "4.50" moet voor een Duitse lezer misschien als "4,50" worden weergegeven. Dat is een celopmaak of een regionale instelling, geen vertaling.
-
"Repareer" functienamen niet. Als de Franse Excel van een collega
SOMMEtoont in plaats vanSUM, dan toont Excel zijn eigen gelokaliseerde functienamen; de formule is hetzelfde. -
Stel rechts-naar-links werkbladen in. Zet voor Arabisch, Hebreeuws, Perzisch of Urdu Pagina-indeling > Werkblad rechts-naar-links aan en controleer de celuitlijning.
-
Laat het nalezen door een vloeiende lezer als het naar klanten gaat, zoals een prijslijst of een productcatalogus. Een machinevertaling is een goed eerste concept, niet het definitieve.
CSV- en TSV-bestanden
Een .csv-bestand heeft geen formules, opmaak of dropdowns, dus de meeste problemen hierboven verdwijnen. Drie dingen zijn anders:
- De kopregel wordt niet vertaald. De handler behandelt de eerste rij als koppen en vertaalt alleen datarijen. Vertaal de koppen handmatig, of kopieer ze naar een datarij voordat je uploadt en zet ze daarna terug.
- Een kolom wordt als geheel vertaald. Als een cel in een kolom een letter bevat, wordt elke cel in die kolom met een letter verstuurd, codes inbegrepen. De vergelijkingsmodus leest alleen
.xlsx, dus controleer een CSV-codekolom handmatig: kopieer hem uit beide bestanden naar één werkblad en vergelijk de twee kolommen met=EXACT(A2,B2). - Een CSV komt terug met komma's als scheidingsteken. Welk scheidingsteken de bron ook gebruikte, de vertaalde CSV gebruikt komma's; een
.tsv-bestand behoudt zijn tabs. In onze test kwam een puntkomma-gescheiden CSV terug met komma's als scheidingsteken, waarbij decimale komma's zoals "4,50" tussen aanhalingstekens bleven staan. Het bestand is UTF-8 zonder byte order mark. Microsoft zegt dat Excel een UTF-8-CSV normaal opent wanneer het die markering heeft, en raadt anders aan om het te importeren via Gegevens > Gegevens ophalen > Uit tekst/CSV (Microsoft Support). Als je dubbelklikt op het bestand en verminkte accenten ziet, importeer het dan op die manier.
Als je gegevens in een werkmap met formules staan, vertaal dan de .xlsx. Exporteren naar CSV om te vertalen gooit elke formule weg.
Veelvoorkomende problemen
| Probleem | Waarschijnlijke oorzaak | Wat te doen |
|---|---|---|
| Een hele kolom zegt nog steeds "In stock" | De woorden staan in een IF-formule | Verplaats ze naar labelcellen en laat de formule ernaar verwijzen |
| Een dropdown weigert de vertaalde waarde | De toegestane waarden zijn in de validatieregel getypt | Wijzig de Bron van de regel naar een celbereik en vertaal het bereik |
| Een productcode is gewijzigd | Hij bevat letters, dus is hij naar de vertaler gestuurd | Herstel het vanuit de bron; voer de vergelijkingsmodus uit bij elke levering |
| Eén cel is helemaal niet vertaald | De cel heeft gemengde opmaak of bevat een link | Verwijder de opmaak of bewerk de linktekst en vertaal opnieuw of corrigeer handmatig |
| De grafiek of de macro's zijn verdwenen | De bibliotheek die wordt gebruikt om het bestand te herschrijven, slaat ze niet op | Vertaal een .xlsx-kopie en zet de vertaalde tekst terug in het origineel |
| Totalen kloppen niet in het tweetalige bestand | De toegevoegde kolommen verschuiven waarden, maar niet formules of opmaak | Gebruik de vertaalde werkmap voor alle berekeningen |
| Accenten zien er verhaspeld uit in een vertaalde CSV | Excel heeft de verkeerde codering geraden | Importeer het via Gegevens > Gegevens ophalen > Uit tekst/CSV |
| De upload wordt geweigerd | Het bestand is .xls of er is een wachtwoord nodig om het te openen | Sla het op als een normaal .xlsx-bestand zonder openingswachtwoord (alleen bladbeveiliging is prima) |
Hetzelfde idee geldt voor dia's: een PowerPoint-presentatie bewaart tekst ook op plaatsen die een vertaler overslaat, en de checker voor dat artikel werkt hetzelfde als deze.
Gerelateerde berichten





