............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Encontrar valores de una matriz en una celda de texto

Página 1 de 2. 1, 2  Siguiente

Ver el tema anterior Ver el tema siguiente Ir abajo

Encontrar valores de una matriz en una celda de texto

Mensaje por Marcelo.Silva el Miér Jun 15, 2011 1:03 pm

Hola a Todos:
Necesito una formula con combinación de ellas para los siguiente:
Tango una columna de celdas con diversos textos, los cuales deseo filtrar sgun criterios.
Tengo una Matriz de criterios con sus respectivas acciones.
La idea es aplicar una formula que busque los valores de la primera columna de la matriz en cada línea de la columna de textos y como resultado me entregue lo indicado en la segunda columna de la matriz, según la posición del dato en la primera columna de la matriz.



Marcelo.Silva

Masculino Cantidad de envíos : 6
Edad : 55
Ciudad - Pais : Chile
Version de Excel : 2007
Fecha de inscripción : 15/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por GalileoGali el Miér Jun 15, 2011 9:49 pm

Realmente no entiendo. Tal vez si explicaras con dos o tres ejemplos el resultado de la funcion.....

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Marcelo.Silva el Jue Jun 16, 2011 11:32 am

Envié una imagen adjunta con el ejemplo....
Dime si necesitas mas detalles..

Gracias

Marcelo.Silva

Masculino Cantidad de envíos : 6
Edad : 55
Ciudad - Pais : Chile
Version de Excel : 2007
Fecha de inscripción : 15/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Alejandro62 el Vie Jun 17, 2011 1:59 pm

Hola, yo todavia no entiendo tu consulta, da la impresion que es una tarea para la función =SUSTITUIR, como puede verse en esta imagen:

Introducir formula y copiar hacia abajo =SI(D2="Borrar",SUSTITUIR(A2,C2,""),A2) Tal vez debas cambiar las comas , por punto y coma ;



Con esta función no es lo mismo usar el criterio "para" que el criterio "PARA" son diferentes por lo de las mayusculas, intentemos con la sugerencia de la imagen y si no funciona, bueno en mi caso si necesitaría mas detalles de tu consulta para poder aportar algo al respecto.

Saludos.

Alejandro62

Masculino Cantidad de envíos : 37
Edad : 54
Ciudad - Pais : Mexico, Estado de Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 21/11/2009

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Marcelo.Silva el Vie Jun 17, 2011 3:17 pm

Hola, antes que todo agradezco la dedicación al tema, mas considerando que en realidad la imagen que adjunte en lugar de aclarar la consulta, la enreda mas...
Adjunto nueva imagen con lo que creo va a aclarar mas el asunto...
En síntesis, tengo una columna (A) donde tengo mas de 3000 líneas con diferentes textos. En la columna B deseo aplicar una fórmula que analice el texto en la celda Ax y dependiendo del texto que contenga ponga un resultado en la celda Bx. Uno de los resultados es el propio texto ubicado en la celda Ax, pero si esta contiene una palabra clave (como las expuestas en la columna D), entonces se debe reemplazar el texto por lo correspondiente a la celda E según la fila (y) donde se encuentre la palabra clave encontrada.

Saludos...


Marcelo.Silva

Masculino Cantidad de envíos : 6
Edad : 55
Ciudad - Pais : Chile
Version de Excel : 2007
Fecha de inscripción : 15/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Alejandro62 el Vie Jun 17, 2011 6:26 pm

Hola, veamos esta formula de Excel 2010 y despues copiemosla hacia abajo.

Adaptala a tus rangos pero tal vez debas cambiar las comas por punto y coma ( ; )

Es formula matricial, se introduce en la celda pulsando simultaneamente Control-Shift-Enter en vez de solamente Enter.

=SIERROR(CONSULTAV(MED(A2,MAX(SIERROR(HALLAR($D$13:$D$15,A2),"")),MAX(SIERROR(HALLAR(" ",A2&" ",HALLAR($D$13:$D$15,A2)),""))-MAX(SIERROR(HALLAR($D$13:$D$15,A2),""))),$D$13:$E$15,2,0),A2)

Notas: Pudiera haber problema por lo de la version 2010 y 2007, si usas Excel 2007 intenta cambiando lo siguiente:
La funcion CONSULTAV en excel 2007 es BUSCARV
La funcion MED en Excel 2007 es EXTRAER o EXTRAE.
No se si la funcion SIERROR ya exista en Excel 2007, creo que excel 2007 es SI.ERROR

Nota Extra: Toma en cuenta en tus datos los de las mayusculas y minusculas, ya que para la PC pudiera no ser lo mismo "DATO" que "Dato".

Si no te sirve avisa por favor y la hacemos para versiones antiguas como Excel 2003.

Saludos.

Alejandro62

Masculino Cantidad de envíos : 37
Edad : 54
Ciudad - Pais : Mexico, Estado de Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 21/11/2009

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por sailepaty el Lun Jun 20, 2011 12:50 pm

Otra opción,

=SIERROR(BUSCAR(2;1/ESNUMERO(HALLAR($D$13:$D$15;A2));$E$13:$E$15);"")

Saludos

sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 53
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Marcelo.Silva el Lun Jun 20, 2011 1:20 pm

Hola:
¿Como haces para que la función HALLAR, te tome argumentos de una matriz?... en mi Excel 2007 la función HALLAR sólo funciona con un argumento único (una celda o un valor), pero no una matriz....

Saludos

Marcelo.Silva

Masculino Cantidad de envíos : 6
Edad : 55
Ciudad - Pais : Chile
Version de Excel : 2007
Fecha de inscripción : 15/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por sailepaty el Lun Jun 20, 2011 2:01 pm

Hola Marcelo,

Antes que nada pregunto, te funciono la formula?

Ahora para poder interactuar con los valores que regresa la función HALLAR cuando se le provee un matriz, debes de encapsularla dentro de otra función que permita la matriz como parámetro (BUSCAR, ENCONTRAR, INDICE, etc). La función por si sola no permite efectivamente una matriz como parámetro de búsqueda.

Saludos

_________________
I didn't ask to be Mexican I just got lucky!!!

sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 53
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Marcelo.Silva el Lun Jun 20, 2011 4:56 pm

Hola SailePaty:
Agradezco tu valiosa ayuda... al parecer la formula si funciona, la probe y funciona bien , ahora la estoy aplicando a la tabla completa (mas de 15000 registros) ... se está tomando un poco de tiempo..., asi que mañana te confirmo...
Muchas Gracias... Saludos...

Marcelo.Silva

Masculino Cantidad de envíos : 6
Edad : 55
Ciudad - Pais : Chile
Version de Excel : 2007
Fecha de inscripción : 15/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por sailepaty el Lun Jun 20, 2011 5:05 pm

Wow! Sin duda muchas celdas a evaluar para el tipo de formula que te propuse, yo no me atrevería a usarla en mas de 50. Que tan cómodo te sientes utilizando una macro?

Saludos

_________________
I didn't ask to be Mexican I just got lucky!!!

sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 53
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Marcelo.Silva el Mar Jun 21, 2011 11:40 am

Hola:
La verdad es que entiendo el concepto de las Macros, pero no tengo experiencia con ellas, mas que grabar una secuencis de pasos y aplicarla posteriormente y no con mucho éxito... hasta ahora me las he arreglado aplicando formulas a diestra y siniestra y... apesar de que la planillas se me han puesto muy muy peadas, he podido arreglarmelas agregando memoria al PC, pero si tienes facilidad para ayudarme con macros será muy bien recibida... Pero no quiero quitarte tiempo con ello...
Gracias por tu preocupación...

Marcelo.Silva

Masculino Cantidad de envíos : 6
Edad : 55
Ciudad - Pais : Chile
Version de Excel : 2007
Fecha de inscripción : 15/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por GalileoGali el Dom Jun 26, 2011 1:21 am

Puedes probar esta macro en este archivo



Código:
Sub asignar_Instruccion()
Dim i As Long
Dim Claves, Textos
Dim TablaResultados
Claves = Range("Asignacion").Value
Textos = Range("TextoAnalisis").Resize(Range("TextoAnalisis").Rows.Count, 2).Value

For i = 1 To UBound(Textos, 1)
    For j = 1 To UBound(Claves, 1)
          If Textos(i, 1) Like "*" & Claves(j, 1) & "*" Then
          Textos(i, 2) = "BORRAR" & CStr(j)
          Exit For
          End If
    Next j
          If j = UBound(Claves, 1) + 1 Then Textos(i, 2) = Textos(i, 1)
Next i

Range("TextoAnalisis").Resize(Range("TextoAnalisis").Rows.Count, 2).Value = Textos
End Sub

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Alejandro62 el Miér Jun 29, 2011 7:08 pm

Hola...
De acuerdo a los rangos que se manejaron en este post me gustaría comentar que tanto mi formula grande como la formula de sailepaty no representaron problema de retraso o lentitud en los calculos en mi PC. Tanto una formula como la otra fueron evaluadas en un rango de 240,024.00 celdas de A1:A240024, y las formulas de B1:B240024 presentaron un rendimiento aceptable.

La macro del Master Gali se ejecutó en mi PC en tan solo 3 o 4 segundos tambien sobre las 240,024.00 celdas, gracias Master Gali por compartirla.

Yo hice una macro formulada aplicada tambien sobre las 240,024.00 celdas y el resultado de velocidad de ejecucion fue el mismo, es decir 3 o 4 segundos de ejecucion, la macro es la siguiente:
El rango "datos" es A1:A240024 y el rango de la tabla es igual, es decir: I2:J4

Código:
Sub PorFormula()
Set cx = Range("Datos").Offset(1, 1)
Range("B1").FormulaArray = _
        "=IF(RC[-1]="""","""",IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH(R2C9:R4C9,RC[-1])),R2C10:R4C10),RC[-1]))"
    Range("B1").Copy
    cx.Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub
Digo lo anterior solo como un comentario, e insisto, las pruebas fueron hechas sobre la tabla I2:J4

Saludos.


Alejandro62

Masculino Cantidad de envíos : 37
Edad : 54
Ciudad - Pais : Mexico, Estado de Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 21/11/2009

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por GalileoGali el Jue Jun 30, 2011 12:59 am

A propósito de la Calculacón (smart calculation) es imposible dejar de mencionar al MVP más dedicado a este aspecto de Excel, Charles Williams, quien ha dedicado su sitio primordialmente al tema, creo interesante que todos los que diseñamos, tengamos en cuenta este aspecto, que pasa a ser relevante en megaplanillas, nutridas de formulas y formatos condicionales.
Una herramienta útil para el Test de laboratorio, lo constituye el Rangecalc.xla, un addin que nos permite calcular el tiempo insumido en llevar adelante la calculcioan de cualquier rango previamente seleccionado en el que se encuentre formulas, o bien para medir la ejecucion de una macros.

[Tienes que estar registrado y conectado para ver este vínculo]

se descomprime se gurada en la carpeta de Addins y se instala como cualquier otro addin

[Tienes que estar registrado y conectado para ver este vínculo]

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por sailepaty el Jue Jun 30, 2011 10:55 am

Alejandro62 escribió:El rango "datos" es A1:A240024 y el rango de la tabla es igual, es decir: I2:J4

Ahora prueba que sucede si tus datos osn A1:A50000 Y la tabla es I2:J200. Si bien es importante la cantidad de veces que pones la formula, el tiempo de calculo esta directamente relacionado con la cantidad de registros que compara en la tabla.

Saludos


_________________
I didn't ask to be Mexican I just got lucky!!!

sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 53
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Alejandro62 el Vie Jul 01, 2011 1:34 am

Hola sailepaty, para yo no dar una respuesta incorrecta en cuanto tenga algo de tiempo checaré los rangos que me comentas.

Bueno, yo dije que las pruebas las habia hecho sobre los rangos que se manejaron en este post, sobre todo los de la pequeña tabla del rango I2:J4 aunque aplicadas sobre 240424 celdas.

Lo que pasa es que Marcelo.Silva mencionó que se le colgaba la formula sobre "mas de 15000 registros" y digamos que yo asumi que eran los datos y tal vez tu asumiste que era la tabla, considero que ese punto no fue claro por parte de Marcelo.

Ademas considero que tu formula fue mas ingeniosa que la mia, que aunque tambien funciona la mia es mas "dificil de comprender" y que por cierto en mi caso Marcelo ni siquiera se tomo la molestia de agradecer como tampoco hasta el momento ha agradecido la opcion que le brindó el Master Gali.

Si es que no cierran este post entonces mañana pondre mis comentarios del rango que se menciona.

Saludos.

Alejandro62

Masculino Cantidad de envíos : 37
Edad : 54
Ciudad - Pais : Mexico, Estado de Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 21/11/2009

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por GalileoGali el Vie Jul 01, 2011 8:08 am

Muchachos; aprovechemos a cargar el Addin y medir estos casos, con el único propósito de que aparezca por estos pagos (u otros cercanos) don KL, quien peleas mas, discusiones menos me convenció de la importancia capital de la eficiencia y a pesar de que esta reocupado con temas empresariales, creo que nadie le PERDONA SU AUSENCIA. Cuando tengamos un tema que segun creamos todos amerite su intervencion, haganmelo notar, que PERSONALMENTE me ocupare de hacerlo INTERVENIR
.........ESPERO PODER ALGUN DIA VISITARLOS, tal vez un encuentro en el D.F., pidiendole a SAILE que baje a visitar a sus parientes y de pasadita, nos encontrariamos con Alejandro para que nos sugiera donde sentarnos a "platicar", que ni la voz les conozco y nos venimos "rozando los codos" hace años...
Desde este pago gaucho, un abrazo campestre de GALI

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por sailepaty el Vie Jul 01, 2011 11:01 am

Yo mas puesto que un calcetin, solo le tienes que poner fecha Gali. Y seguro que se extrañan los aportes de KL.

Un abrazo

_________________
I didn't ask to be Mexican I just got lucky!!!

sailepaty
Moderador
Moderador

Masculino Cantidad de envíos : 135
Edad : 53
Ciudad - Pais : Dallas, TX
Version de Excel : 2007 y 2010
Fecha de inscripción : 04/03/2008

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Alejandro62 el Vie Jul 01, 2011 2:12 pm

Hola...
Yo estoy mas que puesto para vernos, ¡sería sensacional!, ¡imagenense conocer al Master Gali y al no menos excelente sailepaty!, ¡es como conocer a Leonel Messi y Cristiano Ronaldo!, ¡super!, e imaginense invitar al otro Master, a Cacho Rodriguez, que recien lo veo por aqui en este foro, ¡genial!.

Bueno, con respecto a los "test de velocidad de la PC" me permito comentar que he realizado las pruebas sobre los rangos sugeridos y el resultado es el mismo, es decir, mi PC "no se cuelga" en ninguno de los rangos manejados, teniendo entonces la PC un resultado optimo, insisto de acuerdo a estos rangos del post.

En lo personal checaré el link que comenta Gali para ver que pasa, de entrada si Galileo lo sugiere me imagino ha de estar muy bueno.

Bueno, aprovechando este post, estuvo cañon lo del descenso del River Plate ¿ o no?.

Saludos.




Alejandro62

Masculino Cantidad de envíos : 37
Edad : 54
Ciudad - Pais : Mexico, Estado de Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 21/11/2009

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Cacho R el Vie Jul 01, 2011 2:53 pm

A propósito de tu último comentario "futbolero", Alejandro, acabo de declararte "persona no grata" y sujeto a "castigo exceliano permanente" ... (al menos hasta que volvamos a ascender en el 2013, si tenemos suerte).

P.D.
La herida es demasiado reciente como para "revolverla": ¿Se entiende?, ¿No?

Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por GalileoGali el Vie Jul 01, 2011 5:52 pm

Por lo que veo el tema River, anda de BOCA EN BOCA!!!!!!!!!!

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Alejandro62 el Vie Jul 01, 2011 9:30 pm

¡Master Cacho! ¿y yo que culpa tengo de esa represion hacia mi persona?, jajajajaja, bueno lo que pasa es que aca en Mexico fue una bomba la noticia de que el river plate descendia, cuando lo supe pense que era el dia de los santos inocentes, pero no, no estamos en diciembre.

Que buen juego de palabras Gali, jajajajaja.

Y ahora que me acuerdo , yo ni le voy ni a uno ni al otro, jejejeje,

Saludos.

Alejandro62

Masculino Cantidad de envíos : 37
Edad : 54
Ciudad - Pais : Mexico, Estado de Mexico
Version de Excel : Excel 2010
Fecha de inscripción : 21/11/2009

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Cacho R el Sáb Jul 02, 2011 5:36 am

Un antiguo dicho popular sostiene: -"El que ríe último, ríe mejor"...

El simpatizante "bostero" (haciendo alarde de su visión de futuro) no ha caído en la cuenta que comenzarán -el torneo entrante- con un promedio de puntos similar al que "sufrió" el "millo" este torneo...

Sugerencia para el semestre: - "En BOCA cerrada no entran moscas".

Cacho R
Moderador
Moderador

Masculino Cantidad de envíos : 210
Ciudad - Pais : Buenos Aires
Version de Excel : Desde Multiplan (pre-Excel) hasta 2010
Fecha de inscripción : 29/06/2011

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por GalileoGali el Sáb Jul 02, 2011 10:54 am

Cacho; muy bueno tu quiero RETRUCO, pero aclaro que no soy bostero, sino que me gustan los "calamburs" (juegos de palabras, por tranposicion silábica, por extensión, mi uso), y cuando tengo uno servido en bandeja, lo aprovecho....
Hablando de "servido en bandeja"....
¿no será gallina?

Aclaracion: salvo en mundiales, donde me prendo un poco, para no ser aún más "bicho raro" de lo que ya me impone el contexto, en general no "le hago al fútbol". aún cuando debo reconocer que fluye sangre velezana que se remueve sangenarescamente, cada vez que alguien me pregunta "¿de que cuadro es hincha"?, club del que fui socio hasta que ingrese al convento (no es juego de palabras)....y digo sangre porque confluyeron los cuatro abuelos, los padres y tíos, digamos que en las reuniones familiares se podia discutir de cualquier tema menos de futbol.....

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional

GalileoGali
Admin

Masculino Cantidad de envíos : 1962
Edad : 61
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Re: Encontrar valores de una matriz en una celda de texto

Mensaje por Contenido patrocinado Hoy a las 1:34 pm


Contenido patrocinado


Volver arriba Ir abajo

Página 1 de 2. 1, 2  Siguiente

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.