Saltar al contenido
View in the app

A better way to browse. Learn more.

Ayuda Excel

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Buscar valores en una hoja y devolver en otra

publicado

Buenas tardes,

 

¿Me podéis decir si esto lo puede hacer Excel? Tengo una hoja con datos en tres columnas, 2 numéricas y una de texto, el problema que tengo es que estos datos los cojo de una aplicación diferente y se van modificando diariamente, necesito actualizar los datos de estas columnas sin perder las que no se hayan modificado, solo cambiar los que coinciden con el texto y primera columna y añadir si no existe añadiendo los tres campos. 

Lo he intentado en otra hoja del mismo libro pero no soy capaz.

No se si me he explicado, bien.

Un saludo a todos,

Paco

Featured Replies

publicado

Sin el archivo y con un ejemplo de lo que quieres, imposible ayudarte.

publicado

Posible solución

Private Sub CommandButton1_Click(): Application.ScreenUpdating = False

    With Hoja1
        .Range("A2:C" & .Range("A" & Rows.Count).End(xlUp).Row).Copy _
        Destination:=Hoja2.Cells(.Range("A" & Rows.Count).End(xlUp).Row + 1, 1)
    End With
    
    With Hoja2
        .Cells.Sort Key1:=.Columns(1), Key2:=.Columns(2), Header:=xlYes
        .UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
        For X = .Range("A1").End(xlDown).Row To 2 Step -1
            If .Range("A" & X) = .Range("A" & X - 1) And _
                .Range("B" & X) = .Range("B" & X - 1) Then
                .Range("C" & X - 1) = .Range("C" & X)
                .Rows(X).Delete
            End If
        Next X
    End With
End Sub

 

image.gif

publicado
  • Autor

Hola buenos días,

Muchas gracias, tengo un pequeño problemilla, no me había dado cuenta que hay alguna repetición  en la fila y es si se podría agrupar con la misma solución sumar los que tengan mismo código  y mismo nombre, el resto está perfecto, muchas gracias:

19 EUGENIO 1153,32
19 EUGENIO 947,17
22 ANGEL  708,13
22 ANGEL  2674,4
   
publicado

Es decir, en vez de sustituir una cantidad por la otra sumar las dos verdad ?

publicado
  • Autor

Si, siendo mismo código y mismo nombre

publicado

Cambia el código por este

Private Sub CommandButton1_Click(): Application.ScreenUpdating = False

    With Hoja1
        .Range("A2:C" & .Range("A" & Rows.Count).End(xlUp).Row).Copy _
        Destination:=Hoja2.Cells(.Range("A" & Rows.Count).End(xlUp).Row + 1, 1)
    End With
    
    With Hoja2
        .Cells.Sort Key1:=.Columns(1), Key2:=.Columns(2), Header:=xlYes
        .UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
        For X = .Range("A1").End(xlDown).Row To 2 Step -1
            If .Range("A" & X) = .Range("A" & X - 1) And _
                .Range("B" & X) = .Range("B" & X - 1) Then
                .Range("C" & X - 1) = .Range("C" & X) + .Range("C" & X - 1)
                .Rows(X).Delete
            End If
        Next X
    End With
End Sub

 

publicado
  • Autor

Muchas gracias, funciona

publicado
  • Autor
hace 15 horas, JSDJSD dijo:

Cambia el código por este

Private Sub CommandButton1_Click(): Application.ScreenUpdating = False

    With Hoja1
        .Range("A2:C" & .Range("A" & Rows.Count).End(xlUp).Row).Copy _
        Destination:=Hoja2.Cells(.Range("A" & Rows.Count).End(xlUp).Row + 1, 1)
    End With
    
    With Hoja2
        .Cells.Sort Key1:=.Columns(1), Key2:=.Columns(2), Header:=xlYes
        .UsedRange.RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlYes
        For X = .Range("A1").End(xlDown).Row To 2 Step -1
            If .Range("A" & X) = .Range("A" & X - 1) And _
                .Range("B" & X) = .Range("B" & X - 1) Then
                .Range("C" & X - 1) = .Range("C" & X) + .Range("C" & X - 1)
                .Rows(X).Delete
            End If
        Next X
    End With
End Sub

 

Hola otra vez,

acabo de coger datos nuevos y veo que me pasa los datos sumando a los que hay y lo que necesito son los datos que trae de la aplicación ponerlos en la hoja actualizada, dejando los códigos, nombres y los importes.

Tabla datos externos, estos son los datos que deberían aparecer en la actualizada

 

 DOMINGO  256
1  ALVARO  500
1  LUIS  1167,98

 

Tabla actualizada

1  ALVARO  1000
1  DOMINGO  512
1  LUIS    2335,96

 

Así es como queda ahora

publicado

En tu última consulta lo entendí de esa manera su el archivo con el antes y el después para que no ocurra esto

publicado
  • Autor
hace 23 horas, JSDJSD dijo:

Es decir, en vez de sustituir una cantidad por la otra sumar las dos verdad ?

Pues no lo leí yo bien y está bien claro.  La respuesta correcta es, NO

Lo siento muchísimo...

publicado

Pues lo dicho sube tu archivo con el antes y el despues

publicado
  • Autor
Hace 1 hora, JSDJSD dijo:

Pues lo dicho sube tu archivo con el antes y el despues

Lo he dejado con la última actualización tuya, he modificado los importes,  en la hoja actualizada tienen repetidos códigos y nombres, esto lo hace correctamente, elimina uno y hace la suma y en los demás suma al pasar los datos, ahora la tabla actualizado tienen todos importe 1 y la de actualizar 10, al pasar los datos todos tienen 11

 

HOJA CALCULO.xlsm

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.