SUSCRÍBASE A NUESTRO BLOG
SOBRE APESOFT

ApeSoft es una compañía de soluciones de Gestión del Rendimiento Empresario: Gamification, Reporting, Dashboards, Planificación Presupuestaria y Balanced Scorecard, fundada en 1994, con sede central en España y oficinas en Estados Unidos.

Más información: Web ApeSoft

jueves
may172007

Mantener el formato de una tabla dinámica una vez se refresca

Las tablas dinámicas tienen la capacidad de permitir analizar grandes cantidades de datos. Una vez que la tabla dinámica muestra los valores que se necesitan, se puede aplicar un formato a la tabla dinámica para hacer los datos más presentables. Por defecto, cuando se actualizan los datos en los que se basa la tabla dinámica y se refresca, todos los formatos definidos se pierden.

Para conseguir que el formato de la tabla dinámica se mantenga los pasos son los siguientes.

1. Dar el formato deseado a la tabla dinámica.

2. Acceder a las opciones de la tabla, seleccionando la tabla y pulsando el botón secundario del mouse sobre ella. Seleccionar la opción Opciones de tabla.

3. En el apartado Opciones de formato, marcar el check Mantener formato.

4. Aceptar y probar el refresco de la tabla dinámica para verificar que ahora el formato se mantiene. 

viernes
abr272007

Apesoft presenta el caso de éxito de Codorniu en un libro que publicará en breve Esade

Apesoft ha colaborado recientemente en un libro que publicará en breve la prestigiosa escuela de negocios Esade, en el cual se presentarán distintos casos de éxito del mundo del Business Intelligence. Por su parte, Apesoft ha aportado el caso de éxito de Codorníu, que apostó por la solución DataCycle Reporting para optimizar los procesos de reporting del área de finanzas.

En el caso publicado se explica de forma detallada la implantación existosa de la solución DataCycle Reporting en el departamento financiero de Codorníu, profundizando en la problemática con la que se encontraban antes de implementarla, las motivaciones que les llevaron a decidirse por la misma y los numerosos beneficios que les está aportando.

viernes
abr272007

Opciones para definir responsables de objetivos en el Cuadro de Mando Integral

El Cuadro de Mando Integral persigue facilitar la ejecución de la estrategia de la compañía o de una área. Pero la ejecución necesita definir claramente qué se va hacer y quién lo va a hacer, lo que conlleva definir responsabilidades y responsables.

Vamos a comentar brevemente las opciones que tenemos a la hora de definir responsables dentro de un Cuadro de Mando. Podemos hacerlo, al menos, para dos grandes elementos:

1) Responsables de los indicadores
2) Responsables de los objetivos estratégicos

Los indicadores tienen a su vez dos grandes tipos de responsables: los responsables de la fiabilidad de la información, generalmente: IT, Finanzas o Control de Gestión; y los responsables de mejorar el indicador a nivel de negocio, es decir quién tiene relacionado su cargo y responsabilidades con lo que mide el indicador, y por lo tanto se le pueden pedir explicaciones.

Supongamos por caso el indicador "ventas de clientes A", el responsable de la fiabilidad del dato podría ser IT y el responsable de negocio del indicador el Director Comercial. En cambio el indicador "% Numero de visitas respecto al plan", podría tener al Director Comercial como responsable en ambos casos, puesto que la fiabilidad del dato depende de la introducción de visitas en un hipotético CRM que debe hacer la fuerza de ventas que de él depende. Es relativamente fácil encontrar un sólo responsable por indicador, pero cuando no lo sea, pensar en quién contribuye más al éxito de este indicador nos puede ayudar a encontrarlo.

Pero más importante que los responsables de los indicadores es definir los responsables de los objetivos estratégicos. Al fin y al cabo queremos conseguir objetivos estratégicos, no simplemente indicadores. Como un objetivo estratégico puede ser medido por varios indicadores a la vez (a veces es imprescindible que así sea), podemos tener distintos responsables de indicadores y por tanto se plantea el dilema de ¿cuál escogeríamos como responsable del objetivo estratégico?

Por ejemplo, el objetivo "Mantener la totalidad de clientes A", podría medirse con dos indicadores: "% clientes A activos" que debe ser el 100%, y con "% de quejas de clientes A no resueltas" como un indicador inductor. El % de clientes activos puede ser responsabilidad Comercial, pero el % de quejas de clientes A no resueltas podría serlo de Atención al Cliente. En estos casos hay que valorar:
1) La conveniencia de tener, siempre que podamos, un único indicador nos inclinaría a poner el Director Comercial como responsable, y así podría ser si valoramos a éste como último responsable y queremos que sea él que se preocupe de ello.
2) La conveniencia de implicar a todos los actores, haciendo a ambos: Director Comercial y Responsable Atención Cliente de conseguir el objetivo, de modo que en las explicaciones que se deban dar, mensualmente, sobre cómo va progresando ese objetivo, tendíamos a ambas personas presentando su visión y acciones correctoras, a tenor del valor de sus respectivos indicadores.

Por lo tanto no hay una regla fija y depende de los fines perseguidos. Si que existe, como en otros muchos casos, una serie de consideraciones que nos pueden ayudar a decidir cuál es la mejor estrategia de responsabilización de los objetivos estratégicos.

lunes
abr022007

SQL para obtener el nombre del mes o el nombre del día de la semana dada una fecha

Para obtener el nombre del mes dada una fecha en SQL Server se utiliza la función DATENAME con el primer parámetro month. Un ejemplo de esta función es:

DATENAME(month, '2/4/07') => Resultado: Abril

Si nos interesa saber el nombre del día de la semana, el primer parámetro ha de contener weekday, de manera que partiendo del ejemplo anterior quedaría:

DATENAME(weekday, '2/4/07') => Resultado: Lunes
 

viernes
mar302007

Comparar 2 listas con Formato Condicional

En este truco mostramos cómo resaltar las diferencias entre dos listas. En la lista 1 tenemos una serie de elementos que no se encuentran el la lista 2, y, viceversa. Como vemos en el ejemplo, los valores que sólo se encuentran en una de las dos listas se han resaltado, ¿cómo? 

COMPARAR_LISTAS.JPG1.- Definimos 2 rangos (Menú Insertar-->Nombre--> Definir): lista1 ($A$2:$B$6) y lista2($D$2:$E$6)

2.- Empezar seleccionando el rango lista1, e ir al menú Formato --> Formato Condicional.

 

 

 

Escoger de la lista desplegable: Formula y escribir:

COMPARAR_LISTAS2.JPG

 

De esta forma el rango lista1 se compara con el rango lista2, y, aquellos elementos que no se encuentran los resalta en amarillo!!

 

 

 

Hacer lo mismo para la otra lista, informando la fórmula:

=CONTAR.SI(LISTA1;D2)=0

viernes
mar302007

Añadir una función personalizada que devuelva el trimestre

Excel se puede enriquecer con fórmulas personalizadas, como por ejemplo, la fórmula trimestre. Para ello, abriremos VBE  (Visual Basic para Excel) con Alt+F11, y, seleccionaremos el menú Insertar--> Módulo. Escribir las siguientes líneas de código:

Function Trimestre(fecha_entrada)
Trimestre = DatePart("q", fecha_entrada)
End Function

Cerrar el editor de VBE.

Comprobar que funciona como el siguiente ejemplo:

 formula_trimestre.JPG

viernes
mar302007

Nº de días de un mes determinado

En Excel no encontramos la función que nos indica cuántos días tiene un determinado mes, pero en este truco mostramos la fórmula para resolverlo:

La celda C3 muestra la fórmula que contiene la celda B3:

num_dias_mes.JPG

 

viernes
mar022007

Definir un Texto plano como origen de datos de nuestro informe

Cuando el origen de datos es un fichero TXT hay una pequeña diferencia en la definición del perfil de la base de datos.


1. En el perfil de base de datos no se especifica un fichero, sinó un directorio y automáticamente leerá el fichero TXT que se encuentre en él. El perfil ha de tener la siguiente configuración:


Tipo de sistema: General
Tipo de conexión: Text
En opciones avanzadas, en el apartado Parámetros de conexión la Tecnología ha de ser: Jet 4.0 (Dao 3.6)

2. Si se desea generar un fichero .txt a partir de un fichero Excel, se aconseja hacerlo de la siguiente manera:
    - Abrir el fichero excel
    - Pulsar la opción Guardar Como y seleccionar en Guardar como tipo => Texto (delimitado por tabulaciones)(*.txt)


3. Una vez generado el TXT hay que tener en cuenta una cosa. Cuando se trabaja con ficheros txt estos trabajan con un fichero denominado schema.ini que es el que le proporciona toda la información necesaria a las aplicaciones que quieran acceder a él. Uno de los datos, es el separador que utiliza el fichero txt para separar las columnas. En nuestro caso el separador es el tabulador pero no siempre puede ser así, a veces ";"....


4. Este fichero schema.ini ha de estar ubicado en el mismo directorio que el fichero txt, ya que cada txt tiene asociado un schema.ini si su formato es diferente.


5. Para configurar el fichero schema.ini automáticamente la forma más sencilla es a través de la definición de un DSN ya que automáticamente lo configura él. Para ello:
    - Acceder a Inicio - Panel de control - Herramientas Administrativas - Origenes de datos (ODBC) - Pestaña DSN de usuario -Agregar
    - Seleccionar el driver da Microsoft para arquivos texto (*.txt,*.csv)
    - Una vez aquí, desmarcar el check Usar directorio actual y pulsar el botón Seleccionar directorio... y buscar el directorio correspondiente.
    - Pulsar el botón Definir formato y en Tablas  aparecerán todos los ficheros del directorio, seleccionar el correspondiente. A continuación seleccionar en Formato el valor Tabuladores (el resto de campos no es necesario informarlos). Pulsar botón Aceptar. Si accedemos al directorio donde está el txt, automáticamente se habrá generado el fichero schema.ini.
    - Salir sin grabar del DSN ya que sólo nos interesaba configurar el fichero schema.ini


6. Si se edita el perfil de base de datos y se hace un test de conexión, se conectará perfectamente y a continuación ya se puede importar la tabla. Se creará una entidad, donde las columnas son los campos.

Para crear una consulta, son idénticos los pasos a si el origen es un Excel, SQL Server, Oracle,...

viernes
mar022007

Definir en Datacycle Reporting un fichero Excel como origen de datos de un informe

1. El primer paso para conseguir que sea un Excel el origen de los datos a insertar en nuestro informe siempre es definir un perfil de base de datos nuevo que ataque a nuestro fichero.


Dentro de este perfil, habrá que definirlo de la siguiente manera:
Tipo de sistema: General
Tipo de conexión: Excel
Fichero: Ruta con el fichero Excel

2. Una vez guardado el perfil, el siguiente paso es Importar las tablas del catálogo. Para hacer esto, dentro del perfil, hay un botón en la barra superior, el segundo empezando por la izquierda que tiene un dibujo con un cilindro amarillo con una flecha. Al pulsarlo aparece el asistente que permite detectar como tablas las diferentes hojas que hay en el Excel origen. Hay que elegir las hojas donde está la información que se desea extraer desde Datacycle. Cada columna de la hoja la detectará como campos. Una vez seleccionadas las tablas pulsar el botón Siguiente y se iniciará la importación.

Datacycle nunca importa el contenido de las tablas, sólo la definición.


3. Al finalizar el asistente y cerrar el perfil de base de datos, en el árbol de la izquierda, al desplegar la base de datos, hay una carpeta que pone Entidades y dentro de ella aparecen las entidades(hojas) que se han importado previamente de excel. Si se edita una de ellas se podrá comprobar que cada columna corresponde a un campo.


4. Para definir la consulta que ataque nuestro Excel, hay que ir al apartado Todas las consultas- botón derecho -Nueva consulta. Cuando aparece la ventana para seleccionar base de datos, seleccionar la de Excel.


5. Para diseñar la consulta, seleccionar la opción del lateral que pone  Editar consulta con el asistente. Lo primero que aparece es una ventana con las entidades disponibles. Si se selecciona 1, por ejemplo, y se acepta la ventana, aparece otra ventana para asignarle un alias a la entidad. Esto es por si el nombre de la entidad no es muy representativo. En esta pantalla se permite dar un nombre a la entidad y elegir el operador del Alias. En excel, el operador es el 'AS' y ya aparece seleccionado por defecto. Pulsar Aceptar. Seleccionar los campos que se quiere que devuelva la consulta.

6. Por último, en nuestro proceso de generación de informes, insertar una tarea de tipo Insertar datos y seleccionar la consulta anteriormente creada para que se inserten los datos de nuestro Excel origne en este nuevo informe.

viernes
mar022007

Usar información de un Excel para renombrar un conjunto de directorios a través de Datacycle

La versatilidad de la tarea de ejecución de scripts de un proceso de Datacycle Reporting permite realizar tareas como la de renombrar un conjunto de directorios en base a unos nombres especificados en una hoja de un libro Excel.

A continuación se muestra un ejemplo programado en Visual Basic Script:

 1. Paso 1

Definir en un libro Excel llamado test.xls en la primera hora 2 columnas. La primera columna contiene una lista de directorios existentes con los nombres antiguos y la segunda columna contiene los nuevos nombres que se asignarán a cada directorio.

foldernames.jpg

 

 

 

 

 

 

 

 

 

 

 

 

2. Paso 2 

Script que ejecutará la tarea de renombrar los subdirectorios de la carpeta C:\Scripts de la máquina donde se ejecuta Datacycle partiendo de la información del fichero c:\scripts\test.xls

Sub RenombrarCarpetas
    dim strComputer,objWMIService,objExcel,objWorkbook,strOldFolderName
    dim strNewFolderName,errResults,i

    strComputer = "."

    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\Test.xls")
    objExcel.Visible = FALSE
    i = 1

    Do Until objExcel.Cells(i, 1).Value = ""
            strOldFolderName = objExcel.Cells(i, 1).Value
           strNewFolderName = objExcel.Cells(i, 2).Value
            strOldFolderName = Replace(strOldFolderName, "\", "\\")

            Set colFolders = objWMIService.ExecQuery _
                ("Select * from Win32_Directory where Name = '" & strOldFolderName & "'")

            For Each objFolder in colFolders
                errResults = objFolder.Rename(strNewFolderName)
            Next

            i = i + 1
    Loop

End Sub