2 mijloace rapide pentru a împărți conținutul unei foi de lucru Excel în mai multe registre de lucru pe baza unei anumite coloane

Uneori, în analiza datelor, poate fi necesar să împărțiți conținutul unei foi de lucru Excel în mai multe registre de lucru Excel în funcție de o anumită coloană. Acum, în această post, vă vom învăța 2 moduri rapide de a-l obține.

Mulți utilizatori trebuie frecvent să împartă o foaie de lucru Excel care conține rânduri uriașe de date în mai multe registre de lucru Excel separate, bazate pe o anumită coloană. De exemplu, aici este exemplul meu de foaie de lucru Excel. Aș dori să împart datele acestei foi pe baza coloanei „Prețul licenței unice (USD)” în mai multe registre de lucru.

Exemplu de foaie de lucru Excel

În general, veți avea tendința de a utiliza următoarea Metodă 1 pentru a filtra și copia manual datele. Dar, va fi destul de plictisitor și stupid dacă există prea multe opțiuni de filtrare. Prin urmare, aici arătăm și o modalitate mult mai convenabilă – Metoda 2, care folosește VBA. Acum, citiți mai departe pentru a le obține în detaliu.

Metoda 1: Copiați conținutul în registrele de lucru Excel separate după filtrare

  1. La început, selectați o celulă din coloana specifică, cum ar fi „Celula B1” în cazul meu.
  2. Apoi, accesați fila „Date” și faceți clic pe butonul „Filtrare”.Filtrare date
  3. Apoi, faceți clic pe butonul „săgeată în jos” din antetul coloanei pentru a afișa o listă de opțiuni de filtrare.
  4. Acum, debifați opțiunea „(Selectați tot)”.Debifați „Selectați tot”
  5. După aceea, puteți selecta o opțiune de filtru, cum ar fi „29.95” în exemplul meu și faceți clic pe „OK”.
  6. Deodată, vor fi lăsate doar datele, a căror valoare în coloana B este „29.95”.Au rămas doar datele filtrate
  7. Apoi, copiați datele filtrate și lipiți-le într-un nou registru de lucru Excel.Copiați și lipiți conținutul
  8. Mai târziu, utilizați același mod pentru a împărți celelalte date pentru a separa registrele de lucru Excel.

Metoda 2: Împărțiți conținutul în lot în mai multe registre Excel prin VBA

  1. În primul rând, asigurați-vă că foaia de lucru specifică este deschisă.
  2. Apoi, lansați editorul VBA conform „Cum să rulați codul VBA în Excel".
  3. Apoi, introduceți următorul cod în proiectul „ThisWorkbook”.
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn() Dim objWorksheet As Excel.Worksheet Dim nLastRow, nRow, nNextRow As Integer Dim strColumnValue As String Dim objDictionary As Object Dim Dim varColumn Obj Variant DiValum Dim varColumn Obj kbook As Excel.Workbook Dim objSheet As Excel.Worksheet Set objWorksheet = ActiveSheet nLastRow = objWorksheet.Range("A" și objWorksheet.Rows.Count).End(xlUp).Row Set objDictionary = CreateObject("Scripting.Dictionary") Pentru nRow = 2 To nLastRow 'Obține coloana specifică 'Aici este instanța mea Coloana „B” „O puteți schimba în cazul dvs. strColumnValue = objWorksheet.Range(„B” & nRow).Value If objDictionary.Exists(strColumnValue) = False Then objDictionary.Add strColumnValue, 1 End If Next varColumnDictionary.K objDictionary. Pentru i = LBound(varColumnValues) To UBound(varColumnValues) varColumnValue = varColumnValues(i) 'Creați un nou registru de lucru Excel Set objExcelWorkbook = Excel.Application.Workbooks.Add Set objSheet = objExcelWorkbook.Worksheet.ObjSheet. objWorksheet.Rows(1).EntireRow.Copy objSheet.Activate objSheet.Range("A1").Select objSheet.Paste For nRow = 1 To nLastRow If CStr(objWorksheet.Range("B" & nRow).Value) = CStr (varColumnValue) Apoi „Copiați datele cu aceeași valoare a coloanei „B” în noul registru de lucru objWorksheet.Rows(nRow).EntireRow.Copy nNextRow = objSheet.Range(„A” & objWorksheet.Rows.Count).End(xlUp). Rând + 2 objSheet.Range(„A” și nNextRow).Selectați objSheet.Paste objSheet.Columns(„A:B”).AutoFit End If Next Next End Sub

