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 datos en base a dos referencias

publicado

Codigo para buscar datos tomando en cuenta dos referencias por ejemplo:

En la columna A tengo una lista de nombres en la fila 2 tengo los meses.

Nombre.....Enero.. Febrero.. Marzo... Abril

Alex ...........10........ 18....... 35....... 50

Pedro ..........85........ 42....... 21....... 13

Juan

Buscar alex en Marzo resultado 35

Gracias de antemano

Macro Consulta.xls

Featured Replies

publicado

Hola! LIONJ.

Una macro para lo que planteas me parece "un poco mucho"...

Por ejemplo podrías intentar en la celda D22 con lo siguiente:

= VLOOKUP(B22, Datos!$A$2:$M$9, MATCH(C22, Datos!$A$2:$M$2, 0), FALSE)

(Excel en inglés)

ó

= BUSCARV(B22, Datos!$A$2:$M$9, COINCIDIR(C22, Datos!$A$2:$M$2, 0), FALSO)

(Excel en español)

Saludos, Cacho R.

publicado

Hola!

Realmente necesitas una macro para tu problema?, si no es es asi bien podrias solucionarlo utilizando esta formula en D22 de la hoja Menu:

=DESREF(Datos!A2,COINCIDIR(Menu!B22,Datos!A:A,0)-2,COINCIDIR(Menu!C22,Datos!2:2,0)-1)

Podrias convertir previamente tu rango de datos en tabla para que la formula sea dinamica y no tome toda la columna y fila!

La otra alternatica es acomodar los datos de tal forma de que todos los nombres te queden en A, los meses en B y las cantidades en C y de ese nuevo rango crear una tabla dinamica la cual puedas filtrar y te regrese los datos deseados.

Ya si de plano quieres la macro, este es el codigo:


Option Explicit

'Para que este codigo siempre funcione correctamente dse debe estar seguro que no habra duplicados en la fila
'de los mese ni en la columna de los nombres, de lo contrario, puede dar datos erroneos
Sub Consulta_Plus()
Dim wsParam As Worksheet
Dim wsData As Worksheet
Dim rngData As Range
Dim rngName As Range
Dim rngMonth As Range
Dim name As String
Dim month As String
Dim result As String

Set wsParam = ThisWorkbook.Sheets("Menu")
Set wsData = ThisWorkbook.Sheets("Datos")
Set rngData = wsData.Range("B2").CurrentRegion

result = "No Encontrado!"
name = wsParam.Range("B22")
month = wsParam.Range("C22")

For Each rngName In rngData.Columns(1).Rows
If rngName = name Then
For Each rngMonth In rngData.Rows(1).Columns
If rngMonth = month Then
'result = rngData(rngName,
End If
Next rngMonth
End If
Next rngName
End Sub
[/CODE]

Te repito creo que seria mejor con alguno de las dos primeras soluciones.

Saludos!

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.