Sumaproducto cambia alternativamente

01/02/2006 - 21:12 por Oscar | Informe spam
Hola Grupo:

Expongo el problema. He elaborado una formula con sumaproducto, no tiene
mucha ciencia, es como las que han colocado en este foro.

=SUMAPRODUCTO((Base!$D$2:$D$65535
Sin embargo, en ocasiones tengo que colocar la condicion con referencia a la
celda y en ocasiones tengo que colocar el valor entre comillas, pero si una
vez me funciona con ¡, en otras ocasiones tengo que cambiar a ="27", por
ejemplo:

Alguien tendra una pista? : /
Oscar
Saludos desde México

Preguntas similare

Leer las respuestas

#6 KL
03/02/2006 - 20:50 | Informe spam
Hola Oscar,

Pues tal como te comentaba, el problema lo tienes debido a la confusion entre los formatos de los datos de la base y los usas en las
condiciones. Lo que tienes en Base!$E$1:$E$60000 no son valores numericos (aunque lo aparienten) sino cadenas de texto. En cambio,
en la celda [A1] si que tienes un valor numerico (27 no es igual a "27"). Por tanto, se me ocurren tres soluciones:

1) Convertir los datos de Base!$E$1:$E$60000 en valores numericos:
- seleccionas toda la columna
- menu Datos>Texto en columnas...
- boton Finalizar

2) Adaptar tu formula al hecho de que Base!$E$1:$E$60000 contiene texto convirtiendo el valor de [A1] en texto.

=SUMAPRODUCTO((Base!$E$1:$E$60000=""&A1)*(Base!$AC$1:$AC$60000="A"))

3) Adaptar el valor de [A1] al hecho de que Base!$E$1:$E$60000 contiene texto anadiendo un apostrofe delante del numero para
convertirlo en texto.

p.ej. en la celda [A1] introduce: '27

Saludos,
KL


"Oscar </Ave_Fenix\>" wrote in message
news:
Hola KL

De hecho la formula que puse es un ejemplo, y meti la pata al colocar la
referencia A1 entre comillas :P

Pero en las formulas reales, lo cierto es que sucede ese cambio entre una y
otra formula. A veces funciona buscando el valor "27" y cuando no quiere,
pues opto por cambiarla a A1.

Si me lo permites, tambien me tomo el atrevimiento de mandartelo.

Oscar
Saludos desde México


"KL" escribió:

Hola Oscar,

> =SUMAPRODUCTO((Base!$E$1:$E$60000="27")*(Base!$AC$1:$AC$60000="A"))
> =SUMAPRODUCTO((Base!$E$1:$E$60000="A1")*(Base!$AC$1:$AC$60000="A"))

Me llama mucho la atencion el que uses las comillas casi indiscriminadamente en tu formula. Quizas aqui es donde tengas tu
problema:

Base!$E$1:$E$60000="A1"
-> tiene poco sentido a no ser que se busque el valor "A1" y no la referencia a la celda [A1]

Base!$E$1:$E$60000="27"
-> tiene poco sentido a no ser que se busque la cadena de texto "27" y no el valor 27

Posiblemente la combinacion de corregir las formulas anteriores y entender que tipo de valor esta en la celda [A1] haria el
truco.

> Con respecto a las 65535,
> tienes razon es mucho pero manejo bases de mas de 37000, la cual es variable.
> De todas formas te envio el archivo a tu correo, tomandome el atrevimiento
> para que lo veas igual y detectas otra cosa

Podrias usar rangos dinamicos.

1) Si tienes Excel 2003 bastaria con seleccionar toda la tabla una vez, ir al menu Datos>Lista>Crear Lista... y ajustar tu
formula
al rango real. Ahora cuando anadas mas registros la formula cogera el rango correcto automaticamente.

2) Crea un nombre definido y usalo dentro de tu formula:

a/ Suponiendo que...
- La columna [A] no puede tener celdas vacias intercaladas
- La columna [A] contiene solo cadenas de texto

Prueba:
- menu Insertar>Nombre>Definir...
- nombre: rng1
- se refiere a...: =$E$1:INDICE($E:$E;COINCIDIR(REPETIR("z";255);$A:$A))
- boton Anadir
- nombre: rng2
- se refiere a...: =$AC$1:INDICE($AC:$AC;COINCIDIR(REPETIR("z";255);$A:$A))
- boton Anadir
- boton Aceptar

b/ Suponiendo que...
- La columna [A] no puede tener celdas vacias intercaladas
- La columna [A] contiene solo valores numericos

Prueba:
- menu Insertar>Nombre>Definir...
- nombre: rng1
- se refiere a...: =$E$1:INDICE($E:$E;COINCIDIR(1e307;$A:$A))
- boton Anadir
- nombre: rng2
- se refiere a...: =$AC$1:INDICE($AC:$AC;COINCIDIR(1e307;$A:$A))
- boton Anadir
- boton Aceptar

c/ Suponiendo que...
- La columna [A] no puede tener celdas vacias intercaladas
- La columna [A] contiene todo tipo de valores

Prueba:
- menu Insertar>Nombre>Definir...
- nombre: rng1
- se refiere a...: ÞSREF($E$1;;;CONTARA($A:$A))
- boton Anadir
- nombre: rng2
- se refiere a...: ÞSREF($AC$1;;;CONTARA($A:$A))
- boton Anadir
- boton Aceptar

Una vez creados los nombres puedes usarlos en tu formula asi:

=SUMAPRODUCTO((rng1¡)*(rng2="A"))

d/ Otra cosa que a veces hago es la siguiente.
Suponiendo que...
- La columna [A] no puede tener celdas vacias intercaladas
- La fila [1] contiene encabezados

Prueba:
- menu Insertar>Nombre>Definir...
- nombre: bd
- se refiere a...: ÞSREF($A$1;;;CONTARA($A:$A);CONTARA($1:$1))
- boton Anadir
- boton Aceptar

=SUMAPRODUCTO((INDICE(bd;;5)¡)*(INDICE(bd;;29)="A"))


Hay varias soluciones mas...

Saludos,
KL


Respuesta Responder a este mensaje
#7 Oscar
03/02/2006 - 21:30 | Informe spam
Ok KL

Entendido y anotado, todo respecto a tus sugerencias. Sin embargo, me
creeras que aun asi, lo raro es que ya teniendo la formula hecha y
considerando los datos como "27" independientemente a si es texto o numero,
de verdad que funcionaba y despues de dos dias o x tiempo, volvia a abrir el
archivo y ya no funcionaba. Bueno supongo que es un caso, como cuando ves
ovnis y no tienes a nadie de testigo... jajaja.

Lo seguro es que tus sugerencias me serviran de mucho

Gracias amigo
Oscar
Saludos desde México


"KL" escribió:

Hola Oscar,

Pues tal como te comentaba, el problema lo tienes debido a la confusion entre los formatos de los datos de la base y los usas en las
condiciones. Lo que tienes en Base!$E$1:$E$60000 no son valores numericos (aunque lo aparienten) sino cadenas de texto. En cambio,
en la celda [A1] si que tienes un valor numerico (27 no es igual a "27"). Por tanto, se me ocurren tres soluciones:

1) Convertir los datos de Base!$E$1:$E$60000 en valores numericos:
- seleccionas toda la columna
- menu Datos>Texto en columnas...
- boton Finalizar

2) Adaptar tu formula al hecho de que Base!$E$1:$E$60000 contiene texto convirtiendo el valor de [A1] en texto.

=SUMAPRODUCTO((Base!$E$1:$E$60000=""&A1)*(Base!$AC$1:$AC$60000="A"))

3) Adaptar el valor de [A1] al hecho de que Base!$E$1:$E$60000 contiene texto anadiendo un apostrofe delante del numero para
convertirlo en texto.

p.ej. en la celda [A1] introduce: '27

Saludos,
KL


"Oscar </Ave_Fenix\>" wrote in message
news:
> Hola KL
>
> De hecho la formula que puse es un ejemplo, y meti la pata al colocar la
> referencia A1 entre comillas :P
>
> Pero en las formulas reales, lo cierto es que sucede ese cambio entre una y
> otra formula. A veces funciona buscando el valor "27" y cuando no quiere,
> pues opto por cambiarla a A1.
>
> Si me lo permites, tambien me tomo el atrevimiento de mandartelo.
>
> Oscar
> Saludos desde México
>
>
> "KL" escribió:
>
>> Hola Oscar,
>>
>> > =SUMAPRODUCTO((Base!$E$1:$E$60000="27")*(Base!$AC$1:$AC$60000="A"))
>> > =SUMAPRODUCTO((Base!$E$1:$E$60000="A1")*(Base!$AC$1:$AC$60000="A"))
>>
>> Me llama mucho la atencion el que uses las comillas casi indiscriminadamente en tu formula. Quizas aqui es donde tengas tu
>> problema:
>>
>> Base!$E$1:$E$60000="A1"
>> -> tiene poco sentido a no ser que se busque el valor "A1" y no la referencia a la celda [A1]
>>
>> Base!$E$1:$E$60000="27"
>> -> tiene poco sentido a no ser que se busque la cadena de texto "27" y no el valor 27
>>
>> Posiblemente la combinacion de corregir las formulas anteriores y entender que tipo de valor esta en la celda [A1] haria el
>> truco.
>>
>> > Con respecto a las 65535,
>> > tienes razon es mucho pero manejo bases de mas de 37000, la cual es variable.
>> > De todas formas te envio el archivo a tu correo, tomandome el atrevimiento
>> > para que lo veas igual y detectas otra cosa
>>
>> Podrias usar rangos dinamicos.
>>
>> 1) Si tienes Excel 2003 bastaria con seleccionar toda la tabla una vez, ir al menu Datos>Lista>Crear Lista... y ajustar tu
>> formula
>> al rango real. Ahora cuando anadas mas registros la formula cogera el rango correcto automaticamente.
>>
>> 2) Crea un nombre definido y usalo dentro de tu formula:
>>
>> a/ Suponiendo que...
>> - La columna [A] no puede tener celdas vacias intercaladas
>> - La columna [A] contiene solo cadenas de texto
>>
>> Prueba:
>> - menu Insertar>Nombre>Definir...
>> - nombre: rng1
>> - se refiere a...: =$E$1:INDICE($E:$E;COINCIDIR(REPETIR("z";255);$A:$A))
>> - boton Anadir
>> - nombre: rng2
>> - se refiere a...: =$AC$1:INDICE($AC:$AC;COINCIDIR(REPETIR("z";255);$A:$A))
>> - boton Anadir
>> - boton Aceptar
>>
>> b/ Suponiendo que...
>> - La columna [A] no puede tener celdas vacias intercaladas
>> - La columna [A] contiene solo valores numericos
>>
>> Prueba:
>> - menu Insertar>Nombre>Definir...
>> - nombre: rng1
>> - se refiere a...: =$E$1:INDICE($E:$E;COINCIDIR(1e307;$A:$A))
>> - boton Anadir
>> - nombre: rng2
>> - se refiere a...: =$AC$1:INDICE($AC:$AC;COINCIDIR(1e307;$A:$A))
>> - boton Anadir
>> - boton Aceptar
>>
>> c/ Suponiendo que...
>> - La columna [A] no puede tener celdas vacias intercaladas
>> - La columna [A] contiene todo tipo de valores
>>
>> Prueba:
>> - menu Insertar>Nombre>Definir...
>> - nombre: rng1
>> - se refiere a...: ÞSREF($E$1;;;CONTARA($A:$A))
>> - boton Anadir
>> - nombre: rng2
>> - se refiere a...: ÞSREF($AC$1;;;CONTARA($A:$A))
>> - boton Anadir
>> - boton Aceptar
>>
>> Una vez creados los nombres puedes usarlos en tu formula asi:
>>
>> =SUMAPRODUCTO((rng1¡)*(rng2="A"))
>>
>> d/ Otra cosa que a veces hago es la siguiente.
>> Suponiendo que...
>> - La columna [A] no puede tener celdas vacias intercaladas
>> - La fila [1] contiene encabezados
>>
>> Prueba:
>> - menu Insertar>Nombre>Definir...
>> - nombre: bd
>> - se refiere a...: ÞSREF($A$1;;;CONTARA($A:$A);CONTARA($1:$1))
>> - boton Anadir
>> - boton Aceptar
>>
>> =SUMAPRODUCTO((INDICE(bd;;5)¡)*(INDICE(bd;;29)="A"))
>>
>>
>> Hay varias soluciones mas...
>>
>> 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