Cod VBA - Împărțiți conținutul unei foi de lucru Excel în mai multe registre de lucru pe baza unei anumite coloane

  1. După aceea, faceți clic pe pictograma „Run” din bara de instrumente sau apăsați butonul „F5”.
  2. Când macro-ul se termină, registrele de lucru Excel separate vor fi create cu datele împărțite din foaia de lucru Excel sursă.Noi registre de lucru Excel
  3. Fiecare registru de lucru va arăta ca următoarea captură de ecran.Separați noi registre de lucru Excel

Comparaţie

  Avantaje Dezavantaje
Metoda 1 1. Ușor de utilizat pentru toți utilizatorii Excel Problemă dacă există prea multe opțiuni de filtrare
2. Rapid dacă există puține opțiuni de filtrare
Metoda 2 Mult mai eficient decât Metoda 1, indiferent de cantitatea de filtru selectat Cam greu de operat pentru începătorii VBA

Preveniți pierderea datelor Excel

Deși MS Excel devine din ce în ce mai avansat și mai sofisticat, încă tinde să se blocheze din când în când din cauza unor factori diverși, cum ar fi suplimentele terțe sau erorile umane și așa mai departe. Deoarece blocarea Excel poate duce direct la Excel corupție, pentru a evita pierderea datelor Excel, trebuie să faceți o copie de rezervă a fișierelor Excel în mod regulat. În caz contrar, trebuie să aplicați un instrument de reparare Excel, cum ar fi DataNumen Excel Repair pentru a remedia fișierele Excel corupte.

Introducerea autorului:

Shirley Zhang este expertă în recuperarea datelor DataNumen, Inc., care este lider mondial în tehnologiile de recuperare a datelor, inclusiv SQL Server repara și produse software de reparații Outlook. Pentru mai multe informații vizitați www.datanumen.com

6 răspunsuri la „2 mijloace rapide de a împărți conținutul unei foi de lucru Excel în mai multe registre de lucru pe baza unei anumite coloane”

  1. Dacă vreau ca fiecare registru de lucru nou să fie numit „Carte de lucru” și orice valoare se află în coloana B, cum fac asta?

  2. Bună,

    Există o modalitate de a avea noile fișiere personalizate denumite și salvate într-un anumit folder, vă rog? Totul funcționează frumos, în afară de denumirea și salvarea personalizate a folderelor.
    Multumesc.

    marca

  3. Buna ziua. Cum se va schimba codul VBA dacă coloanele sunt schimbate astfel încât prețul să fie în coloana A în loc de B? Am încercat să schimb singur codul fără niciun rezultat.

    În plus, ar fi posibil să se genereze noi foi de lucru pe baza unui șablon care a fost deja realizat? Deci, practic, vreau ca datele să fie copiate în șablon și apoi salvate în folder.

  4. Row es la fila. Te dice que va desde la a doua filă până la ultima cu conținut (la fila 1 este la cabecera). Para cambiar la columna tienes que modificar donde pone .Range(“B”… por la columna que tu quieras. Si quieres la D sería .Range(“D”….

  5. „For nRow = 2 To nLastRow” este aceeași coloană „B”, așa că dacă aș vrea coloana D, aș schimba aceasta la 4?

Lasă un comentariu

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *