Problema al incluir función SI para concatenar una celda, dentro de una fórmula que contaba caracteres en cadena de texto

He tenido un problema al tratar de incluir la función SI dentro de una fórmula que contaba unos caracteres específicos dentro de una cadena de texto, la idea era que si el resultado de dicha fórmula daba un numero en especifico, concatenara otra celda pero al incluir la fuincion SI como resultado excel me indicaba que había problemas con una referencia circular y daba como resultado "0" pido disculpas si es una bobada y estoy errando en algo básico, tengo muy pocos conocimientos.

Subo pantallazo para ser más claro

Esta es la fórmula que busca las repeticiones en la cadena de texto en la cadena de texto

=LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;1;1);""))&LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;2;1);""))&LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;3;1);""))

y asi la estoy colocando pero me envia problema de referecia circular y da "0" debo estar haciendo algo mal pues mis conocimientos son limitados

=SI(LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;1;1);""))&LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;2;1);""))&LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;3;1);""))&B1="212";CONCATENAR(A1);"")

3 Respuestas

Respuesta
1

Es que lo que intentas hacer es un poco complicado. Me explico, cuando tenemos fórmulas kilométricas como esa es muy difícil mantenerlas y no equivocarse.

Lo que se suele hacer en estos casos es descomponerlas por partes. Yo veo estas partes, que voy a nombres con letras mayúsculas:

A : LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;1;1);""))    

B : LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;2;1);""))

C: LARGO(A1)-LARGO(SUSTITUIR(A1;EXTRAE(A1;3;1);""))

Y además veo que las 3 fórmulas son exactamente iguales, y solo varía el número de orden de EXTRAE (1,2,3)

Con lo cual podrías meter cada una de esas fórmulas en una celda. Por ejemplo

A en la celda E1.  B en F1.  C en G1. Aunque yo te aconsejo que nunca empieces en la fila 1, ni siquiera en la fila 2. Al menos yo, suelo usarlas para encabezados o puedes necesitarla para colocar variables en las columnas. Por ejemplo el número de EXTRAE puede ir uno en cada columna en la fila 1 o 2.

Entonces, mi consejo. Descompuestas esas fórmulas, ubícalas en una celda cada una (contiguas) y después recodifica tu fórmula otra vez, pero en lugar de poner todo ese chorizo, pon la la dirección de las celdas donde esté cada una.

Yo lo he hecho, empezando en la fila 3. Y dejando la fila 2 para los valores de EXTRAE.

Ver foto:

Ya me dices si te resuelve el problema o necesitas más aclaraciones.

Perdón, en la foto anterior había unos errores al nombrar unas celdas. Además, las celdas donde las he ubicado son en la fila 3 y las fórmulas en las columnas D, E, F.

Una forma es usando los números de la fila 2 (en verde)

D3:  =LARGO(A3)-LARGO(SUSTITUIR(A3;EXTRAE(A3;D$2;1);"")) 

E3:  =LARGO(A3)-LARGO(SUSTITUIR(A3;EXTRAE(A3;E$2;1);""))

F3:  =LARGO(A3)-LARGO(SUSTITUIR(A3;EXTRAE(A3;F$2;1);"")) 

Otra forma es usando directamente los números 1,2,3  (en amarillo) 

D3: =LARGO(A3)-LARGO(SUSTITUIR(A3;EXTRAE(A3;1;1);""))

E3:  =LARGO(A3)-LARGO(SUSTITUIR(A3;EXTRAE(A3;2;1);""))

F3:  =LARGO(A3)-LARGO(SUSTITUIR(A3;EXTRAE(A3;3;1);""))    

Si yo lo había pensado en un principio así.  Solo Que es una hoja con muchos datos y quería ahorrarme más celdas. Pues es una hoja muy extensa... Pero si es muy complicado tocaría en una celda que de él resultado del 212 y en la otra que concatene si da ese valor y si no lo deje en blanco

Vale. Pero siempre puedes hacerlo más fácil para ti. Por ejemplo tienes estas dos opciones:

1) Descomponerlas como he dicho antes, y luego juntarlo todo en una macrofórmula. Pero primero asegurándote de que cada parte funciona correctamente.

2) Dejarlas descompuestas, como en esa foto y preguntar por D3, E3, F3. Tampoco importa mucho que uses otras columnas. Puedes poner esas fórmulas en columnas alejadas, como la X, Y, Z o unas que sepas que no vas a usar y luego OCULTARLAS y así nadie las verá. ¿Qué problema hay con eso?

Listo. Voy A intentar la de la macro fórmula  aunque no se muy bn como hacerlo porque los conocimientos son básicos pero con tus imágenes lo voy A intentar.. Ahora no estoy frente al pc 

Aunque lo que puse allí fue nos ejemplo.. realmente tengo una tabla con 190 columnas y 1890 filas a analizar. Entonces para cada número tendría que aumentarle una columna más dónde iría la él valor del "212" y otra columna donde iría concatenar o si cumple su valor y si no cumple pues lo deje en blanco. Así sería cierto? Espero haber entendido y mil disculpas si No. 

A lo mejor si veo una parte de tu excel, consigo entender mejor.

Que haya casi 2.000 filas no importa mucho, pero 190 columnas es muchísimo. No me hago una idea de por qué necesitas tantas columnas ¿Son todas de datos o son fórmulas?

Y otra cosa que no me ha quedado clara, es cuál es el propósito final de todo eso, porque a lo mejor hay una manera más sencilla de hacerlo.

OK voy a tratar de subir el Excel cuando este frente al pc . Es una base de datos de pulsaciones numéricas. Y básicamente lo que busco es que de ese cuadro. Separe en otro cuadro sólo los números que se repiten en sus resultados.. ejemplo si en a1 dice 828 pues la fórmula en B1 la concatene porque el 8 se repite.. Y si en vez de 828 dice 345 pues pues como no se repite ninguno número quede en blanco. Pues sólo necesito los números que se repitan como explique.. De igual forma Muchas gracias por la ayuda y atención. .

¿Probaste si te funcionó?

Si claro. Lo que hice para no enrredarme más con el tema, fue hacer una columna más y de acuerdo a su resultado concatenaba o no concatenaba, así a la final en el nuevo cuadro me arrojaba los números con esos caracteres que se repetían, a la final me arrojo el resultaba que esperaba y oculte las columnas y quedo perfecto, ;) muchas gracias porque me ayudo mucho tu respuesta para solucionarlo..

Ok. Entonces cierro el tema por mi parte.

Respuesta
1
Respuesta
1

Si el resultado de tu fórrmula es igual a 212 entonces que ponga lo que hay en A1, Si no, ¿no ponga nada?

En B1 pon:  =si(formula para concatenar)="212";A1;"")

En tu fórmula te marca error de referencia circular porque estas tratando de concatenarse a si misma la celda B1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas