Varför Excel inte visar mer än 15 siffror

Jag fick nyligen denna hjärtskärande vädjan från en läsare som uppenbarligen hade kämpat ett tag och hade nått slutet av sitt tjuv: ”Jag har en lista över produkter som vi säljer, och ett av fälten är UPC – detta fältet kan vara upp till 18 siffror långt. När jag lägger till mer än 15 siffror avrundar Excel automatiskt de tre sista till 000. Om jag ställer in det här fältet som text lägger det till +E11 i slutet av strängen. Det spelar ingen roll om jag har pelarens bredd längre än tre gånger den normala längden. Hur kan jag fixa detta?

Varför Excel inte visar mer än 15 siffror

”Jag önskar bara att Excel skulle göra vad det är tillsagt utan att behöva lägga till saker. Till exempel, om cellformatet är ”TEXT”, formatera inte något i det! Det verkar som att jag behöver använda Access bara för att göra några små ändringar i en CSV-fil – för att använda Access som ett kalkylblad istället för ett kalkylblad. Jag måste undra om OpenOffice gör samma sak.”

Det spelar ingen roll vilken storlek siffran är eller var decimaltecknet är placerat, Excel lagrar endast de första 15 signifikanta siffrorna och kasserar resten

Det finns några grundläggande begränsningar för alla programvaror, och Excel är inget undantag. Excel kan hålla siffror till endast 15 signifikanta siffror eftersom det använder IEEE Floating Point Maths, som dikterar hur siffror – som kan vara så stora som 1,79769313486231E+308 eller så små som 2,229E-308 – lagras utan att arbetsboken förbrukar gigabyte av utrymme och tar timmar att räkna om. Denna begränsning anges tydligt i hjälptexten för Excel.

Observera att ”signifikanta siffror” inte är detsamma som ”decimaler”; det spelar ingen roll vilken storlek siffran är eller var decimalkomma placeras, Excel lagrar endast de första 15 signifikanta siffrorna och kasserar resten.

UPC står för Universal Product Code, som egentligen är ett symboliskt eller kodnamn som består av siffror, snarare än att vara ett matematiskt tal.

Att lägga till eller subtrahera två UPC:er är meningslöst och leder inte till en annan giltig UPC-kod, även om varje kod består helt av siffror. Om du inte gör någon matematik på dina data, som är fallet med UPC:er, kan du tvinga Excel att lagra dem som text genom att skriva en apostrof innan du skriver den första siffran. Detta talar om för Excel att det du skriver inte är ett nummer, även om det ser ut som ett, och att det bör lagras som text.

Alternativt, om du formaterar en cell som text och sedan skriver en lång sträng med siffror i den, gör Excel exakt vad du kan förvänta dig och behåller alla dess siffror eftersom det behandlar dem som texttecken, inte siffror. Men om du glömmer att formatera cellen som text innan du skriver siffrorna, eller om du inte skriver en inledande apostrof, kommer Excel att behandla siffrorna som ett tal, och när data väl har angetts kommer den att trunkeras till 15 betydande siffror och du kan inte få tillbaka de förlorade siffrorna.

Dessutom är import av data från en CSV-fil helt annorlunda än att skriva in data direkt i Excel, eftersom en CSV-fil inte innehåller några ledtrådar om formatet på data i dess fält. När du bara dubbelklickar på en CSV-fil för att öppna den i Excel, eller när du använder Excels Fil | Öppna dialogrutan, Excel kommer att gissa att alla fält som innehåller alla siffror ska behandlas som siffror, vilket oftast är vad som önskas. Det spelar ingen roll om dessa fält är omgivna av citattecken eller inte: om de alla är siffror, så antar Excel helt enkelt att de är siffror.

Men om du istället för att bara öppna CSV-filen klickar på Data | Hämta extern data | Från Text får du kontroll över importprocessen och kan välja format för varje kolumn med data, så att du kan tala om för Excel att dina långa siffror ska behandlas som text, inte som siffror.

OpenOffice gör exakt samma antaganden: när du skriver eller importerar data som ser ut som ett nummer, kommer både OpenOffice och Excel att behandla det som ett nummer som standard, och om du vill åsidosätta det helt rimliga antagandet måste du ge ansökan lite hjälp.

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *