„Pivot“ lentelė horizontaliai ir vertikaliai - „Excel“ patarimai

Turinys

Kun. Markas iš Kanzaso atsiuntė šios savaitės „Excel“ klausimą:

„Excel“ suvestinės lentelės geriausiai veikia, kai duomenys yra suskirstyti į kuo daugiau įrašų, tačiau tai ne visada pats intuityviausias būdas įkelti duomenis į „Excel“. Pvz., Intuityviai reikia įkelti duomenis, pvz., 1 paveikslą, tačiau geriausias būdas analizuoti duomenis yra toks, kaip 2 paveiksle.
figūra 1
2 paveikslas

Pirma, aš naudosiu ne tokį tobulą „Excel“ būdą, kaip tvarkyti kelis duomenų laukus. Antra, parodysiu paprastą ir greitą makrokomandą, kad paverčiau 1 paveikslą į 2 paveikslą.

„PivotTable“ vedlys

Jei jūsų duomenys yra tokie, kaip 1 paveiksle, atliekant „PivotTable Wizard“ 3 iš 4 žingsnio, visus 4 ketvirčio laukus galima nuvilkti į sukimo lentelės duomenų sritį, kaip parodyta dešinėje.

„PivotTable“ rodinys

Čia yra ne toks tobulas rezultatas. Pagal numatytuosius nustatymus „Excel“ puslapyje yra keli duomenų laukai. Galite spustelėti pilką mygtuką „Duomenys“ ir vilkti jį aukštyn ir dešinėn, kad ketvirčiai eitų per puslapį. Tačiau jums trūksta kiekvieno regiono sumų, o kvartalo sumos visada atrodys netinkamos.

Taigi kun. Markas trenkė vinimi į galvą sakydamas, kad norint tinkamai juos išanalizuoti, duomenys tikrai turi būti 2 paveikslo formato. Toliau pateikiama makrokomanda, kuri greitai perkelia duomenis 1 paveikslo formoje „Sheet1“ į „Sheet2“ 2 paveikslo formatu. Ši makrokomanda nėra pakankamai bendra, kad galėtų dirbti su bet kokiu duomenų rinkiniu. Tačiau tai turėtų būti gana lengva pritaikyti pagal konkrečią situaciją.

Public Sub TransformData() ' Copyright 1999.com Sheets("Sheet2").Select Range("A1").CurrentRegion.Clear Sheets("Sheet1").Select Range("A1:B1").Copy Destination:=Sheets("Sheet2").Range("A1") Sheets("Sheet2").Select Range("C1").Value = "Qtr" Range("D1").Value = "Sales" Sheets("Sheet1").Select FinalRow = Range("A16000").End(xlUp).Row NextRow = 2 LastRow = FinalRow ' Loop through the data columns For i = 3 To 6 ThisCol = Mid("ABCDEFGHIJK", i, 1) ' Copy the left columns from sheet1 to sheet2 Range("A2:B" & FinalRow).Copy Destination:= _ Sheets("Sheet2").Range("A" & NextRow) ' Copy the header from ThisCol to column C Range(ThisCol & "1").Copy Destination:= _ Sheets("Sheet2").Range("C" & NextRow & ":C" & LastRow) ' Copy the data for this quarter to column D Range(ThisCol & "2:" & ThisCol & FinalRow).Copy _ Destination:=Sheets("Sheet2").Range("D" & NextRow) NextRow = LastRow + 1 LastRow = NextRow + FinalRow - 2 Next i Sheets("Sheet2").Select End Sub
„PivotTable“ rezultatų rodinys

Paleidus šią makrokomandą, duomenys bus lengviau analizuojamo formato, parodyto aukščiau 2 paveiksle. Dabar, kai naudojate šiuos duomenis suvestinei lentelei, galite visiškai kontroliuoti duomenis kaip įprasta.

Įdomios straipsniai...