Jag fick nyligen denna hjärtskärande uppmaning från en läsare som uppenbarligen hade kämpat under en tid och hade nått slutet på sin koppling: Jag har en lista över produkter som vi säljer, och ett av fälten är UPC - detta fält kan vara upp till 18 siffror långa. När jag lägger till mer än 15 siffror avrundar Excel automatiskt de sista tre till 000. Om jag ställer in detta fält som text lägger det till + E11 i slutet av strängen. Det spelar ingen roll om jag har kolumnbredden längre än tre gånger den normala längden. Hur kan jag åtgärda detta?
Jag önskar bara att Excel skulle göra vad den får veta utan att behöva lägga till saker. Till exempel, om cellformatet är TEXT, formatera inte något i det! Det verkar som om 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 kalkylark istället för ett kalkylark. Jag måste undra om OpenOffice gör detsamma.
Det spelar ingen roll vilken storlek numret är eller var decimalen placeras, Excel lagrar bara de första 15 signifikanta siffrorna och kasserar resten
nova launcher ändra låsskärm tapet
Det finns några grundläggande begränsningar för någon programvaruprodukt, och Excel är inget undantag. Excel kan innehålla siffror till endast 15 signifikanta siffror eftersom den 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 utrymme och ta timmar att räkna om. Denna begränsning anges tydligt i Excel-hjälptexten.
Observera att signifikanta siffror inte är desamma som decimaler. det spelar ingen roll vilken storlek siffran är eller var decimalpunkten placeras, Excel lagrar bara de första 15 signifikanta siffrorna och slänger 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 är inte meningsfullt 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, kan du tvinga Excel att lagra dem som text genom att skriva en apostrof innan du skriver den första siffran. Detta berättar för Excel att det du skriver inte är ett nummer, även om det ser ut som ett, och att det ska lagras som text.
Alternativt, om du formaterar en cell som Text och sedan skriver in en lång rad siffror i den, gör Excel exakt vad du förväntar dig och behåller alla siffror eftersom den behandlar dem som texttecken, inte numeriska siffror. Men om du glömmer att formatera cellen som text innan du skriver siffrorna, eller om du inte skriver en ledande apostrof, kommer Excel att behandla siffrorna som ett tal, och när data har matats in trunkeras de till 15 betydande siffror och du kan inte få tillbaka de förlorade siffrorna.
Dessutom importerar 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 oftare är vad man vill ha. Det spelar ingen roll om dessa fält är inhägnade med citattecken eller inte: om de alla är siffror antar Excel helt enkelt att de är siffror.
Om du istället för att bara öppna CSV-filen klickar du på Data | Hämta externa data | Från Text får du kontroll över importprocessen och kan välja format för varje datakolumn, så att du kan berätta 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.