Zure datuak egituratzea



Bezeroen eta animalien datuak taula bereizietan badituzu, bi taulen arteko eremu komun batekin, Excel fitxategi batera goiburu bikoitzeko formatuan inportatzeko modu azkar eta automatizagarria erabil dezakezu, aldiro eskuz kopiatu eta itsatsi behar izan gabe: Excel-eko Power Queryrekin edo macro (VBA) bidez.

Nola egin ez badakizu, jarraian azaltzen dizugu:


1. AUKERA: Excel-en Power Query erabili (Gomendatua)

Power Query Excel-en integratuta dago, eta datuak inportatu, eraldatu eta konbinatzeko tresna oso indartsua da, macro edo programazio konplexurik gabe

  1. Ireki datuak kargatu nahi dituzun Excel fitxategia.

  2. Joan Datuak fitxara > Datuak lortu eta eraldatu > Datuak lortu > Taulatik edo barrutitik.

  3. Kargatu bezeroen taula eta animalien taula (beste fitxategi batetik edo fitxategi beretik).

  4. Power Query-n:

    • Egiaztatu bi taulak behar bezala kargatuta daudela.

    • Batu bi taulak:

      • Hautatu bezeroen taula.

      • Egin klik Hasiera > Konbinatu kontsultak > Konbinatu.

      • Aukeratu animalien taula.

      • Lotu biak bezero-kodearen bidez.

    • Horrela, bezeroaren datuak dituen multzo berria lortuko duzu, eta bere animalien azpitaula.

    • Zabaldu azpitaula hori erakutsi nahi dituzun zutabeak ikusteko.

    • Eraldatu datuak behar duzun formatura:

      • Sartu + marka edo sinboloa animalia-kodearen eremuan, goiburu bikoitzeko formaturako.

      • Kargatu emaitza Excel orri batera.


Google-n "How to use Power Query in Excel" bilatuz informazio gehiago aurki dezakezu behar baduzu. Material erabilgarri asko dago.



2. AUKERA: Macro bat erabili (VBA)

Nahiago baduzu, VBA script bat sor dezakezu.

Adibidez, honako egoera dugu:

  • Fitxategiak: Clientes.xls eta Animales.xls

  • Orriak: Clientes eta Animales

  • Biak lotzen dituen eremua, animalietan: CodigoCliente


Zer egingo du macroak?

  • Clientes.xls eta Animales.xls fitxategiak irekiko ditu

  • Bezeroen eta animalien orrietako datuak bilatuko ditu.

  • Bezero bakoitzerako:

    • Bezeroaren datuekin errenkada bat sortuko du.

    • Bere animalia guztiak bilatuko ditu (codigoCliente eremuaren arabera) eta lehen gelaxkan + duen errenkada gehituko du

    • Dena uneko fitxategiaren orri aktiboan txertatuko du (macroa itsatsi eta exekutatzen duzun tokian)


vba

                                    Sub UnirClientesYMascotas()
                                    Dim wbClientes As Workbook
                                    Dim wbAnimales As Workbook
                                    Dim wsClientes As Worksheet
                                    Dim wsAnimales As Worksheet
                                    Dim wsDestino As Worksheet
                                    Dim filaDestino As Long
                                    Dim rutaClientes As String
                                    Dim rutaAnimales As String
                                    Dim ultimaFilaClientes As Long
                                    Dim ultimaFilaAnimales As Long
                                    Dim i As Long, j As Long
                                    Dim codigoCliente As String

                                    ' Rutas completas (ajústalas si es necesario)
                                    rutaClientes = Application.GetOpenFilename("Archivos Excel (*.xls), *.xls", , "Selecciona el archivo CLIENTES")
                                    If rutaClientes = "Falso" Then Exit Sub
                                    rutaAnimales = Application.GetOpenFilename("Archivos Excel (*.xls), *.xls", , "Selecciona el archivo ANIMALES")
                                    If rutaAnimales = "Falso" Then Exit Sub

                                    ' Abrir archivos
                                    Set wbClientes = Workbooks.Open(rutaClientes)
                                    Set wsClientes = wbClientes.Sheets("clientes")

                                    Set wbAnimales = Workbooks.Open(rutaAnimales)
                                    Set wsAnimales = wbAnimales.Sheets("animales")

                                    ' Hoja donde pegamos el resultado (la activa en este archivo)
                                    Set wsDestino = ThisWorkbook.ActiveSheet
                                    filaDestino = 1

                                    ' Detectar la última fila en cada hoja
                                    ultimaFilaClientes = wsClientes.Cells(wsClientes.Rows.Count, 1).End(xlUp).Row
                                    ultimaFilaAnimales = wsAnimales.Cells(wsAnimales.Rows.Count, 1).End(xlUp).Row

                                    ' Copiar encabezados del cliente
                                    For i = 1 To wsClientes.Cells(1, Columns.Count).End(xlToLeft).Column
                                    wsDestino.Cells(filaDestino, i + 1).Value = wsClientes.Cells(1, i).Value
                                    Next i

                                    ' Copiar encabezados de animales
                                    For i = 1 To wsAnimales.Cells(1, Columns.Count).End(xlToLeft).Column
                                    wsDestino.Cells(filaDestino + 1, i + 1).Value = wsAnimales.Cells(1, i).Value
                                    Next i

                                    filaDestino = filaDestino + 2 ' Empezamos a poner datos

                                    ' Recorrer cada cliente
                                    For i = 2 To ultimaFilaClientes
                                    ' Copiar datos del cliente
                                    wsDestino.Cells(filaDestino, 1).Value = "" ' Celda vacía (sin +)
                                    For j = 1 To wsClientes.Cells(1, Columns.Count).End(xlToLeft).Column
                                    wsDestino.Cells(filaDestino, j + 1).Value = wsClientes.Cells(i, j).Value
                                    Next j

                                    codigoCliente = wsClientes.Cells(i, 1).Value ' Suponemos que el código del cliente está en la columna 1

                                    filaDestino = filaDestino + 1

                                    ' Buscar las mascotas asociadas
                                    For j = 2 To ultimaFilaAnimales
                                    If wsAnimales.Cells(j, 1).Value = codigoCliente Then
                                    wsDestino.Cells(filaDestino, 1).Value = "+" ' Marca de mascota
                                    For k = 1 To wsAnimales.Cells(1, Columns.Count).End(xlToLeft).Column
                                    wsDestino.Cells(filaDestino, k + 1).Value = wsAnimales.Cells(j, k).Value
                                    Next k
                                    filaDestino = filaDestino + 1
                                    End If
                                    Next j
                                    Next i

                                    ' Cerrar los archivos de origen
                                    wbClientes.Close SaveChanges:=False
                                    wbAnimales.Close SaveChanges:=False

                                    MsgBox "Proceso completado. Los datos se han unido correctamente.", vbInformation

                                    End Sub
                                
  1. Ireki azken taula sortu nahi duzun Excel fitxategia.

  2. Sakatu Alt + F11 Visual Basic editorea irekitzeko.

  3. Ezkerreko menuan, eskuin-klik "VBAProject (ZureFitxategia.xlsx)" → Txertatu → Modulua.

  4. Itsatsi bertan aurreko kode osoa.

  5. Itxi editorea (X-rekin edo Ctrl + Q).

  6. Sakatu Alt + F8, hautatu UnirClientesYMascotas eta egin klik "Exekutatu".

  7. Clientes.xls fitxategia hautatzeko eskatuko dizu, eta gero Animales.xls fitxategia.

  8. Taula bateratua irekitako fitxategiaren uneko orrian itsatsiko da.












¿Te ha resultado interesante?
Si tienes cualquier duda, quieres proponernos que escribamos una guía de ayuda o un post sobre algún tema o simplemente quieres charlar con nosotros, no lo dudes. Estamos encantados de hablar contigo y conocer tu opinión.


programa perros





Webgune honek ez du publizitate- edo marketin-cookie-rik erabiltzen. Webgunea behar bezala funtziona dezan ezinbestekoak diren cookieak bakarrik erabiltzen ditu.
Gure cookieen erabilera gomendatua onartzen duzu, gure Cookieen Politika eta Pribatutasun Politikaren arabera.