Data-analyysissä saatat joskus joutua jakamaan Excel-laskentataulukon sisällön useisiin Excel-työkirjoihin tietyn sarakkeen mukaan. Tässä artikkelissa opetamme sinulle kaksi nopeaa tapaa saada se aikaan.
Monien käyttäjien on usein jaettava suuria tietorivejä sisältävä Excel-laskentataulukko useiksi erillisiksi Excel-työkirjoiksi tietyn sarakkeen perusteella. Esimerkiksi tässä on esimerkki Excel-laskentataulukosta. Haluaisin jakaa tämän taulukon tiedot "Yksittäisen lisenssin hinta (US$)" -sarakkeen perusteella useisiin työkirjoihin.

Yleensä käytät seuraavaa tapaa 1 tietojen suodattamiseen ja kopioimiseen manuaalisesti. Mutta se on melko tylsää ja typerää, jos suodatinvaihtoehtoja on liikaa. Siksi tässä näytämme myös paljon kätevämmän tavan – menetelmän 2, joka käyttää VBA:ta. Lue nyt saadaksesi ne yksityiskohtaisesti.
Tapa 1: Kopioi sisältö erillisiin Excel-työkirjoihin suodatuksen jälkeen
- Valitse ensin solu tietystä sarakkeesta, kuten "solu B1" omassa tapauksessani.
- Siirry sitten "Data" -välilehteen ja napsauta "Suodata" -painiketta.
- Napsauta seuraavaksi "alasnuoli" -painiketta sarakeotsikossa nähdäksesi luettelon suodatinvaihtoehdoista.
- Poista nyt valinta "(Valitse kaikki)" -vaihtoehdosta.
- Sen jälkeen voit valita yhden suodatinvaihtoehdon, kuten "29.95" esimerkissäni, ja napsauta "OK".
- Jäljelle jää kerralla vain tiedot, joiden arvo sarakkeessa B on "29.95".
- Kopioi sitten suodatetut tiedot ja liitä ne uuteen Excel-työkirjaan.
- Käytä myöhemmin samaa tapaa jakaa muut tiedot erillisiksi Excel-työkirjoiksi.
Tapa 2: Eräjako sisältö useiksi Excel-työkirjoiksi VBA:n kautta
- Varmista ensinnäkin, että kyseinen laskentataulukko avataan.
- Käynnistä seuraavaksi VBA-editori "Kuinka suorittaa VBA-koodi Excelissä".
- Laita sitten seuraava koodi "ThisWorkbook" -projektiin.
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn()
Dim objWorksheet As Excel.Worksheet
Dim nLastRow, nRow, nNextRow As Integer
Dim strColumnValue As String
Dim objDictionary As Object
Dim varColumnValues As Variant
Dim varColumnValue As Variant
Dim objExcelWorkbook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Set objWorksheet = ActiveSheet
nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = 2 To nLastRow
'Get the specific Column
'Here my instance is "B" column
'You can change it to your case
strColumnValue = objWorksheet.Range("B" & nRow).Value
If objDictionary.Exists(strColumnValue) = False Then
objDictionary.Add strColumnValue, 1
End If
Next
varColumnValues = objDictionary.Keys
For i = LBound(varColumnValues) To UBound(varColumnValues)
varColumnValue = varColumnValues(i)
'Create a new Excel workbook
Set objExcelWorkbook = Excel.Application.Workbooks.Add
Set objSheet = objExcelWorkbook.Sheets(1)
objSheet.Name = objWorksheet.Name
objWorksheet.Rows(1).EntireRow.Copy
objSheet.Activate
objSheet.Range("A1").Select
objSheet.Paste
For nRow = 2 To nLastRow
If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
'Copy data with the same column "B" value to new workbook
objWorksheet.Rows(nRow).EntireRow.Copy
nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
objSheet.Range("A" & nNextRow).Select
objSheet.Paste
objSheet.Columns("A:B").AutoFit
End If
Next
Next
End Sub
- Napsauta sen jälkeen työkalupalkin "Suorita"-kuvaketta tai paina "F5"-näppäintä.
- Kun makro on valmis, erilliset Excel-työkirjat luodaan Excel-lähdetaulukon jaetuilla tiedoilla.
- Jokainen työkirja näyttää seuraavalta kuvakaappaukselta.
Vertailu
| edut | Haitat | |
| Menetelmä 1 | 1. Helppokäyttöinen kaikille Excel-käyttäjille | Ongelmallista, jos suodatinvaihtoehtoja on liikaa |
| 2. Nopea, jos suodatinvaihtoehtoja on vähän | ||
| Menetelmä 2 | Paljon tehokkaampi kuin menetelmä 1 riippumatta suodatinvaihtoehtojen määrästä | Hieman vaikea käyttää VBA-aloittelijoille |
Estä Excelin tietojen häviäminen
Vaikka MS Excelistä on tulossa yhä kehittyneempiä ja kehittyneempiä, se pyrkii silti kaatumaan ajoittain erilaisten tekijöiden, kuten haitallisten kolmannen osapuolen lisäosien tai inhimillisten virheiden ja niin edelleen vuoksi. Koska Excelin kaatuminen voi johtaa suoraan Excel-korruptioExcel-tietojen häviämisen välttämiseksi sinun on varmuuskopioitava Excel-tiedostot säännöllisesti. Muussa tapauksessa sinun on käytettävä Excel-korjaustyökalua, kuten DataNumen Excel Repair korjata vioittuneet Excel-tiedostot.
Tekijän esittely:
Shirley Zhang on tietojen palauttamisen asiantuntija DataNumen, Inc., joka on maailman johtava tietojen palautustekniikoissa, mukaan lukien SQL Server korjaus ja Outlookin korjausohjelmistotuotteet. Lisätietoja osoitteessa www.datanumen.com






