Saltar al contenido

vínculo a celda con el mismo nombre


soda1206

Recommended Posts

publicado

Buen día estimados foreros, ojalá puedan ayudarme nuevamente, esta vez con el siguiente problema...necesito realizar el efecto de un vínculo, a modo ejemplo, dejé la celda D63 con ese efecto, es decir, al pinchar ese N° (607671) que el vínculo busque ese mismo número más arriba (celda D21)  y poder agregarle la fecha "final" de llegada (relleno color azul), quedando un solo n° , sin duplicidad (relleno color amarillo) como se muestra en la solución de cómo debe quedar finalmente (columnas i a la n). La lista que se adjunta, la acorté para darles el ejemplo, pero en realidad tiene más de 1.800 n° de registros y todos los días va creciendo, por eso requiero encontrar rápido el n° y agregarle su fecha "final" de llegada.

AyudaExcel_vínculo.xlsx

publicado

Hola,

Prueba esta fórmula:

=LET(b;D2:D65;a;UNICOS(b);APILARH(INDICE(a;COINCIDIR(a;b;));a;BUSCARV(a;D2:E65;2;);BUSCARX(a;b;F2:F65;"";;-1)))

Saludos,

publicado

Hola @Victor7, primero muchas gracias por tu apoyo, lo segundo...escribí la fórmula en columna G2, arroja error como lo ves en la imagen abajo: algo estoy haciendo mal, la fórmula dónde debo escribirla??

 

image.png.af2a1f9f939c1466dac3bc16f2af8b4e.png

publicado

Saludos cordiales.

Si te da error #¿NOMBRE? es posible que no tengas esa función (o esas funciones) en tu versión de Excel, por eso es importante colocar ese dato en tu perfil. Podrías indicar cuál es por favor.

publicado

Entiendo.

La función del Maestro es más limpia, pero por ejemplo si te sirve y en lo que él te propone algo, (además que me dio curiosidad tu archivo por aquello de las diferentes versiones) se me ocurrió interesante emular algunos resultados para llegar al que propones.

Igual podría ser útil, lo dejo por aquí.

Nota: Las funciones que emule fueron UNICOS() y BUSCAR_X() para que funcione desde 2013, tendrías que pegar las funciones en un módulo de VBA.

 

AyudaExcel_vínculo.xlsb

publicado

estimado @Israel Cassales, muchas gracias por tu respuesta, hice una prueba... encuentra el n° repetido y llama el valor de fecha final que falta, hasta ahí todo ok, el problema se presenta cuando debo borrar el dato repetido (ejemplo:  la fila 62 (columnas C a la F) que contiene la fecha final de un número ya existente, al borrar se resetea la fecha encontrada con la función que me proporcionaste. Si creo que es más complicado de lo que parece el problema que he presentado. Saludos cordiales.

publicado

Entiendo.

Pues complicado no es tanto, por lo que entiendo borraste el dato repetido (el que está en el ORIGEN del cálculo) y como estamos con fórmulas le estás borrando un valor que necesita para procesar el resultado (DESTINO), si te interesas por otras opciones (y en espera de las más aportaciones que puedan agregar en la consulta) una sentencia VBA que haga eso, parecería ser una opción.

Piénsalo y si te decides, vuelve para comentarlo.

Saludines

publicado

Estimado @Israel Cassales, primero que nada mil disculpas por mi respuesta con tanta demora, pero salí de mi trabajo y ahora sigo en casa...ahora lo que propones hacer esto por medio de una macro sería estupendo, la verdad que sí!! ahora si puedes apoyarme con una solución VBA para lo que necesito, te lo agradecería demasiado, en serio. Quedo atento a cualquier comentario, saludos cordiales y gracias!!!

publicado

Hola de nuevo a todos,

Ahora veo que había un error en la fórmula de mi anterior post, y que tampoco recogía la columna inicial de secuencia. Podemos corregirla por esta otra:

=LET(b;D2:D65;a;UNICOS(b);APILARH(SECUENCIA(CONTARA(a));INDICE(C2:C65;COINCIDIR(a;b;));a;BUSCARV(a;D2:E65;2;);BUSCARX(a;b;F2:F65;"";;-1)))

Si consigues otra solución por VBA, perfecto. Lo que yo puedo sugerirte es que abras un archivo en Excel/Web e introduzcas tu BD y esta fórmula, y la solución la copies y pegues [como valores]; de esta forma podrás recuperarla en cualquier versión anterior de Excel.

Saludos,

publicado

Hola @Victor7, gracias por tu respuesta, sabes que realicé tu recomendación de trabajar en Excel web (365) y ahí pegué mis datos y la fórmula, pero esta última no realiza la operación, queda escrita en la celda sin realizar el cálculo, quería adjuntarte un pantallazo, pero no me deja ya que debe tener cierto kb de peso la imagen, por otro lado, había pensado lo mismo de copiar y pegar como valores el resultado de lo propuesto por @Israel Cassales, pero creo que no es realmente lo que quería como proceso, por eso la propuesta de @Israel Cassales de trabajar esto mismo por medio de instrucciones VBA sería la mejor solución, es decir, más automatizado todo el proceso. Te agradezco mucho tu propuesta @Victor7

 

 

publicado

Saludos totales.

Maestro @Victor7 gusto en coincidir con usted en esta consulta.

@soda1206 ¡Claro! Si te atrae la idea de una sentencia VBA deja pienso un código que pueda servir.

Algo que me gustaría agregar es que la forma en que tienes pensado en que funcione por fórmulas (es posible) pero al depender el resultado del origen tendrías que permitir un cálculo iterativo o mejor conocido como referencia circular. Porque entiendo que son muchos registros en forma subsecuente y quien captura por alguna razón no cuenta con la fecha final al momento que lo hace y cuando debe ponerla, en lugar de buscarla arriba por si ya existe viene y pone una línea más. Entonces la fórmula debería buscar ese valor en la misma columna D y luego devolver el valor encontrado en la misma columna F pero más arriba. Y luego si la idea es borrar ese valor que se está buscando, pues ahí pierde el inicio del cálculo.

Aquí hay más información al respecto.

PERMITIR REFERENCIAS CIRCULARES

publicado

Mira algo como esto debería servir, hice pruebas y parece que cumple.

Sub RellenarFechaFinal()
    Dim i As Long
    Dim j As Long
    Dim lastRow As Long
    lastRow = Cells(Rows.Count, "D").End(xlUp).Row
    For i = 2 To lastRow
        If IsEmpty(Cells(i, "F")) Then
            For j = i + 1 To lastRow
                If Cells(i, "D") = Cells(j, "D") And Not IsEmpty(Cells(j, "F")) Then
                    Cells(i, "F") = Cells(j, "F")
                    Exit For
                End If
            Next j
        End If
    Next i
End Sub

 

publicado

? wow!! eso sí fue rápido ?, sin comentarios estimado @Israel Cassales, solo mencionar que es justo lo que necesitaba y quería ?, ahora sí me permite borrar el n° duplicado una vez pegado la fecha final sin perder o resetear información, quedo muy agradecido nuevamente, doy por solucionado y cerrado el tema...muchas gracias y hasta pronto estimado @Israel Cassales.

publicado
hace 4 horas, soda1206 dijo:

ahí pude pegar imagen, la fórmula queda escrita en celda sin realizar la operación.

Eso es porque al copiar/pegar, el texto queda adherido con un apóstrofo al principio de la fórmula; si lo borras, aparecen los resultados.

Saludos,

publicado

estimado @Victor7,  muchas gracias por tu propuesta primero que nada, y por otro lado, respecto al apóstrofo la verdad que no lo tiene, me había fijado en eso, porque la fórmula queda como texto o comentario dentro de una celda, pero revisé bien eso y no tiene apóstrofe (') inicial, por lo que ni idea del por qué no realiza el cálculo, a pesar que lo realicé en excel 365, sin más....tienes todo mi agradecimiento. Que tengas una linda semana y hasta pronto. ?

Archivado

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

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.