Det finns inget enda kommando för att automatiskt trunkera (inte runda) decimaler över en hel stor Excel -fil. Excels inbyggda funktionalitet passar bäst för enskilda celler eller utvalda intervall. För en verkligt stor fil är VBA (Visual Basic for Applications) den mest effektiva lösningen.
Här är flera tillvägagångssätt som går från enklaste till mest kraftfulla:
1. Formatceller (för mindre filer eller specifika kolumner):
* Välj celler: Markera kolumnen (erna) eller intervallet som innehåller de siffror du vill trunkera.
* Formatceller: Högerklicka och välj "Formatceller ...".
* Nummerflik: Välj "Number" eller ett anpassat nummerformat. Under "decimalplatser", ange `0` för att ta bort alla decimaler. Detta * ändrar inte * det underliggande värdet, bara displayen.
Detta är den enklaste metoden, men ineffektiv för stora filer och ändrar faktiskt inte det underliggande värdet. Antalet behåller fortfarande sina decimaler i beräkningar.
2. Använda funktionen "trunc" (för mindre filer eller specifika kolumner):
* sätt in en ny kolumn: Bredvid din befintliga kolumn, lägg till en ny kolumn.
* Använd funktionen "TRUNC": I den första cellen i den nya kolumnen anger du en formel som `=trunc (a1,0)` (förutsatt att dina data finns i kolumn A). Detta trunkerar antalet på a1 till noll decimaler.
* Kopiera ner: Dra fyllningshandtaget (det lilla fyrkanten längst ner till höger om cellen) för att applicera formeln på alla rader.
Återigen ändrar detta inte direkt originaldata; det skapar en trunkerad kopia. Den här metoden är bättre än att formatera för stora filer eftersom den bevarar originaldata, men den är fortfarande relativt långsam för mycket stora filer.
3. VBA -makro (för stora filer, mest effektiva):
Denna VBA -kod itererar genom alla celler i ett specificerat ark och trunkerar decimalplatserna direkt och modifierar de underliggande cellvärdena:
`` VBA
Sub trunkatedecimals ()
Dim WS som kalkylblad
Dim Lastrow så länge, Lastcol så länge
Dim i så länge, j så länge
'Ange kalkylbladet för att bearbeta
Ställ in ws =thisworkbook.sheets ("Sheet1") 'Ändring "Sheet1" till ditt arknamn
'Hitta den sista raden och kolumnen som innehåller data
lastrow =ws.cells.find ("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious) .ROW
LastCol =ws.cells.find ("*", SearchOrder:=xlbyColumns, SearchDirection:=xlPrevious). Column
'Slinga genom alla celler och trunkera decimaler
För i =1 till Lastrow
För J =1 till LastCol
Om isnumeric (Ws.Cells (i, j). Värde) då
WS.Cells (i, j) .Value =WorksheetFunction.TRUNC (WS.Cells (i, J) .Value, 0)
Slut om
Nästa J
Nästa jag
MSGBOX "Decimals trunkerade framgångsrikt!"
Slutsub
`` `
Hur man använder VBA -makro:
1. Öppna Excel -filen.
2. Tryck på ALT + F11 för att öppna VBA -redigeraren.
3. Gå till Insert> Modul.
4. Klistra in koden i modulen.
5. Ändra `" Sheet1 "` till det faktiska namnet på ditt ark.
6. Kör makroet genom att trycka på F5 eller klicka på "Run" -knappen.
Denna VBA -metod är den mest effektiva för mycket stora Excel -filer eftersom den direkt modifierar cellvärdena utan omkostnader av formelberäkning. Säkerhetskopiera alltid din fil innan du kör något VBA -makro. Överväg att testa det på ett mindre prov av dina data först.
Kom ihåg att välja den metod som bäst passar storleken på din fil och din komfortnivå med VBA. För verkligt massiva datasätt kan du överväga att använda ett mer kraftfullt datamanipuleringsverktyg som Python med bibliotek som pandor, som är utformade för effektiv hantering av stora datasätt.