Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

28
Construcción de un modelo para priorizar elementos y tomar decisiones Versión 0.0 Camilo Bernal * 12 de agosto de 2015 *

description

Se propone un modelo de ingeniería de valor a fin de facilitar la toma de decisiones y priorizar elementos mezclando criterios subjetivos y objetivos. Bien usada, puede ser una herramienta valiosa.

Transcript of Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Page 1: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Construcción de un modelo para priorizar elementosy tomar decisiones

Versión 0.0

Camilo Bernal∗

12 de agosto de 2015

Page 2: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Índice1. INTRODUCCIÓN 1

2. PRESENTACIÓN DEL MODELO 22.1. Elementos del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22.2. Construcción del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3. POSIBLES USOS DEL MODELO 33.1. Elegir el mejor producto entre varias opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.2. Seleccionar al candidato más apropiado para un cargo entre varios aspirantes después de realizar un

convocatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33.3. Elegir al ganador de una licitación pública entre varias empresas concursantes que cumplen todos los

requerimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43.4. Elegir una carrera universitaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4. EJEMPLOS DE APLICACIÓN 54.1. Comprar un celular adecuado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54.2. Elegir una carrera universitaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5. ¿QUÉ ES LIBREOFFICE? 11

6. ¿QUÉ ES GNU/LINUX? 12

7. DESCRIPCIÓN DE LA HERRAMIENTA PROPUESTA PARA APLICAR EL MODELO 137.1. Elaboración de la plantilla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137.2. Elaboración de las macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

8. CONCLUSIONES 15

A. Macros del modelo 17

I

Page 3: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

1. INTRODUCCIÓN

Frecuentemente nos encontramos ante la necesidad de elegir entre varias opciones y/o priorizar una serie de elementosde acuerdo a algún criterio. Ya sea para elegir una casa que vamos a comprar, un auto, seleccionar a un empleadopara un cargo, un nuevo celular,... siempre nos encontramos ante la dificultad que supone hacer una buena elecciónentre varios elementos disponibles.

En este documento se presenta una propuesta que consiste en un modelo que nos permitirá guiarnos en la toma dedecisiones y priorización de elementos de acuerdo a una serie de criterios que pueden mezclar elementos subjetivosy objetivos a fin de tomar una decisión final.

El modelo consiste en dar un valor numérico a cada criterio usado para tomar la decisión y los factores a considerarserán cada una de las alternativas que se tienen para elegir.

La herramienta propuesta aquí puede ser muy útil para las personas que necesitan elegir entre varias opciones y/opriorizar una serie de elementos de acuerdo a algunos criterios considerados importantes.

1

Page 4: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

2. PRESENTACIÓN DEL MODELO

2.1. Elementos del modelo

C: Conjunto de criterios usados para la toma de decisiones

F : Conjunto de factores a ser considerados según los criterios (C)

PO: Conjunto de ponderaciones para los criterios usados (C)

V : Conjunto de valoraciones (subjetivas u objetivas) dadas a cada factor (F ) según el criterio (C)

PU : Conjunto de puntajes obtenidos por cada factor (F ) de acuerdo a los criterios (C) y su respectivaponderación (P )

I: Índice que identifica los criterios

J : Índice que identifica los factores

2.2. Construcción del modelo

El puntaje (PU) para los diversos factores se obtiene usando la siguiente expresión:

PUj =∑

I

V′

ji ∗ POi i ∈ I, j ∈ J (1)

Donde:

PUj: Puntaje obtenido por el factor j

Vji′ : Valoración normalizada del factor j según el criterio i

POi: Ponderación dada al criterio i

Para normalizar la valoración de los factores, se divide la valoración de cada factor según un criterio entre la sumade las valoraciones de todos los factores según ese mismo criterio. Esto se puede expresar así:

V′

ji = Vji∑I Vji

i ∈ I, j ∈ J (2)

Donde:

Vji′ Valoración normalizada del factor j según el criterio i

Vji Valoración del factor j según el criterio i

Y con esto se concluye la formalización matemática del modelo. Aunque pueda parecer complejo para las personasajenas ajenas a las matemáticas y la ingeniería, la simplicidad resulta asombrosa cuando se traduce en ejemplosconcretos.

Para que el modelo tenga una auténtica posibilidad de aplicación, se ha decidido Construirlo en una hoja de cálculocon ayuda de macros. Se usó la hoja de cálculo llamada LibreOffice Calc V4.1.3.2 (Ver sección 5 para más informa-ción).

2

Page 5: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

3. POSIBLES USOS DEL MODELO

El modelo puede usarse tanto para elegir la mejor opción entre varias alternativas como para priorizar una serie deelementos.

3.1. Elegir el mejor producto entre varias opciones

Nuestro presupuesto es limitado y si vamos a comprar algún producto (coche, motocicleta, ropa, celular, viaje,...)frecuentemente encontraremos varias opciones que nos ofrece el mercado. El producto que queremos adquirir tieneunas características determinadas (precio, calidad, confiabilidad de la marca, tipo de pago,...) y nosotros tenemosuna determinada percepción acerca de él (gusto, necesidad, utilidad, símbolo de status,...). Se espera que después deanalizar las diversas posibilidades, finalmente tomamos la decisión de elegir el que consideramos el mejor productode todos.

El problema más común es que casi nunca estamos seguros de haber hecho la mejor elección, pues la publicidad,los vendedores, la tensión psicológica, entre otros, nos llevan a tomar decisiones impulsivas y finalmente adquirimosalgo que quizás no es lo que realmente estábamos buscando.

El modelo propuesto puede ayudar a tomar la decisión más acertada al considerar tanto los factores objetivos(características del producto) como los subjetivos (nuestras propias percepciones) y de esta manera realizar unajerarquización de las opciones disponibles para elegir la mejor opción.

3.2. Seleccionar al candidato más apropiado para un cargo entre varios aspirantesdespués de realizar un convocatoria

Las empresas de cualquier tamaño y sector necesitan personal para poder funcionar. Debido al desempleo, pre-carización laboral, sobrepoblación,... por un lado, y a la masificación de las Tecnologías de la información y lascomunicaciones, por otro, es común que ante una convocatoria para un empleo, se reciban cientos de currículumsde aspirantes al cargo. Los aspirantes tiene una serie de características (edad, formación académica, experiencia,logros,...) y las empresas buscan unos perfiles con unas características específicas (liderazgo, trabajo en equipo,trabajo bajo presión, proyección,...). Después de realizar un sondeo, se eligen a los candidatos que presentarán unaentrevista. Se espera que uno de los entrevistados será finalmente elegido para el cargo.

Las empresas enfrentan dos problemas al intentar elegir al mejor candidato: 1) ¿Qué candidatos han de ser elegidospara la entrevista? y 2) ¿Cuál de los candidatos entrevistados es realmente la mejor opción para cubrir el cargo?.En ocasiones las opciones son muy numerosas y el proceso de selección puede resultar abrumador, y siempre quedala sensación de haber dejado pasar algo.

Se puede usar el modelo propuesto en las dos fases de elección de candidatos. Para elegir a los candidatos quepresentarán entrevista se podrían usar las características de cada uno de los aspirantes. Una vez elegidos los aspirantesa ser entrevistados, se usarán los resultados de la entrevista para estimar el perfil de cada candidato según lasnecesidades de la empresa. Teniendo ya las características de los aspirantes y los resultados de las entrevistas,pueden usarse todos los criterios en conjunto para encontrar al mejor candidato.

3

Page 6: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

3.3. Elegir al ganador de una licitación pública entre varias empresas concursantes quecumplen todos los requerimientos

Con el fin de "disminuir" la corrupción en los procesos de contratación, las empresas públicas deben usar licitacionespara "mostrar" la transparencia en el proceso de decisión para adquirir productos y servicios.

El problema en muchos casos de licitación es que la normatividad, la burocratización y la corrupción solapada, hacenque la elección del mejor candidato para ganar la licitación sea un proceso engorroso e inherentemente ineficiente.

El modelo propuesto, adaptado a la normatividad correspondiente, puede convertirse en una herramienta valiosapara hacer una elección más objetiva y rápida, ya que al basarse en una lógica matemática (no política ni legal)contribuye a igualar las reglas de juego para todos.

3.4. Elegir una carrera universitaria

El aumento de instituciones de educación superior, el mayor número de créditos educativos, y la transformación delaparato productivo de los países, han hecho que cada vez más personas jóvenes opten por hacer una carrera univer-sitaria, con la "esperanza" de obtener mejores oportunidades de desarrollo personal y profesional. A la hora de elegiruna buena alternativa existen numerosas opciones de programas que tienen ciertas características (perfil profesional,pénsum, duración, costo, reputación de la universidad,...) y unas inclinaciones particulares del joven aspirante (perso-nalidad, gusto por determinadas áreas de conocimiento, presupuesto, desempeño en la educación previa,...). Ademásel mercado laboral también tiene características específicas para los egresados (salario de enganche, salario promedio,nivel de demanda, posibilidades de ascenso,...). Aunque esta debería ser una de las elecciones más importantes en lavida de alguien, frecuentemente se toman decisiones apresuradas y con poca o ninguna información.

El problema al elegir una carrera universitaria es que no se considera toda la información (subjetiva y objetiva)necesaria para elegir la mejor opción. Debido a que esta es una decisión que probablemente nos marcará para toda lavida, lo ideal sería elegir aquella carrera que además de darnos satisfacción personal, nos ofrezca posibilidades realesde éxito en el mundo laboral y que además tenga en cuenta nuestro desempeño previo en la formación académica(educación primaria y secundaria).

El modelo propuesto puede ser de gran ayuda a la hora de elegir una carrera universitaria, ya que nos permitiríacuestionarnos acerca de elementos tales como:

¿Qué me gusta?

¿Qué me ofrece una determinada universidad?

¿Cuáles son mis expectativas profesionales?

¿Qué opciones reales me ofrecería el mercado laboral?

¿Puedo permitirme una determinada carrera en cierta universidad?

4

Page 7: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

4. EJEMPLOS DE APLICACIÓN

El primer ejemplo mostrará la descripción del modelo paso a paso. Los demás ejemplos usarán la herramientapropuesta directamente para aplicar el modelo.

4.1. Comprar un celular adecuado

Al comprar un celular existen multitud de opciones (factores). El producto tiene unas características específicas(criterios) y yo como comprador tengo unas percepciones concretas sobre cada producto (criterios).

Este ejemplo es puramente ficticio y sólo tiene propósitos explicativos.

Hemos seleccionado 3 Celulares, y decidimos que compraremos uno. Los celulares con sus respectivas característicasse muestran en la tabla 1.

Cuadro 1: Características de celulares�

Celular Precio (US$) Resolución de cámara (MP) Marca Sistema operativoCelular 1 800 2,1 Apple iOSCelular 2 400 1,8 Samsung AndroidCelular 3 300 2,4 Hwawei Android

�Fuente: Elaboración propia

Además de las características del producto, yo tengo una opinión particular acerca de las características del producto.En la tabla 2 se muestra mi opinión.

Cuadro 2: Opinión personal sobre las opciones�

Celular Precio (US$) Resolución de cámara (MP) Marca Sistema operativoCelular 1 Muy caro Buena Excelente ExcelenteCelular 2 Precio medio Regular Buena BuenoCelular 3 Buen precio Excelente Regular Bueno

�Fuente: Elaboración propia

También pienso que tanto las características del producto como mi opinión personal tienen cierta importancia. Enla tabla 3 se muestra la importancia que doy a cada criterio.

Cuadro 3: Importancia concedida a cada criterio�

Criterio ImportanciaPrecio Muy importante

Resolución Nada importanteMarca Importante

Sistema operativo Poco importante�Fuente: Elaboración propia

5

Page 8: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Ahora que ya tenemos la información objetiva (características del producto) y la información subjetiva (mi opinión),es momento de usar el modelo para tomar una decisión.

Como el modelo se basa en números, es necesario reemplazar la información que no sea cuantitativa por valoresnuméricos de acuerdo a mi propia opinión. De las características del producto (Tabla 1) existen dos (precio y resolu-ción de cámara) que se expresan por medio de números, así que se tomarán estas dos. Las otras dos características(marca y sistema operativo) no son números, así que debo asignar un número a la opinión que tengo acerca de estascaracterísticas.

Los puntos asignados a la marca según mi opinión (Tabla 2) pueden ser de la siguiente manera:

Excelente = 3 puntos

Buena = 2 puntos

Regular = 1 punto

Los puntos asignados al sistema operativo según mi opinión (Tabla 2) pueden ser de la siguiente manera:

Excelente = 3 puntos

Bueno = 2 puntos

Con las transformaciones hechas anteriormente, ya podemos tener una tabla con las características del productodonde toda la información está en números (Tabla 4)

Cuadro 4: Características de celulares en forma cuantitativa�

Celular Precio (US$) Resolución de cámara (MP) Marca Sistema operativoCelular 1 800 2.1 3 3Celular 2 400 1.8 2 2Celular 3 300 2.4 1 2

�Fuente: Elaboración propia

Ahora sólo falta convertir en números la importancia concedida a cada criterio. Se pueden asignar puntos a laimportancia de la siguiente manera:

Nada importante = 0 puntos

Poco importante = 1 punto

Importante = 2 puntos

Muy importante = 3 puntos

Con esta clasificación la importancia concedida a cada criterio queda como se muestra en la tabla 5.

Cuadro 5: Importancia concedida a cada criterio en forma cuantitativa�

Criterio ImportanciaPrecio 3

Resolución 0Marca 2

Sistema operativo 1�Fuente: Elaboración propia

6

Page 9: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Ya tenemos toda la información del producto en forma de números, así que ahora procedemos a aplicar el modelo.

4.1.1. Elementos del modelo

C: Conjunto de criterios usados para la toma de decisiones

C = {Precio, Resolucion, Marca, Sistema operativo}

F : Conjunto de factores a ser considerados según los criterios (C)

F = {Celular 1, Celular 2, Celular 3}

PO: Conjunto de ponderaciones para los criterios usados (C)

(Es la importancia que le damos a cada criterio)

PO = {Nada importante, Poco importante, Importante, Muy importante}

(Es necesario expresarlo en forma de números)

PO = {0, 1, 2, 3}

V : Conjunto de valoraciones (subjetivas u objetivas) dadas a cada factor (F ) según el criterio (C)

(Es la información de la tabla 5)

V = {{800, 400, 300} , {2,1, 1,8, 2,4} , {3, 2, 1} , {3, 2, 2}}

PU : Conjunto de puntajes obtenidos por cada factor (F ) de acuerdo a los criterios (C) y su respectivaponderación (P )

(Se calcula más adelante)

I: Índice que identifica los criterios

I = {Precio (US$), Resolucion de camara (MP ), Marca, Sistema operativo}

J : Índice que identifica los factores

J = {Celular 1, Celular 2, Celular 3}

4.1.2. Construcción del modelo

Ahora que ya tenemos claridad sobre cómo identificar los elementos del modelo, procedemos a usar la herramientapropuesta en LibreOffice (Ver Anexo A y Sección 5) para realizar los cálculos. En la figura 1 se muestra la forma enque han de ingresarse los datos para nuestro ejemplo.

7

Page 10: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Figura 1: Ingreso de datos en la herramienta de LibreOffice�

�Fuente: Elaboración propia

Al ejecutar la macro llamada ’Calcular_Puntaje’, la herramienta de LibreOffice se ocupa de realizar todos loscálculos, ordenarlos de mayor a menor puntaje, asignarles un porcentaje del puntaje a cada factor e incluso unporcentaje acumulado. Los resultados pueden verse en la figura 2.

Figura 2: Resultados obtenidos con la herramienta de LibreOffice�

�Fuente: Elaboración propia

De acuerdo a los resultados obtenidos en la figura 2, la mejor opción de compra es el ’Celular 2’, seguido por’Celular 3’. La peor opción de compra es ’Celular 1’.

Nótese que la ponderación del precio tiene signo negativo. Esto es así porque se necesita determinar sin un mayorvalor es deseable o indeseable. Debido a que nadie consideraría un mayor precio como algo deseable en un producto,debe colocarse el signo negativo, así, cuanto mayor sea el precio, más puntaje restará al producto (Recuerde que elmodelo está basado en sumatorias)1.

1Determinar el signo para la ponderación del criterio es fácil: Si el criterio es deseable es positivo, si el criterio es indeseable, laponderación será negativa

8

Page 11: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Aunque la aplicación del modelo parece larga y compleja, usando la herramienta propuesta se pueden ingresar losdatos de este ejemplo en un minuto y realizar los cálculos en 0.7 segundos.

4.2. Elegir una carrera universitaria

Este ejemplo es puramente ficticio, algunas de las carreras podrían no existir en la universidad considerada.

Al elegir una carrera universitaria es necesario tomar en cuenta las características de la universidad (Prestigio,Costos, Distancia), las características de la carrera (Duración, Proyección laboral) y las percepciones propias (Gusto,Dificultad, Desempeño en la educación previa).

Supongamos que un joven desea elegir una carrera universitaria y tiene 6 opciones:

opción 1: Medicina en la Universidad de la Habana

opción 2: Derecho en la universidad Autónoma de México

opción 3: Ingeniería mecánica en la Universidad Nacional de Colombia

opción 4: Ciencia de materiales en la Universidad de Sao Paulo

opción 5: Derecho en la Universidad de Buenos Aires

opción 6: Ingeniería mecánica en la Universidad de Buenos Aires

Usando la herramienta propuesta (figura 3) puede otorgar una información de entrada que se verá como se muestraa continuación.

Figura 3: Información de entrada - Ejemplo 2�

�Fuente: Elaboración propia

Al calcular los puntajes respectivos se obtiene lo siguiente (figura 4).

9

Page 12: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Figura 4: Resultados - Ejemplo 2�

�Fuente: Elaboración propia

De acuerdo a los resultados, la mejor opción sería estudiar Ingeniería Mecánica en la Universidad Nacional deColombia, y la peor opción sería estudiar Medicina en la Universidad de La Habana.

10

Page 13: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

5. ¿QUÉ ES LIBREOFFICE?

LibreOffice es la mejor Suite Ofimática que el dinero no puede comprar.

Comparada con Microsoft Office, puede realizar el 95% de las tareas que hace esta, más un 100000000% de funcionesque sólo se pueden realizar con LibreOffice. La razón de esto es que LibreOffice es de código abierto, de manera quepuedes cambiar la herramienta como quieras y hasta donde quieras. El único límite es la imaginación. Si además usasLibreOffice junto con GNU/Linux, puedes convertir a LibreOffice en el Dios de todas las herramientas de oficina.

Concretamente, LibreOffice se describe como una suite de productividad moderna, fácil de usar y de código abierto,para procesar texto, hojas de cálculo, presentaciones y más. La utilidad de hojas de cálculo usada aquí se llamaLibreOffice Calc en la versión 4.1.3.2.

11

Page 14: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

6. ¿QUÉ ES GNU/LINUX?

GNU/Linux es el mejor sistema operativo que el dinero no puede comprar.

Comparado con Microsoft Windows, es más rápido, no tiene virus, es multitarea y multiusuario, no cobra por lalicencia, no cobra por actualizaciones, no roba tu información personal para enviarla a servidores remotos,... y más.

Comparado con Mac OS, es multitarea y multiusuario, no te deja en la ruina económica, no te dice qué tipo depersona eres por usarlo (tú decides quién eres, por ejemplo una persona auténtica),... y más, aunque se reconoce lasuperioridad de Mac OS sobre Microsoft Windows, ambos sistemas te cobran cifras astronómicas por darte muchomenos de lo que GNU/Linux te daría a precios ridículamente bajos (Ojo: no confundir valor con precio).

Concretamente, Linux es un sistema operativo: un conjunto de programas que le permiten interactuar con su orde-nador y ejecutar otros programas.

Un sistema operativo consiste en varios programas fundamentales que necesita el ordenador para poder comunicar yrecibir instrucciones de los usuarios; tales como leer y escribir datos en el disco duro, cintas, e impresoras; controlarel uso de la memoria; y ejecutar otros programas. La parte más importante de un sistema operativo es el núcleo. Enun sistema GNU/Linux, Linux es el núcleo. El resto del sistema consiste en otros programas, muchos de los cualesfueron escritos por o para el proyecto GNU.

12

Page 15: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

7. DESCRIPCIÓN DE LA HERRAMIENTA PROPUESTA PARAAPLICAR EL MODELO

La herramienta consiste en una serie de macros junto con una plantilla para la herramienta LibreOffice Calc2.

Se recomienda muy especialmente descargar e instalar LibreOffice en su ordenador3. Si no puede/quiere hacerlo,puede usar Microsoft Office Excel, pero debe tener los conocimientos necesarios para reajustar las macros, pues lacompatibilidad entre las dos herramientas NO es del 100%.

7.1. Elaboración de la plantilla.

En la figura 5 se muestra la plantilla usada.

Figura 5: Plantilla de la herramienta�

�Fuente: Elaboración propia

Si desea cambiar la plantilla puede hacerlo, pero asegúrese de usar las mismas celdas para escribir las etiquetas, puesde otro modo tendría que cambiar las macros para evitar inconsistencias.

7.2. Elaboración de las macros

Se recomienda crear un módulo con un nombre que identifique el código en la biblioteca estándar. Se sugiere usar’Ingenieria_valor’ (Recuerde leer el manual para entender lo que estoy diciendo). La ruta de las macros puede ser lasiguiente: Mis macros>Standard>Ingenieria_valor. Para ver las macros propuestas en la herramienta, consultelos anexos.

2Por favor, lea el manual de LibreOffice después de instalarlo3En google encuentra la información necesaria

13

Page 16: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Si desea agregar más código a las macros, se sugiere usar subrutinas y funciones en vez de programación estructurada,pues la depuración es menos penosa.

Las macros más importantes para operar con el modelo son las siguientes:

Empezar: Con esta macro se eliminan los valores ingresados y se genera un esquema para iniciar un nuevo caso.

Limpiar_Todo: Con esta macro se eliminan todos los valores ingresados.

Calcular_Puntaje: Cuando se han ingresado todos los parámetros, esta macro permite calcular el puntajepara cada factor.

Agregar_criterios: Permite agregar más criterios al análisis.

Quitar_criterios: Permite quitar criterios al análisis.

Agregar_factores: Permite agregar elementos para analizar.

Quitar_factores: Quita elementos que se están analizando.

Con estas siete macros se puede manejar todo el modelo. Las demás macros son auxiliares. Para facilitar las cosasse pueden agregar botones a la plantilla, agregar un menú a la barra de herramientas o asociar las macros acombinaciones de teclado. Se recomienda la segunda opción.

14

Page 17: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

8. CONCLUSIONES

Usando el modelo propuesto, es posible elegir el mejor elemento entre una lista de opciones de acuerdo a unamezcla de criterios objetivos y subjetivos, para llegar a una decisión satisfactoria.

Usando el modelo propuesto, se puede jerarquizar una serie de elementos según criterios subjetivos y objetivospara decidir a qué prestarle atención y optimizar así nuestro esfuerzo.

15

Page 18: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

Referencias

[1] Wikipedia: La enciclopedia libre. GNU/Linux. http://es.wikipedia.org/wiki/GNU/Linux?oldid=78087514. Fechade acceso: 11 nov 2014.

[2] Wikipedia: La enciclopedia libre. Software libre. http://es.wikipedia.org/wiki/Software_libre?oldid=78063707.Fecha de acceso: mié 12 nov 2014.

16

Page 19: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

A. Macros del modelo

A continuación se presentan todas las macros escritas para aplicar el modelo. El lenguaje es Basic, con algunaspeculiaridades mínimas. En esencia es el mismo lenguaje que usa Excel para sus macros.

REM ***** BASIC *****

Sub MainEnd Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Seleccionar (columna , fila)

rem seleccionar una celda por posiciónThisComponent . CurrentController .Select(CP(columna ,fila ))

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Function NCriterios

NCriterios = CP (1 ,5). Value

End Function

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Function NFactores

NFactores = CP (1 ,4). Value

End Function

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Function CP( columna as integer , fila as integer ) as object

’Obtiene una celda por posiciónDim Hoja as objectHoja = ThisComponent .Sheets (0)CP = Hoja. getCellByPosition (columna ,fila)

17

Page 20: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

End Function

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Function CN(rango as string)

’Obtiene una celda por nombreDim Hoja as objectHoja = ThisComponent .Sheets (0)CN = Hoja. getCellRangeByName (rango)

End Function

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Borrar( columna as integer , fila as integer )

’Borra una celda referenciada por posiciónCP(columna , fila ). String = ""

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub EliminarR (ci , fi , cf , ff)

’Elimina un rango , teniendo las referencias de inicio y fin por posiciónDim CellRangeAddress As New com.sun.star.table. CellRangeAddressHoja = ThisComponent .Sheets (0)CellRangeAddress .Sheet = 0CellRangeAddress . StartColumn = ciCellRangeAddress . StartRow = fiCellRangeAddress . EndColumn = cfCellRangeAddress .EndRow = ffHoja. removeRange ( CellRangeAddress , com.sun.star.sheet. CellDeleteMode .UP)

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub BorrarR (ci , fi , cf , ff)

’Borrar un rango dado por posicionFor columna = ci To cf

For fila = fi To ffBorrar(columna , fila)

18

Page 21: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

NextNext

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub ACO( columna as integer )

’Anchura de columna óptimaThisComponent .Sheets (0). Columns ( columna ). OptimalWidth = True

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub ACP( columna as integer )

’Anchura de columna predeterminadaThisComponent .Sheets (0). Columns ( columna ). Width = 4000

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Generar_factores

’Genera las etiquetas para los factoresFactor = 1For fila =11 to 10+ NFactores

CP(0, Fila ). String = "Factor #" + Factor + ":"CP(0, Fila ). CellBackColor = 10066431Factor = Factor + 1

Next

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Generar_criterios

’Genera las etiquetas para los criterios consideradosCriterio = 1For columna =1 to NCriterios

CP(Columna , 10). String = " Criterio #" + CriterioCP(Columna , 9). CellBackColor = 16750848

19

Page 22: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

CP(Columna , 10). CellBackColor = 10066431Criterio = Criterio + 1

Next

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Rellenar

’Pone valores predeterminados a la valoración de cada factorFor fila =11 To 10+ NFactores

For columna =1 To NCriteriosCP(Columna , Fila ). Value = 1

NextNextFor columna =1 To NCriterios

CP(columna ,9). Value = 1Next

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Calcular_Puntaje

rem Permite calcular los puntajes’Poner etiquetas de totalesCP(0, 11 + NFactores ). String = "TOTAL - FACTOR"’Calcular total de factoresFor columna = 1 To NCriterios

TotalC = 0.00For fila = 11 To 10 + NFactores

TotalC = TotalC + CP(columna , fila ). ValueNextCP(columna , 11 + NFactores ). Value = TotalC

Next’Calcular puntajesFor fila = 11 To 10 + NFactores

PP = 0.00For columna = 1 To NCriterios

Ponderacion = CP(columna , 9). ValueDenominador = CP(columna , 11 + NFactores ). ValueIf Denominador > 0 Then

PP = PP + CP(columna , fila ). Value / Denominador * PonderacionEnd If

20

Page 23: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

NextIf PP > 0 Then

CP( NCriterios + 1, fila ). Value = PPElse

CP( NCriterios + 1, fila ). Value = 0End If

Next’Calcular porcentajesPTot = 0.0For fila = 11 To 10 + NFactores

PTot = PTot + CP( NCriterios + 1, fila ). ValueNextFor fila = 11 To 10 + NFactores

If PTot > 0 ThenCP( NCriterios +2, fila ). Value = CP( NCriterios +1, fila ). Value / PTot * 100.0

ElseCP( NCriterios + 2, fila ). Value = CP( NCriterios + 1, fila ). Value * 100.0

End IfNext’Calcular porcentajes acumuladosPAcum = 0.0For fila = 11 To 10 + NFactores

PACum = PAcum + CP( NCriterios + 2, fila ). ValueCP( NCriterios + 3, fila ). Value = PAcum

Nextrem poner etiquetasfila = 10CP( NCriterios +1, fila ). String = " Puntaje "CP( NCriterios +2, fila ). String = " %"CP( NCriterios +3, fila ). String = " % Acumulado "’Cambiar el color de fondoCP( NCriterios +1, fila -1). CellBackColor = 16750848CP( NCriterios +2, fila -1). CellBackColor = 16750848CP( NCriterios +3, fila -1). CellBackColor = 16750848CP( NCriterios +1, fila ). CellBackColor = 10066431CP( NCriterios +2, fila ). CellBackColor = 10066431CP( NCriterios +3, fila ). CellBackColor = 10066431CP(0, fila + NFactores + 1). CellBackColor = 10066431rem Ordenar los datos por puntaje de mayor a menorOrdenarrem Calcular % AcumuladoPorcentaje = CP( NCriterios +2, 11). ValueCP( NCriterios +3, 11). Value = PorcentajeFor fila = 11 To 9 + NFactores

Vlr_anterior = CP( NCriterios +3, fila ). ValuePorcentaje = CP( NCriterios +2, fila +1). Value

21

Page 24: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

CP( NCriterios +3, fila +1). Value = Vlr_anterior + PorcentajeNextrem Optimizar anchura de columnasFor columna = 1 To NCriterios + 3

ACO( columna )NextPoner_encabezadosResaltar_puntajeSeleccionar (1 ,4)

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Agregar_criterios

’Sirve para agregar más criterios de análisisrem Borar etiquetas de Puntaje y PorcentajesFor columna = NCriterios + 1 To NCriterios + 3

Borrar(columna , 10)Nextrem Borrar Puntaje y PorcentajesFor fila = 11 To 10 + NFactores

For columna = NCriterios + 1 To NCriterios + 3Borrar(columna ,fila)

NextNextNCAgregar = int( InputBox (" Ingrese # criterios a agregar ", " Agregar criterios ", 1))rem limitar el número de criterios a agregarIf NCAgregar > 5 Then

NCAgregar = 5End Ifrem Poner etiquetas y ponderación de nuevos criteriosNuevo_criterio = NCriterios + 1For columna = NCriterios + 1 To NCriterios + NCAgregar

CP(columna ,10). String = " Criterio #" + Nuevo_criterioCP(columna ,10). CellBackColor = 10066431CP(columna ,9). Value = int (1)CP(columna ,9). CellBackColor = 16750848Nuevo_criterio = Nuevo_criterio + 1

Nextrem Rellenar Nuevo criterioFor columna = NCriterios + 1 To NCriterios + NCAgregar

For fila = 11 To 10 + NFactoresCP(columna ,fila ). Value = 1

Next

22

Page 25: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

rem Actualizar Número de criteriosCP (1 ,5). Value = NCriterios + NCAgregar

Next

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Quitar_criterios

’Permite quitar criterios de análisisNCQuitar = int( InputBox (" Cuántos Criterios Desea quitar ?", "Quitar criterios ", 1))If NCQuitar >= NCriterios Then

NCQuitar = NCriterios -1End Ifrem Borrar etiquetas de puntaje y porcentajesfila = 10Borrar( NCriterios +1, fila)Borrar( NCriterios +2, fila)Borrar( NCriterios +3, fila)rem Quitar encabezado de criterios eliminadosFor Columna = NCriterios To NCriterios - NCQuitar +2 Step -1

CP(Columna , fila ). String = ""Nextrem Cambiar número de criteriosCP (1 ,5). Value = NCriterios - NCQuitarrem Quitar relleno de columnasFor Columna = NCriterios +4 To NCriterios - NCQuitar +2 Step -1

For Fila = 9 To 11+ NFactoresBorrar(Columna , Fila)

NextNext

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Agregar_factores

’Da la posibilidad de agregar más elementos para analizarNFAgregar = int( InputBox (" Cuántos Factores Desea agregar ?", " Agregar factores ", 1))rem limitar el número de factores a agregarIf NFAgregar > 5 Then

NFAgregar = 5End Ifrem agregar etiqueta

23

Page 26: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

NFactor = NFactores + 1For fila = 11 + NFactores To 10 + NFactores + NFAgregar

CP(0, fila ). String = "Factor #" + NFactor + ":"CP(0, fila ). CellBackColor = 10066431NFactor = NFactor + 1

Nextrem agregar rellenoFor fila = 11 + NFactores To 10 + NFactores + NFAgregar

For columna = 1 To NCriteriosCP(columna ,fila ). Value = 1

NextNextrem modificar el número de factoresCP (1 ,4). Value = NFactores + NFAgregar

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Quitar_factores

’Quita elementosNFQuitar = int( InputBox (" Cuántos Factores Desea quitar ?", "Quitar factores ", 1))rem Limitar el número de factores a quitarIf NFQuitar >= NFactores Then

NFQuitar = NFactores - 1End Ifrem Borrar la fila correspondienteFor fila = 11 + NFactores To 10 + NFactores - NFQuitar + 1 Step -1

For columna = 0 To NCriterios + 3Borrar(columna ,fila)

NextNextrem modificar el número de factoresCP (1 ,4). Value = NFactores - NFQuitar

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Limpiar_Todo

’Limpia toda la plantillaEliminarR (1 ,9 ,101 ,109)EliminarR (0 ,11 ,0 ,111)’Devolver un ancho predeterminado a las columnas

24

Page 27: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

For Columna = 1 To 21ACP( Columna )

Next

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Sub Empezar

’Genera el esquema para empezar a introducir valoresLimpiar_TodoGenerar_factoresGenerar_criteriosRellenarrem Poner encabezadosPoner_encabezados

End Sub

rem *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

sub Ordenar

’Usa el Dispatcher de OpenOffice para ordenar los datos por puntajerem ----------------------------------------------------------------------rem define variablesdim document as objectdim dispatcher as objectrem ----------------------------------------------------------------------rem get access to the documentdocument = ThisComponent . CurrentController .Framedispatcher = createUnoService (" com.sun.star.frame. DispatchHelper ")rem Agregar más cosasNFactores = CP (1 ,4). ValueNCriterios = CP (1 ,5). ValueFactor_ordenamiento = NCriterios + 2rem ----------------------------------------------------------------------dim args1 (0) as new com.sun.star.beans. PropertyValueargs1 (0). Name = " ToPoint "args1 (0). Value = "$A$11"dispatcher . executeDispatch (document , ". uno: GoToCell ", "", 0, args1 ())rem ----------------------------------------------------------------------dim args2 (0) as new com.sun.star.beans. PropertyValueargs2 (0). Name = "By"args2 (0). Value = 1

25

Page 28: Construcción de Un Modelo Para Priorizar Elementos y Tomar Decisiones

dispatcher . executeDispatch (document , ". uno: GoRightToEndOfDataSel ", "", 0, args2 ())rem ----------------------------------------------------------------------dim args3 (0) as new com.sun.star.beans. PropertyValueargs3 (0). Name = "By"args3 (0). Value = 1dispatcher . executeDispatch (document , ". uno: GoDownToEndOfDataSel ", "", 0, args3 ())rem ----------------------------------------------------------------------dim args4 (7) as new com.sun.star.beans. PropertyValueargs4 (0). Name = "ByRows"args4 (0). Value = trueargs4 (1). Name = " HasHeader "args4 (1). Value = trueargs4 (2). Name = " CaseSensitive "args4 (2). Value = falseargs4 (3). Name = " NaturalSort "args4 (3). Value = falseargs4 (4). Name = " IncludeAttribs "args4 (4). Value = trueargs4 (5). Name = " UserDefIndex "args4 (5). Value = 0args4 (6). Name = "Col1"args4 (6). Value = Factor_ordenamientoargs4 (7). Name = " Ascending1 "args4 (7). Value = falsedispatcher . executeDispatch (document , ". uno: DataSort ", "", 0, args4 ())

end sub

26