Jump to content
Ibeth

ANSWERED Al referenciar una tabla de doble entrada con "=INDIRECTO(COLUMNA_1) INDIRECTO(COLUMNA_2)" obtengo "#REF"!

Recommended Posts

 

Hola con todos!

Tengo un problema bastante particular y el cual no sé cómo explicar muy bien.

He estado buscando una solución en el foro, en google, youtube pero no he dado con la respuesta que necesito.

Necesito trabajar con una tabla de doble entrada para obtener la distancia entre dos lugares, pero esta tabla no repite todos los nombres de los lugares en ambas entradas.

El resultado a buscar debo escribirlo en otra tabla donde se detalla el nombre de cada lugar en dos columnas distintas. Ambas tablas se encuentran en la misma Hoja de Cálculo.

Mi profesor utilizó la fórmula INDIRECTO, vinculando las dos celdas donde estaba el nombre de los lugares, países en este caso, del siguiente modo:

=INDIRECTO(C14) INDIRECTO(D14)

A él la fórmula le funcionó sin ninguna complicación, obteniendo el valor de la distancia entre ambos países, sin embargo, cuando yo trato de utilizar la misma sintaxis obtengo "#REF!".

Quisiera saber a qué se debe esta diferencia si no he eliminado o modificado ninguna de las referencias que he utilizado.

Agradeceré cualquier sugerencia posible, gracias de antemano!

 

 

Libro1.xlsx

Share this post


Link to post
Share on other sites

Hola.

Yo particularmente con la funcion indirecto no se como obtener los resultados.

Prueba con esta formula:

=INDICE($K$4:$Q$9;SI.ERROR(COINCIDIR(C14;J$4:J$9;0);COINCIDIR(D14;J$4:J$9;0));SI.ERROR(COINCIDIR(D14;K$3:Q$3;0);COINCIDIR(C14;K$3:Q$3;0)))

Un saludo.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • Buenos días compañer@s, espero que estéis tod@s bien, a ver si me podéis ayudar. He creado una medida que me suman todas las categorías de las ventas [TOTAL_VENTAS], doce campos en total. Con ella he creados dos medidas más: VENTAS_AÑO_ACTUAL=CALCULATE([TOTAL_VENTAS];DATOS_BP[ANYO]=2020) VENTAS_AÑO_ANTERIOR=CALCULATE([TOTAL_VENTAS];DATOS_BP[ANYO]=2019) Hasta ahí todo bien. Mi pregunta es, cómo puedo hacer para que la medida calcule el año en curso y el año anterior sin necesidad de tener que poner 2020 y 2019?. Muchas gracias como siempre Saludos  
    • Así funciona: Sub Crear() Application.ScreenUpdating = False If Trim([C9]) = "" Then MsgBox "*** Cédula en blanco ***", vbCritical, "Alerta" Exit Sub End If If Trim([E9]) = "" Then MsgBox "*** Riesgo en blanco ***", vbCritical, "Alerta" Exit Sub End If If Trim([C11]) = "" Then MsgBox "*** Nombre en blanco ***", vbCritical, "Alerta" Exit Sub End If Set Cnn = New ADODB.Connection With Cnn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Datos\01.Adeudos.accdb" .Open End With With Sheets("Registro") Set Rs = New ADODB.Recordset Sql = "SELECT Count(*) FROM pen WHERE [Num Id]='" & .Range("C9") & "'" Rs.Open Sql, Cnn, 3, 3, adCmdText Datos = Rs.GetRows If Datos(0, 0) > 0 Then MsgBox "El registro ya existe en la base de datos!!!", vbCritical, "SACI" Else Sql = "INSERT INTO pen ([Num Id], Nombre, Riesgo, [Monto Caso], Moroso, [Nun_Patrono], [Nom_Patrono]) " Sql = Sql & "VALUES ('" & .Range("C9") & "', " & _ "'" & .Range("C11") & "', " & _ "'" & .Range("E9") & "', " & _ "'" & .Range("G9") & "', " & _ "'" & .Range("G11") & "', " & _ "'" & .Range("C13") & "', " & _ "'" & .Range("E13") & "' )" MsgBox "Datos actualizados con Exito!!!", vbInformation, "SACI" A_ingesarDatos = True End If End With Cnn.Execute (Sql) Cnn.Close Set Cnn = Nothing End Sub  
    • Hola buenas a todos, me presento como nuevo usuario, saludos a todos !!
    • Hacer eso con "una formula" se puede con Office 365. Si no tiene Office 365 el adjunto que le comparto NO le va a servir y deberá esperar alguna otra propuesta.   Filtrar con función.xlsx
    • Gracias por la ayuda. Seguramente algo tengo que estar haciendo mal. Lo puse de la siguiente forma y me da error con depurador al parecer es en esta parte del código "    .Open Sql, Cnn, , , adCmdText" Sub crear() Application.ScreenUpdating = False If Trim([C9]) = "" Then MsgBox "*** Cédula en blanco ***", vbCritical, "Alerta" Exit Sub End If If Trim([E9]) = "" Then MsgBox "*** Riesgo en blanco ***", vbCritical, "Alerta" Exit Sub End If If Trim([C11]) = "" Then MsgBox "*** Nombre en blanco ***", vbCritical, "Alerta" Exit Sub End If Set Cnn = New ADODB.Connection With Cnn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Datos\01.Adeudos.accdb" .Open End With Set Rs = New ADODB.Recordset Sql = "Select [Num Id] From pen Where [Num Id] =" & Worksheets("Registro").Range("C9").Value With Rs .CursorLocation = adUseClient .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open Sql, Cnn, , , adCmdText End With If Rs.RecordCount >= 1 Then MsgBox "Ya existe el ID, modifique" Exit Sub End If Sql = "INSERT INTO pen ([Num Id], Nombre, Riesgo, [Monto Caso], Moroso, [Nun_Patrono], [Nom_Patrono]) " Sql = Sql & "VALUES ('" & Worksheets("Registro").Range("C9").Value & "', " & _ "'" & Worksheets("Registro").Range("C11").Value & "', " & _ "'" & Worksheets("Registro").Range("E9").Value & "', " & _ "'" & Worksheets("Registro").Range("G9").Value & "', " & _ "'" & Worksheets("Registro").Range("G11").Value & "', " & _ "'" & Worksheets("Registro").Range("C13").Value & "', " & _ "'" & Worksheets("Registro").Range("E13").Value & "' )" With Rs .CursorLocation = adUseClient .CursorType = adOpenKeyset .LockType = adLockOptimistic .Open Sql, Cnn, , , adCmdText End With MsgBox "Datos actualizados con Exito!!!", vbInformation, "SACI" A_ingesarDatos = True End Sub Saludos
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy