• 👏 Bienvenido a nuestra comunidad Excel

    ¿Todavía no estás registrado? 😲

    Registrate gratis aquí y podrás:

    💪 Hacer preguntas a los expertos
    ⬇️ Descargar ejemplos y plantillas
    🏅 
    Acceder a contenidos premium

Fórmula o para reasignación de Fondos

pearljam

Member
Buenas como están? espero que bien.

Me gustaría compartir con vosotros un problema que tengo para calcular una re-asignación de activos para ver si me pueden ayudar.

Tengo una cartera de Fondos de inversión y me gustaría, cuando hago los rebalanceos, hacer una hoja que lo calcule todo de manera rápida porque hacerlo mano a mano se hace muy tedioso.

Mi intención es hacer un listado con la cartera actual y otro listado con la cartera objetivo. Una vez tengo esos listados, que automáticamente me diga que cantidad del fondo de origen tiene que ir al fondo de destino y si sobra importe del fondo de origen que se asigne al siguiente fondo de destino y así hasta completar todas las operaciones de traspaso.

El tema es que no se que tipo de formula de excel usar para hacer esto........ o si debo de utilizar macros..............

Les adjunto una hoja de ejemplo con importes redondeados para que no sea complicado de entender.


Cualquier duda me dicen, espero me puedan ayudar.


Gracias de antemano!
 

Adjuntos

pearljam

Member
En este caso, está resuelto con una macro.
Una pasada @hc3115 ! hace justo lo que quería, lo único es que no se si me puedes explicar como va la macro, es decir, si quiero asignar un rango mayor para los fondos de origen o de destino, que tengo que tocar en la macro para poder hacerlo?. La tabla dinámica igual, que tengo que cambiar en la macro para poder ponerla en otra celda distinta o cambiarla la ubicación?
 

pearljam

Member
En este caso, está resuelto con una macro.
Buenas de nuevo @hc3115

Acabo de ver un fallo que me da error. Si le metes importes de total de la cartera de más de 1.110.000€ me da error porque según he visto en la pestaña oculta, si llegas hasta el final de las celdas da error. Yo lo necesitaría para todo tipo de importes, tanto importes pequeños como importes grandes.

No se si es viable hacerlo para importes mayores......

muchas gracias por vuestra ayuda de antemano!
 

pearljam

Member
Puede resultar con un pequeño apaño.
Perfecto @hc3115, ahora podría hacer carteras de hasta mil millones sin que de error, más que suficiente....... jejejejj He visto en el código que has metido una escala de 1, 10, 100, y 1000.

Por otro lado, ¿no se si podrías explicarme en que parte del código podría yo cambiar la ubicación del rango de "fondos cartera actual", "fondos cartera objetivo" y si por ejemplo quiero cambiar de ubicación la tabla dinámica resultante?.

Muchas gracias de antemano.
 

hc3115

Well-known member
· " en que parte del código podría yo cambiar " : si te refieres a la hoja "ho", pues tendrías que modificar el código donde pone ho.cells(fila, colu)
· " y si por ejemplo quiero cambiar de ubicación la tabla dinámica resultante " :
· por las bravas: seleccionas celdas que incluyan a la tabla y cortar y pegar
· por menú, situándote en cualquier celda de la propia tabla: Analizar - Acciones - Seleccionar - Toda la tabla dinámica y cortas y pegas
· " como se consigue poner una columna al lado de la otra en la tabla dinámica " : seguro que es la pregunta más fácil que alguien haya hecho, pero me he liado y no sé responderte; de hecho, ya no estoy seguro a qué llamas tabla dinámica.
 

pearljam

Member
· " en que parte del código podría yo cambiar " : si te refieres a la hoja "ho", pues tendrías que modificar el código donde pone ho.cells(fila, colu)
· " y si por ejemplo quiero cambiar de ubicación la tabla dinámica resultante " :
· por las bravas: seleccionas celdas que incluyan a la tabla y cortar y pegar
· por menú, situándote en cualquier celda de la propia tabla: Analizar - Acciones - Seleccionar - Toda la tabla dinámica y cortas y pegas
· " como se consigue poner una columna al lado de la otra en la tabla dinámica " : seguro que es la pregunta más fácil que alguien haya hecho, pero me he liado y no sé responderte; de hecho, ya no estoy seguro a qué llamas tabla dinámica.
Disculpa por que a lo mejor me he explicado como un libro cerrado..... 😅

Me refiero a esta tabla dinámica que sale resultante de hacer la macro donde colocas el listado de operaciones.

1593505910179.png


Colocas tres columnas, por un lado el Fondo de Origen, por otro lado el Fondo de Destino y por otro lado el total. Yo no consigo que me quede así colocando los campos como tu los tienes.

A mi me queda así

1593506165563.png

Pero me gusta más como lo haces tu, ¿como lo haces?

Espero ahora haberme explicado mejor, muchas gracias de antemano!
 

Cacho R

Well-known member
Hola! pearljam (y HM)
En el modelo que adjunto tienes 3 tablas Excel (ListObjects): Tabla1, Tabla2 y Tabla3.
  • Las puedes "mover" hacia donde quieras, y
  • Las puedes agrandar o achicar según necesidades.
Saludos, Cacho R.
 

Adjuntos

pearljam

Member
Hola! pearljam (y HM)
En el modelo que adjunto tienes 3 tablas Excel (ListObjects): Tabla1, Tabla2 y Tabla3.
  • Las puedes "mover" hacia donde quieras, y
  • Las puedes agrandar o achicar según necesidades.
Saludos, Cacho R.
Perfecto @Cacho R , gran solución también. ¿No se si el código de esta macro que me pusiste se puede llevar a cualquier hoja de excel?
 

Cacho R

Well-known member
¿No se si el código de esta macro que me pusiste se puede llevar a cualquier hoja de excel?
No sé a que te refieres puesto que el código YA está en el módulo de la hoja.

Y si te refieres a aplicarlo en distintas hojas donde tienes otros "pares de tablas" similares, entonces debo recordarte que en los libros Excel los nombres de las tablas son únicos. Por lo tanto habría que adecuar dichos nombres en el código de cada hoja.

¿Que si un único código puede aplicarse en diversas hojas?... En principio la respuesta es sí, pero por "aquello" de los distintos nombres de las tablas Excel (ListObjects) habría que "ajustar" algunas tuercas para volver al código paramétrico: ¿Me explico?...
 

pearljam

Member
No sé a que te refieres puesto que el código YA está en el módulo de la hoja.

Y si te refieres a aplicarlo en distintas hojas donde tienes otros "pares de tablas" similares, entonces debo recordarte que en los libros Excel los nombres de las tablas son únicos. Por lo tanto habría que adecuar dichos nombres en el código de cada hoja.

¿Que si un único código puede aplicarse en diversas hojas?... En principio la respuesta es sí, pero por "aquello" de los distintos nombres de las tablas Excel (ListObjects) habría que "ajustar" algunas tuercas para volver al código paramétrico: ¿Me explico?...
Perdón, me explique mal. Me refiero a que si ese código me lo puedo yo llevar a cualquier otro libro de excel para poder implementarlo y que no me tire ningún error.
 
Arriba