necesito ayuda con las funciones

11/02/2006 - 19:59 por vicky | Informe spam
hola necesito que me ayuden para saber como crear o aplicar una funcion de
excel, tengo que sumar el contenido de campos que poseen letras y numero Ej,
888T, a mi lo que me interesa es sumar la cantidad de veces que aparece esa o
varias letras en un rango
vicky

Preguntas similare

Leer las respuestas

#11 KL
13/02/2006 - 12:50 | Informe spam
Se me ha olvidado traducir la ultima formula (la de la hoja entera) del ingles al castellano:

=SUMAPRODUCTO(CONTAR.SI(Hoja1!1:65536;REPETIR({"*s*"\"*t*"\"*v*"};FILA(INDIRECTO("1:255")))))
y
=SUMAPRODUCTO(CONTAR.SI(Hoja1!1:65536;REPETIR({"*s*"\"*t*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))

Saludos,
KL


"KL" wrote in message news:
Hola de nuevo,

Otra opcion muchisimo mas eficiente que se me ocurrio ayer contestando otra pregunta parecida (se supone que una letra no se
repetiria mas de 255 veces en una celda):

Vertical (columna entera):
=SUMAPRODUCTO(CONTAR.SI(A:A;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Vertical (rango aislado):
=SUMAPRODUCTO(CONTAR.SI(A1:A10;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Horizontal (fila entera):
=SUMAPRODUCTO(CONTAR.SI(4:4;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Horizontal (rango aislado):
=SUMAPRODUCTO(CONTAR.SI(C4:X4;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Bidimensional (rango aislado):
=SUMAPRODUCTO(CONTAR.SI(C4:X10;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Bidimensional - tambien se podria aplicar la formula a la hoja entera desde otra hoja, pero no lo recomiendo:
=SUMPRODUCT(COUNTIF(Hoja1!1:65536,REPT({"*s*","*t*","*v*"},ROW(INDIRECT("1:255")))))

Las formulas de arriba se las podria agilizar bastante si se supiera por ejemplo que una letra solo podria repetirse hasta digamos
10 veces en una celda:

=SUMAPRODUCTO(CONTAR.SI(A:A;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(A1:A10;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(4:4;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(C4:X4;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(C4:X10;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMPRODUCT(COUNTIF(Hoja1!1:65536,REPT({"*s*","*t*","*v*"},{1\2\3\4\5\6\7\8\9\10})))

Nota: Las formulas no distinguen entre mayusculas y minusculas.

Saludos,
KL


"KL" wrote in message news:
Hola Vicky,

puedo aplicar la misma formula para sumar en filas?



Si pero habra que cambiar la orientacion de la matriz fija de vertical a horizontal. O sea que si in tu sistema el separador de
matriz vertical es punto y coma (";"), entonces prueba usar coma (",") para las horizontales [ o tal vez la contrabarra ("\")].
P.ej.:

=SUMAPRODUCTO(LARGO(C4:X4)-LARGO(SUSTITUIR(C4:X4;{"T","t","B","b","V","v"};"")))

Saludos,
KL




Respuesta Responder a este mensaje
#12 KL
13/02/2006 - 21:56 | Informe spam
Hola de nuevo,

Por si alquien se pregunta (como yo me acaba de preguntar) y que pasa con la longitud maxima de la cadena de texto en el segundo
algumento de CONTAR.SI de 255 caracteres, me temo que se lo ha preguntado tiene razon. El numero de ocurrencias detectables es por
tanto controlado por Excel y no por el que diseña la formula y se puede expresar por la siguiente formula:

=ENTERO(255/LARGO(TextoBuscadoInclAsteriscos))

En los ejemplos de este hilo el numero maximo de ocurrencias de cada una de las letras que se pueden detectar seria:

=ENTERO(255/LARGO("*t*"))=ENTERO(255/3)…

Si transformamos la formula un poco:

=SUMAPRODUCTO(CONTAR.SI(A:A;"*"&REPETIR({"t*"\"b*"\"v*"};FILA(INDIRECTO("1:255")))))

ese numero subira un poco:

=ENTERO(254/LARGO("t*"))=ENTERO(254/2)7

Tambien, me imagino que dado que usamos asteriscos (*) y muchas veces no vemos en que punto tocaria el limite de 255 caracteres, es
posible la situacion que nos pille con el asterisco al final. En ese caso, como hemos puesto el maximo de 255, la ultima cadena mas
larga se creara en la instancia 127 y a partir de ahi simplemente se repetira las 128 veces restantes lo cual nos contaria la cadena
127 unas 129 veces en vez de una. Total que habria que tener doble cuidado con la formula:

1) tomar en cuenta el numero maximo de las ocurrencias detectables antes de usarla
2) incluir dicho numero exacto como limite en la formula.

algo asi:

=SUMAPRODUCTO(CONTAR.SI(A:A;"*"&REPETIR({"t*"\"b*"\"v*"};FILA(INDIRECTO("1:"&ENTERO(254/2))))))

con lo que la formula sigue siendo bastante rapida, pero se convierte en una de alto riesgo de error poco predecible y bastante
limitada :-(

En fin, una pena aunque he tenido dias peores.

Saludos,
KL


"KL" wrote in message news:
Se me ha olvidado traducir la ultima formula (la de la hoja entera) del ingles al castellano:

=SUMAPRODUCTO(CONTAR.SI(Hoja1!1:65536;REPETIR({"*s*"\"*t*"\"*v*"};FILA(INDIRECTO("1:255")))))
y
=SUMAPRODUCTO(CONTAR.SI(Hoja1!1:65536;REPETIR({"*s*"\"*t*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))

Saludos,
KL


"KL" wrote in message news:
Hola de nuevo,

Otra opcion muchisimo mas eficiente que se me ocurrio ayer contestando otra pregunta parecida (se supone que una letra no se
repetiria mas de 255 veces en una celda):

Vertical (columna entera):
=SUMAPRODUCTO(CONTAR.SI(A:A;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Vertical (rango aislado):
=SUMAPRODUCTO(CONTAR.SI(A1:A10;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Horizontal (fila entera):
=SUMAPRODUCTO(CONTAR.SI(4:4;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Horizontal (rango aislado):
=SUMAPRODUCTO(CONTAR.SI(C4:X4;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Bidimensional (rango aislado):
=SUMAPRODUCTO(CONTAR.SI(C4:X10;REPETIR({"*t*"\"*b*"\"*v*"};FILA(INDIRECTO("1:255")))))

Bidimensional - tambien se podria aplicar la formula a la hoja entera desde otra hoja, pero no lo recomiendo:
=SUMPRODUCT(COUNTIF(Hoja1!1:65536,REPT({"*s*","*t*","*v*"},ROW(INDIRECT("1:255")))))

Las formulas de arriba se las podria agilizar bastante si se supiera por ejemplo que una letra solo podria repetirse hasta
digamos 10 veces en una celda:

=SUMAPRODUCTO(CONTAR.SI(A:A;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(A1:A10;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(4:4;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(C4:X4;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMAPRODUCTO(CONTAR.SI(C4:X10;REPETIR({"*t*"\"*b*"\"*v*"};{1\2\3\4\5\6\7\8\9\10})))
=SUMPRODUCT(COUNTIF(Hoja1!1:65536,REPT({"*s*","*t*","*v*"},{1\2\3\4\5\6\7\8\9\10})))

Nota: Las formulas no distinguen entre mayusculas y minusculas.

Saludos,
KL


"KL" wrote in message news:
Hola Vicky,

puedo aplicar la misma formula para sumar en filas?



Si pero habra que cambiar la orientacion de la matriz fija de vertical a horizontal. O sea que si in tu sistema el separador de
matriz vertical es punto y coma (";"), entonces prueba usar coma (",") para las horizontales [ o tal vez la contrabarra ("\")].
P.ej.:

=SUMAPRODUCTO(LARGO(C4:X4)-LARGO(SUSTITUIR(C4:X4;{"T","t","B","b","V","v"};"")))

Saludos,
KL







email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida