Excel - Copiar formulas segun contenido de celda

 
Vista:
sin imagen de perfil
Val: 51
Ha aumentado su posición en 8 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Angel (22 intervenciones) el 16/01/2019 12:38:26
Buenos dias, tengo una hoja excel que en el ejemplo se llama PRUEBA dentro de un libro del mismo nombre, En el libro tengo otra hoja que se llama FORMULA

Normalmente el fichero tendra un nombre distinto y la hoja el mismo nombre del fichero, pero la hoja de formulas estan en otro libro que es siempre el mismo: PERSONAL.xslb y el nombre de la hoja Hoja1



Queria que buscara en la fila b dentro del texto y si aparece la palabra "inexistente" me copie las formulas en las filas C a N procediente de la hoja formula opcion 1

prueba

Si aparece la palabra "erroneo" la segunda y si aparece la palabra "sirve" la tercera opcion

FORMULA

Hay que tener en cuenta que la hoja PRUEBA puede tener x lineas y que yo solo quiero que lo aplique en las que tengan esos datos, que el resto no las modifique.

O bien que me pregunte a que rango aplicarselo al efectuar la macro.

Le estoy dando vueltas pero no se como hacerlo y agradeceria que me ayudaran.

Adjunto fotos y documento excel de pruebas.

Gracias de antemano por vuestra ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.066
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Antoni Masana (1416 intervenciones) el 16/01/2019 13:23:18
No entiendo nada de la explicación que haces.

En el ejemplo veo esta fórmula en D3:

1
=BUSCARV(C3;A:J;5;FALSO)


Y la verdad no tiene sentido. Básicamente dice busca el contenido de la celda C4 en la columna A de esta misma hoja. Es resto no es significativo.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 51
Ha aumentado su posición en 8 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Angel (22 intervenciones) el 16/01/2019 15:45:09
Creo que no me he explicado bien, lo que necesito es que copie en la columna C lo de la Hoja FORMULA segun la palabra que aparezca de las que indico en la D LA D , en la E la E...etc hasta llegar a la N

Esas formulas hacen referencia a datos que aparecen en un rango indeterminado debajo de las 3 lineas indicadas. Cada columna extrae datos de lo que aparece en la columna B o busca en los datos que aparecen debajo de estas 3 lineas pero que no he incluido porque no entendia que fuera necesario. Te envio un fichero entero para que entiendas lo que te digo, con el resultado al que quiero llegar.

Son logs de error de procesos automaticos de integracion de datos y analizarlos uno a uno es lento.

Gracias por tu interes una vez mas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.066
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Antoni Masana (1416 intervenciones) el 17/01/2019 10:25:18
Sigo sin entender que es lo que quieres hacer.

Hablas de la hoja FORMULA, me concentro en esta hoja.
Según creo entender necesitas que:
– Una formula en la columna C que extraiga un CODIGO del texto la columna B
 Una formula en la columna D que extraiga el EAN del texto la columna B
 Una formula en la columna E que extraiga el ASIN del texto la columna B
 Una formula en la columna F que extraiga el ARTICULO del texto la columna B

En ejemplo que envías he supuesto que los resultados deseados son estos:

1
2
3
4
5
6
7
8
FORMULAS PARA CALCULAR P.O.                                           CODIGO      EAN      ASIN   ARTICULO
-----------------------------------------------------------------+-----------+--------+---------+----------+
Articulo inexistente en ZMAGART:00392648                         |  00392648 |      - |       - |        - |
-----------------------------------------------------------------+-----------+--------+---------+----------+
ERROR precio erroneo. Articulo:00004920 Coste Amz:0.23 Coste S.. |         - |      - |       - | 00004920 |
-----------------------------------------------------------------+-----------+--------+---------+----------+
ERROR. NO se sirve MAS.      EAN:161237        Articulo:00015... |      0020 | 161237 |         | 00015401 |
-----------------------------------------------------------------+-----------+--------+---------+----------+

El ASIN no he sabido identificarlo.

Si lo que pretendes es esto, la fórmula BUSCARV no te sirve.

Si lo que deseas es extraer una parte del texto de la columna B que además puede estar en una posición diferente según el mensaje debes utilizar otras fórmulas.

Por lo que deduzco de tu ejemplo es que:

1
2
3
4
CÓDIGO    Esta es DOS posiciones según el mensaje empieza por Articulo o ERROR
EAN       Tiene posición fija en un solo tipo de mensaje
ASIN      No lo he identificado
ARTICULO  Esta es DOS posiciones según el mensaje empieza por ERROR precio o ERROR. No se

¿Voy por buen cami?

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 51
Ha aumentado su posición en 8 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Angel (22 intervenciones) el 17/01/2019 12:16:26
Gracisa por tu interes, es dificil explicarme...

Fijate en la hoja formulas... esas formulas las he copiado en la hoja de los datos. y mira lo que hace cada columna, unas extraen datos del texto anterior, sobre todo para localizar el codigo que es el dato comun, y debajo estan las lineas de donde extraigo el resto de datos, por eso la funcion buscarv , busca en la columna el codigo y me arroja resultados.

Basicamente en funcion de la palabra que encuentre el la columna B debe aplicar a c.d.e.. etc. las formulas que pongo en cada apartado.

Digamos que la hoja formula es como una plantilla...para copiar y pegar manualmente cada formula del resto de la fila en la hoja datos, pero yo quiero que eso lo haga automaticamente partiendo de esas palabras claves que te indico.

Si ves que no lo entiendas no te importe dejarme un telefono por privado y me pongo en contacto contigo y te trato de explicar. Ya me has ayudado en alguna otra ocasion y de verdad que agradezco enormemente tu interes.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.066
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Antoni Masana (1416 intervenciones) el 17/01/2019 13:09:05
Perdona compañero pero me pierdo y te aseguro que deseo ayudarte.

Hay dos formas de hacerlo: una es ir analizando tu comentario y diciendo lo que no entiendo, que es todo y la otra empezar desde el principio y es explicandome todo sobre el libro.

Empecemos desde el principio.

Qué finalidad tiene el libro y cómo lo vas a utilizar, ten en cuenta que yo no se haces, que pretendes hacer ni quien utilidad va a tener el libro ni cómo lo vas a utilizar.

En el libro veo tres áreas diferenciadas

1.- La hoja FORMULA

Reemplace este texto hay tres líneas con fórmulas que no funcionan porque hacen referencia a una área de datos que no existe

2.- La hoja PO MAD4 4H6N5QNT 19.12.18

Aquí veo dos áreas de datos:

SUPERIOR: de la fila 1 a la fila 27. Con fórmulas que si toman datos

INFERIOR: por un lado de la fila 49 a la 54 y por otro lado de la 56 a la 102. Sin fórmulas.

¿Que es cada cosa?
¿Donde introduces los datos?
¿Que desearías que pasase cuando introduces los datos?
¿Que clase de consultas haces?

Ten paciencia y podremos salir de esta.

Cuentame como si no supiese nada, yo no se que quieres hacer con este libro, explicame lo que quieres hacer y no cómo quieres hacerlo, hazlo sin pensar en formulas, macros y demás mandangas.

Hay algunas cosas que se podrían hacer de forma que desconoces y si no se que pretendes hacer no no puedo ayudarte.

Se que es difícil explicarse y yo me apunto el primero de la lista.

Seguro que la cosa es más simple de lo que padece.

No veo tu correo. Te dejo el mio, te paso por correo el teléfono o me envias el tuyo y te llamo.

amasana@hotmail.com

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 51
Ha aumentado su posición en 8 puestos en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Angel (22 intervenciones) el 17/01/2019 17:26:19
Mientras que nos ponemos de acuerdo para contactar por telefono(te he llamado y el numero es erroneo), olvidate de la hoja FORMULA, esa solo es una plantilla como si fuera un portapapeles para tener las 3 formulas diferentes

en la columna C de la otra hoja esta copiada la formula para cada caso, e indica de donde tiene que buscar o copiar los datos.

Es un fichero LOG de error, que tengo que analizar, son pedidos automaticos que entran, y que el sistema arroja un log con un error diferente (3 casos son los que me sirven, si hay otros diferentes de desprecian)

Articulos que no tenemos en nuestro centro
Articulos que piden a precio diferente al ofrecido
Y articulos que piden cantida menos a la minima que podemos enviar.

Revisando esto, como la hoja de logs puede tener 1 linea o 500 ... hay que ver la forma de indicar en cuales filas tiene que aplicar esas 3 formulas... se me ocurre un input que diga selecciona filas a procesar.... y a partir de ahi efectuar la rutina para cada caso.

Yo ahora copio y pego cada formula en cada caso

Mira a ver si me h explicado algo mejor ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.066
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar formulas segun contenido de celda

Publicado por Antoni Masana (1416 intervenciones) el 18/01/2019 08:19:03
Haber si ahora voy mas en certado.

En primer lugar las formulas.

Con esta única fórmula se contemplan los tres casos.

1
2
3
4
5
6
7
Columna B: =SI(IZQUIERDA(A3;8)="Articulo";VALOR(DERECHA(A3;8)); SI(IZQUIERDA(A3;8)="ERROR Pr"; VALOR(EXTRAE(A3;32;8)); VALOR(EXTRAE(A3;57;8))))
Columna C: =BUSCARV(B3;Tabla!A:J;5;FALSO)
Columna D: =BUSCARV(B3;Tabla!A:J;3;FALSO)
Columna E: =BUSCARV(B3;Tabla!A:J;8;FALSO)
Columna H: =SI(IZQUIERDA(A3;8)="Articulo";""; SI(IZQUIERDA(A3;8)="ERROR Pr"; EXTRAE(A3;51;4); EXTRAE(A3;78;2)))
Columna I: =SI(IZQUIERDA(A3;8)="Articulo";""; DERECHA(A3;4))
Columna M: =+VALOR(B3)

Macro para poner las formulas segun vas rellenando las celdas en este caso la columna A

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 1 Then Exit Sub
 
    Application.EnableEvents = False
 
    Cells(Target.Row, "B").Select
    ActiveCell.FormulaR1C1 = "=IF(LEFT(RC[-1],8)=""Articulo"",VALUE(RIGHT(RC[-1],8)), IF(LEFT(RC[-1],8)=""ERROR Pr"", VALUE(MID(RC[-1],32,8)), VALUE(MID(RC[-1],57,8))))"
 
    Cells(Target.Row, "C").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Tabla!C[-2]:C[7],5,FALSE)"
 
    Cells(Target.Row, "D").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-2],Tabla!C[-3]:C[6],3,FALSE)"
 
    Cells(Target.Row, "E").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-3],Tabla!C[-4]:C[5],8,FALSE)"
 
    Cells(Target.Row, "H").Select
    ActiveCell.FormulaR1C1 = "=IF(LEFT(RC[-7],8)=""Articulo"","""", IF(LEFT(RC[-7],8)=""ERROR Pr"", MID(RC[-7],51,4), MID(RC[-7],78,2)))"
 
    Cells(Target.Row, "I").Select
    ActiveCell.FormulaR1C1 = "=IF(LEFT(RC[-8],8)=""Articulo"","""", RIGHT(RC[-8],4))"
 
    Cells(Target.Row, "M").Select
    ActiveCell.FormulaR1C1 = "=VALUE(RC[-11])"
 
    Application.EnableEvents = True
End Sub

Esta macro va en la hoja de datos ( "PO MAD4 4H6N5QNT 19.12.18") Tambíen se puede hacer como macro para ejecutarla manual o de otra forma.

Los BUSCARV van a buscar a otra hoja que llamó TABLA y así no se mezclan las cosas.

Adjunto libro modificado con formulas y macros. Te lo envío en dos formatos: para Excel 2003 y Excel 2010

Saludos
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar