Jeg modtog for nylig dette hjerteskærende anbringende fra en læser, der tydeligvis havde kæmpet i nogen tid og havde nået slutningen af deres bånd: Jeg har en liste over produkter, som vi sælger, og et af felterne er UPC - dette felt kan være op til 18 cifre lange. Når jeg tilføjer mere end 15 cifre, afrunder Excel automatisk de sidste tre til 000. Hvis jeg indstiller dette felt til at være tekst, tilføjes + E11 i slutningen af strengen. Det betyder ikke noget, om jeg har søjlebredden længere end tre gange den normale længde. Hvordan kan jeg løse dette?
Jeg ville bare ønske, at Excel ville gøre, hvad det blev fortalt, uden at skulle tilføje ting. For eksempel, hvis celleformatet er TEKST, skal du ikke formatere noget i det! Det ser ud til, at jeg er nødt til at bruge Access bare for at foretage nogle små ændringer i en CSV-fil - for at bruge Access som et regneark i stedet for et regneark. Jeg må undre mig over, om OpenOffice gør det samme.
Det betyder ikke noget, hvilken størrelse tallet er, eller hvor decimaltegnet er placeret, Excel gemmer kun de første 15 signifikante cifre og kasserer resten
hvordan man skjuler tekst i uoverensstemmelse
Der er nogle grundlæggende begrænsninger for ethvert softwareprodukt, og Excel er ingen undtagelse. Excel kan kun rumme 15 signifikante tal, fordi det bruger IEEE Floating Point Maths, der dikterer, hvordan tal - som kan være så store som 1.79769313486231E + 308 eller så små som 2.229E-308 - gemmes uden at projektmappen bruger gigabyte på plads og det tager timer at genberegne. Denne begrænsning er tydeligt angivet i Excel-hjælpeteksten.
Bemærk, at væsentlige tal ikke er de samme som decimaler; det betyder ikke noget, hvilken størrelse tallet er, eller hvor decimaltegnet er placeret, Excel gemmer kun de første 15 signifikante cifre og kasserer resten.
UPC står for Universal Product Code, som faktisk er et symbolsk eller kodenavn sammensat af cifre snarere end at være et matematisk tal.
Tilføjelse eller fratrækning af to UPC'er giver ingen mening og fører ikke til en anden gyldig UPC-kode, selvom hver kode udelukkende består af cifre. Hvis du ikke laver matematik på dine data, som det er tilfældet med UPC'er, kan du tvinge Excel til at gemme dem som tekst ved at skrive en apostrof, før du skriver det første ciffer. Dette fortæller Excel, at det, du skriver, ikke er et tal, selvom det ligner et, og at det skal gemmes som tekst.
Alternativt, hvis du formaterer en celle som tekst og derefter skriver en lang række cifre i den, gør Excel nøjagtigt, hvad du forventer, og bevarer alle dens cifre, fordi den behandler dem som teksttegn, ikke numeriske cifre. Men hvis du glemmer at formatere cellen som tekst, før du skriver cifrene, eller hvis du ikke skriver en førende apostrof, behandler Excel cifrene som et tal, og når data er indtastet, afkortes det til 15 betydelige tal, og du kan ikke få de tabte cifre tilbage.
Hvad mere er, at importere data fra en CSV-fil adskiller sig meget fra at skrive dataene direkte i Excel, fordi en CSV-fil ikke indeholder nogen holdepunkter for formatet på dataene i dens felter. Når du bare dobbeltklikker på en CSV-fil for at åbne den i Excel, eller når du bruger Excels File | Åbn dialog, Excel vil gætte på, at alle felter, der indeholder alle cifre, skal behandles som tal, hvilket oftere end ikke er det, der ønskes. Det betyder ikke noget, om disse felter er lukket i anførselstegn: Hvis de alle er cifre, antager Excel simpelthen, at de er tal.
Men i stedet for bare at åbne CSV-filen, skal du klikke på Data | Hent eksterne data | Fra tekst får du kontrol over importprocessen og kan vælge formatet for hver datakolonne, så du kan fortælle Excel, at dine lange strenge af cifre skal behandles som tekst, ikke som tal.
OpenOffice giver nøjagtigt de samme antagelser: hver gang du skriver eller importerer data, der ligner et nummer, behandler både OpenOffice og Excel det som et tal som standard, og hvis du vil tilsidesætte den helt rimelige antagelse, bliver du nødt til at give ansøgning nogle hjælp.