avisad a spyro512 si vuelven para proceder a bloquearles
#16957 BuscarV te encuentra el primer valor en una columna de arriba a abajo, si no quieres que devuelva valor tendrás que usar un if (index).
si quieres buscar de abajo a arriba, lo tendrías que hacer una función recusiva (lambda)
Intenta evitarte macros siempre que puedas, no hagas caso al lado oscuro de @aikoncwd
Preguntándole a gepeto me dice ya cositas:
Certainly! Here’s how you can create a Lambda function in Excel that searches for a specified value in a column upwards from a given cell:
Define the search range: First, determine up to which row you want to search. For example, if you want to search from cell A15 up to A1.
Create the Lambda function: Define a function that scans from the specified cell upwards and stops scanning when it finds the desired value.
Here’s an example of how you could write this Lambda function:
excel Copiar código
=LAMBDA(cell, valueSearched,
LET(
startRow, ROW(cell),
column, COLUMN(cell),
searchRange, INDIRECT(TEXT(column, "[$-409]@") & "1:" & TEXT(column, "[$-409]@") & startRow),
SCAN("", FLIP(searchRange), LAMBDA(a, b, IF(b = valueSearched, IF(a = "", b, a), a)))
)
)
Explanation:
cell: This is the cell from where you want to start the upward search.
valueSearched: This is the value you are trying to find.
startRow and column: These are used to determine the dynamic range over which the SCAN function will operate.
searchRange: Creates a range that goes from the first row up to the start row of the cell.
SCAN: This function scans the range in reverse order (from bottom to top) looking for the specified value. It uses FLIP to reverse the order of the range.
IF in SCAN: Stops scanning when the first value matching valueSearched is found.
Usage:
Assuming you save this Lambda with the name SearchUp, you would use it as follows:
excel Copiar código
=SearchUp(A15, "DesiredValue")
This example will give you the first occurrence of "DesiredValue" starting from cell A15 and searching upwards to A1. Adjust the parameters as per your specific needs.
Aquí lo tienes con el valor de la primera celda:
excelCopiar código
=LAMBDA(valueSearched,
LET(
currentCell, CurrentCell,
startRow, ROW(currentCell),
column, COLUMN(currentCell),
searchRange, INDIRECT(TEXT(column, "[$-409]@") & "1:" & TEXT(column, "[$-409]@") & startRow),
SCAN("", FLIP(searchRange), LAMBDA(a, b, IF(b = valueSearched, IF(a = "", b, a), a)))
)
)
=YourLambdaFunctionName("DesiredValue")
sí, dos días tardaron, ahora tengo que escribir una línea y me tiraré todo el día porque me da algo de pereza
#16991 luego si me aburro lo hago, pero es que estoy en el veterinario todavía. pegad la pregunta de vene a chatgpt y pedid la solución con una macro
#16989 chat gpt hizo eso, yo literal soy uno de los becarios de weyu.
Hace un max porque si lo que quieres es la primera fila con ese valor en orden descendente pilla el maximo de la lista que acabas de generar
Pregunta estúpida, se puede llamar a una celda A(L1)? para que iguale el valor numérico del indice al valor de la celda L1?
No sé para que pregunto si lo puedo probar, brb
#16990 pero visual basic es un vector de ataque en ciberseguridad y blalbaexcusas, sinceramente, las odio porque me dan pereza, es algo personal y lo admito. las macros me huelen a bugs.
Y además luego viene wyyu te hace un code review y a repasar los merges.
paso paso
#16994 en eso te doy la razón. no lo usaría como solución para entregar a nadie. pero para uso propio? como si lo combino con SQL cln consultas sin limpiar y permitiendo inyección. qué mas da?
#16995 en vez de consultas SQL en macros ¿has probado la funcion de Obtener datos de excel (powerquery)? es una verdadera maravilla, en mi opinión, puro amor.
ahora no me digas que tu sql es un 2003
#16996 nunca he tenido esa necesidad. no toco demasiado el excel.
lo que venia a decir es que si necesitas algo para ti mismo, a mi no me importa lo inseguro que sea tbh. mientras sea practico y rapido.
También uno ha de usar aquello con lo que se sienta comodo. Y en mi caso particular, algo de codigo, aunque sea VBA, se me hace más entenedor que la sintaxis de las formulas de excel
ya funciona el negocio de excel con esto
=IFERROR(MAX(INDEX((A$2:A3=1)*(ROW(A$2:A3)), 0)), "Not Found")
y
=IF(AND((INDIRECT("I"&L3))=FALSE, A3>1,I3=TRUE), "TRUE", "FALSE")
#16995AikonCWD:qué mas da?
Eso me decía antes, pero luego cuando te toca comerte tus propias mierdas un año más tarde te quieres pegar un tiro. Ahora lo que hago por hobby está más limpio que lo del trabajo porque si no no lo toco.
Y lo que hagas en el curro siempre deberías tomártelo como si fuera a usarlo otra persona imho, te ahorra problemas a la larga. Documentación, scripts, procesos... todo. Mucho más fácil de escalar después.
Muchas gracias a @T0X1C1TY_ y @aikoncwd , aunque hice yo todo, sin vuestra ayuda esto habría sido 100% posible también
es coña, lo guardo todo en un USB llavero de publicidad que me dieron con una caja de cervezas en el 2002, cabe todo en 64MB
#17007 webos, como te ha ido con los auriculares q dijiste, pudiste subirle volumen? me gustaron las reviews q vi, pero lo del volumen bajo hacen q ni de coña