DISEÑO DE FUNCIONES DE HOJA DE CÁLCULO PARA TRABAJAR CON TABLAS DE DATOS
Campo de la Invención La presente invención se refiere generalmente al campo de aplicaciones de hojas de cálculo. Más particularmente, la presente invención se refiere a la reorganización de datos en una hoja de cálculo. Antecedentes de la Invención Para sobrevivir en la era de la información, los negocios y organizaciones requieren información útil acerca de sus organizaciones, mercados y operaciones. La información útil para los negocios generalmente se encuentra en una colección condensada de datos que es fácil de entender y fácil de absorber. Para crear información útil, los negocios y las organizaciones generalmente adquieren colecciones grandes de datos que vienen de partes numerosas y dispersas y luego condensan y organizan los datos en formas y formatos más útiles. Los negocios y las organizaciones generalmente dependen de paquetes de software para condensar, manipular o formular los datos en información útil. Los paquetes de software hacen posible y eficiente la manipulación de colecciones grandes de datos. Uno de los paquetes de software más comunes utilizados para calcular más información útil de las colecciones de datos es la aplicación de hoja de cálculo, tal como la aplicación de hoja de cálculo Microsoft® Excel, ofrecida por Microsoft® Corporation. Algunas aplicaciones de hojas de cálculo permiten alguna manipulación de datos utilizando operaciones de base de datos. Las operaciones de base de datos, tales como clasificación o filtración, permiten que el usuario formatee, condense y organice los datos dentro de una hoja de cálculo. Dentro de las aplicaciones de la hoja de cálculo, tales como la aplicación de hoja de cálculo Microsoft® Excel, las operaciones de la base de datos solamente están disponibles para un usuario, como una operación de una sola vez. Generalmente, se tiene acceso a la operación de base de datos a través de un menú que se despliega en la aplicación de hoja de cálculo. La selección del menú abre generalmente una interfase del usuario de la operación para llevar por pasos al usuario a través del proceso de utilización de la operación de base de datos. Desafortunadamente, el usuario puede emplear las operaciones solamente una vez y al usuario solamente se le dan pocas opciones para cambiar el modo en que funcionan las operaciones de la base de datos. Para repetir la operación de la base de datos, el usuario debe de seleccionar nuevamente la operación del menú e ingresar nuevamente las opciones. Por lo tanto, generalmente las operaciones de la base de datos no se pueden repetir automáticamente y no son flexibles. Estos problemas son exacerbados cuando el usuario es una organización grande que desea manipular grandes colecciones de datos que se originan de fuentes diferentes y dispares. Los usuarios que requieren operaciones complejas de base de datos basadas en tablas, en una aplicación de hoja de cálculo, con frecuencia vuelven a la manipulación manual de los datos o a la creación de un código macro para preparar los datos. La primera opción, con frecuencia consume tiempo, es costosa y propensa a los errores debido a que la solución requiere la intervención manual cada vez que cambian los datos. Para automatizar este proceso, un usuario podría emplear un macrocódigo, tal como el creado por Visual Basic para el programa Applications®. Desafortunadamente, la sintaxis y organización del macrocódigo es difícil para la mayor parte de los usuarios de las aplicaciones de hoja de cálculo. El macrocódigo también puede ser difícil de mantener. La mayor parte de los usuarios no pueden descifrar el código real, y por lo tanto, los usuarios no pueden corregir errores y no pueden ajusfar la solución en el futuro. Además, los usuarios con frecuencia introducen datos nuevos a la hoja de cálculo en una base recurrente o periódica. Por ejemplo, los datos mensuales de ventas son incorporados en aplicaciones de hojas de cálculo cada mes.
Los usuarios deben de manipular mensualmente los datos para crear la información útil acerca del funcionamiento de su negocio durante el mes pasado. Para lograr la manipulación de los datos mensuales, el usuario debe, ya sea utilizar numerosas operaciones de base de datos cada mes, lo cual consume demasiado tiempo y lo desperdicia, utilizar las operaciones manuales mencionadas anteriormente, las cuales debe de cambiar con frecuencia el usuario para trabajar con los datos nuevos, o crear un código macro mencionado anteriormente que puede trabajar con un nuevo conjunto de datos, pero que es difícil de crear. Sumario de la Invención La presente invención se refiere a una suite de funciones de base de datos que puede ser utilizada para crear "fórmulas de bases de datos" que pueden manipular los datos en una hoja de cálculo. Cada función de la base de datos tiene un número de parámetros o argumentos que se pueden definir y las funciones de la base de datos pueden ser combinadas con otras funciones de bases de datos, otras funciones de hoja de cálculo y otros operadores para crear una salida que se puede personalizar. Por lo tanto, los usuarios pueden ingresar opciones numerosas que pueden cubrir el deseo del usuario para producir los datos en ciertas formas o formatos. En las modalidades de la presente invención, el ingreso de cada una de las funciones de la base de datos es un conjunto de datos. Un conjunto de datos puede ser una adaptación de celdas que ocupan dos o más filas, dos o más columnas, o dos o más columnas y dos o más filas. En las modalidades de la presente invención, la producción de cada una de las funciones de la base de datos puede ser un conjunto de datos. Por lo tanto, cada función de la base de datos puede crear tablas nuevas de datos que producen datos "al granel", datos que tienen más de un valor de datos. Las funciones de datos permiten que el usuario cree conjuntos de datos que varían en la organización y el tamaño, dependiendo de la forma en que opera la función de la base de datos en el momento del ingreso de los datos. En una modalidad de la presente invención, un método para manipular una tabla de datos en una aplicación de hoja de cálculo, comprende recibir una o más funciones de bases de datos, recibir una selección para el ingreso de datos dentro de la tabla de datos, manipular los datos ingresados de acuerdo con una o más funciones de la base de datos, y presentar los datos de salida en la hoja de cálculo. En algunas modalidades, se reciben dos o más funciones de bases de datos en una fórmula de base de datos incrustada. La presente invención puede incluir entradas en una hoja de cálculo y salidas de la hoja de cálculo. En una modalidad, la una o más funciones de la base de datos tienen uno o más argumentos. En una modalidad adicional, uno de los argumentos tiene una referencia semántica. En algunas modalidades, el usuario proporciona el uno o más argumentos. En modalidades adicionales, el uno o más de los argumentos incluyen una muestra de la columna. En una modalidad, uno o más de los argumentos incluyen una expresión matemática. En algunas modalidades, los datos ingresados son una tabla de datos. En las modalidades de la presente invención, los datos de salida son una tabla de datos. En algunas modalidades, presentar la salida de datos ocasiona que se muevan una o más de las partidas de datos previamente existentes. En algunas modalidades, los datos de salida ocupan dos o más celdas en la hoja de cálculo. La presente invención también incluye modalidades de ejemplo de funciones de la base de datos. En una modalidad, las funciones de la base de datos incluyen una función de filtro, una fórmula de clasificación, una fórmula para eliminar duplicados, una fórmula para adjuntar tablas o una fórmula para agregar columnas. En algunas modalidades, la función de filtro comprende comparar por lo menos una partida de datos con un argumento de filtro y regresar los datos de salida sin partida alguna de los datos de entrada que cumplen con un argumento de filtro. En algunas modalidades, la función de clasificación comprende regresar un conjunto de datos de salida organizado de acuerdo con uno o más argumentos de clasificación. En algunas modalidades, la función de eliminación de duplicados comprende determinar que dos partidas de datos en los datos de entrada, designados como un argumentos, son iguales y regresar la salida de datos, en donde una de las dos partidas de datos similares es eliminada. En algunas modalidades, la función para anexar tablas comprende la recuperación de dos conjuntos de datos de entrada y regresar datos de salida en donde, por lo menos una porción del primer conjunto de datos de entrada está anexo a por lo menos una porción del segundo conjunto de datos de entrada. En algunas modalidades, la función de agregar columna comprende crear una columna de datos de los datos de entrada de acuerdo con uno o más argumentos y regresar una salida de datos, en donde la salida de datos incluye los datos de entrada y la columna de datos. En las modalidades de la presente invención, la manipulación de la entrada de datos comprende recibir uno o más argumentos con una o más funciones de base de datos, analizar el uno o más argumentos, y la una o más funciones de base de datos y determinar si uno o más argumentos o una o más funciones de la base de datos podrían ser aplicados fila por fila, si uno o más argumentos o una o más funciones de la base de datos podrían ser aplicadas fila por fila, aplicar esos argumentos o esas funciones de base de datos a cada una de las filas por separado, aplicando cualesquiera argumentos restantes o funciones de la base de datos. En modalidades adicionales de la presente invención, se crea un primer intermedio del conjunto de datos a partir de la aplicación de las funciones de argumentos y bases de datos en cada fila por separado. En algunas modalidades, se crean uno o más intermedios posteriores del conjunto de datos, debido a cada argumento o función de base de datos aplicada al primer intermedio del conjunto de datos o a uno o más de los intermedios posteriores del conjunto de datos. En las modalidades de la presente invención, una interfase del usuario para desplegar en pantalla los datos de salida, proporciona la recepción de una o más funciones de la base de datos para aplicar un conjunto de datos de entrada, recibir una selección de datos de entrada y desplegar en pantalla los datos de salida después de que ha sido aplicada la función de base de datos a los datos de entrada. La presente invención puede ser implementada como un proceso de cómputo, un sistema de cómputo o como un artículo de manufactura, tal como un producto de programa de computadora. El producto del programa de cómputo puede ser un medio de almacenamiento de computadora legible por un sistema de cómputo y que codifica un programa de computadora de instrucciones para ejecutar el proceso de cómputo. El producto del programa de cómputo también puede ser una señal propagada en un portador legible por un sistema de cómputo y que codifica un programa de cómputo de instrucciones para ejecutar un proceso de computadora. Breve Descripción de los Dibujos Se puede obtener una apreciación más completa de la presente invención y sus mejoras, haciendo referencia a los dibujos adjuntos, los cuales se resumen brevemente a continuación y la siguiente descripción detallada de las modalidades de ejemplo de la presente invención, así como las reivindicaciones adjuntas. La figura 1A, la figura 1B, y la figura 1C son una hoja de cálculo funcional en una modalidad de la presente invención que ilustra la relación de operación entre una función de base de datos de ejemplo, la entrada a la función, y la salida de la función. La figura 2 muestra un entorno de cómputo básico y un aparato de computadora de acuerdo con la presente invención . La figura 3 es un diagrama de bloques básico de una modalidad de la aplicación de hoja de cálculo e incluye funciones de la base de datos de acuerdo con la presente invención . La figura 4 muestra una modalidad del método básico de creación y empleo de una función de base de datos dentro de una hoja de cálculo de acuerdo con la presente invención. La figura 5 muestra otra modalidad de un método de aplicación de una función de base de datos a un conjunto de datos dentro de una hoja de cálculo de acuerdo con la presente invención. La figura 6 muestra varias modalidades de ejemplo de las funciones de la base de datos de acuerdo con la presente invención . Descripción Detallada de la Invención La presente invención se describirá ahora más completamente haciendo referencia en lo sucesivo a los dibujos adjuntos, en los cuales se muestran las modalidades de la invención. Sin embargo, la presente invención puede ser incorporada de muchas formas diferentes y no debe de ser interpretada como que está limitada a las modalidades aquí establecidas. En vez de ello, estas modalidades se proporcionan de modo que la presente descripción sea completa y transmita completamente el alcance de la invención para aquellos expertos en la técnica. En general, la presente invención se refiere a modalidades de métodos para aplicar funciones de base de datos en aplicaciones de hoja de cálculo. De acuerdo con las modalidades de la presente invención, los métodos aquí descritos pueden ser ejecutados como un conjunto de instrucciones de computadora leídas y llevadas a cabo en un solo sistema de cómputo Independiente. La presente invención se describirá en el contexto general de las instrucciones ejecutables por computadora, tales como módulos de programa, ejecutados por una o más computadoras u otros aparatos. Generalmente, los módulos de programa incluyen rutinas, programas, objetos, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan tipos de datos abstractos particulares. Generalmente, la funcionalidad de los módulos de programa puede ser combinada o distribuida, según se requiera en diferentes modalidades. En las figuras 1A, 1B, y 1C se ilustra una aplicación de hoja de cálculo de ejemplo que tiene aspectos de la presente invención. En las modalidades de la presente invención, una aplicación de hoja de cálculo u hoja de cálculo es una aplicación de software que puede almacenar datos, hacer cálculos contra los datos y desplegar los datos en pantalla. Las hojas de cálculo son organizadas como un libro de trabajo que tiene una o más hojas de cálculo. Cada hoja de cálculo tiene una pluralidad de celdas que son formadas a partir del cruce de una serie de filas y una serie de columnas. Una partida de datos puede ocupar una celda. Una tabla de datos es una colección de celdas que ocupan, tanto filas múltiples como columnas múltiples dentro de una hoja de cálculo. Las hojas de cálculo son bien conocidas en la técnica y no se explicarán de manera adicional. en la figura 1A se muestra una hoja de cálculo de ejemplo 100. La hoja de cálculo 100 contiene una tabla de datos 102. La tabla de datos 102 tiene el título 104 denominado "Lista de Venta". La tabla 102 tiene 22 filas 106 de la fila 5 a la fila 26. La tabla 102 también tiene tres columnas 108, con encabezados de las columnas 110 en la fila 5, marcada: "País", "Ventas Totales" y "Ventas Promedio". Los datos de la columna D y la columna E de la fila 6 a la fila 26. La fórmula de la base de datos que tiene una o más funciones de base de datos puede ser ingresada en la hoja de cálculo 100. En las modalidades de la presente invención, una función de base de datos es una función en una aplicación de hoja de cálculo que puede recuperar una entrada de conjuntos de datos, manipular esa entrada de datos en otra forma o formato y producir una salida del conjunto de datos. Un rango de datos o conjunto de datos son una o más partidas de datos que ocupan una o más celdas de la hoja de cálculo. Las funciones de la base de datos cambian la apariencia y organización de los datos. En general, las funciones de la base de datos reorganizan la entrada de datos, eliminan partidas de datos dentro de la entrada de datos o agregan datos en la entrada de datos. En las modalidades de la presente invención, algunas funciones de datos comprenden la clasificación, filtración, adjuntar tabla, eliminar duplicados y agregar una columna. Estas modalidades particulares se explicarán más adelante con mayor detalle, pero la presente invención no está limitada a estas modalidades específicas. En algunas modalidades de la presente invención, se pueden repetir las funciones de la base de datos. En otras palabras, conforme cambia la entrada de datos, las funciones de la base de datos pueden ser ejecutadas de nuevo automáticamente para proporcionar una salida de datos actualizada. En algunas modalidades, la entrada de datos no tiene que tener un tamaño especificado, pero puede cambiar y actualizarse y las funciones de la base de datos se ajustarán a los cambios. En una modalidad, la función de la base de datos puede emplear designaciones semánticas. Designar de manera semántica o una designación semántica se refiere a un modo particular de seleccionar un conjunto de datos. En vez de darle una referencia a la celda, fila o columna, el usuario puede utilizar algún tipo de descriptor de lenguaje que puede utilizar la hoja de cálculo para encontrar los datos de la hoja de cálculo que desea el usuario seleccionar. Por ejemplo si la columna C incluye todas las edades de un grupo de niños, el usuario podría utilizar una designación semántica para la columna C en una expresión, tal como "[edad] = 3". La designación semántica, "edad", es la muestra de la columna en el argumento. En las modalidades de la presente invención, una muestra de columna es un tipo de argumento que se refiere a una columna particular. En el ejemplo anterior, el término "edad", es la muestra de la columna. La muestra de la columna puede ser fraseada de cualquier manera que permita que la hoja de cálculo reconozca una cierta columna y aplique una fórmula o argumento a dicha columna. Las designaciones semánticas son explicadas con mayor detalle en la Solicitud de Patente Norteamericana, "Método e Implementación para Hacer Referencia a Datos Dinámicos en Aplicaciones de Hoja de Cálculo", presentada en Septiembre 30, 2004, la cual está incorporada en su totalidad a la presente descripción como referencia. La salida de las funciones de bases de datos pueden tener un conjunto de datos que puede ocupar una o más celdas. La salida de datos es el conjunto de datos final creado a partir de una o más funciones de la base de datos aplicadas. En otras palabras, después de que todas las funciones de la base de datos han sido aplicadas a ios datos de entrada, los datos de salida forman el conjunto final de datos. En una modalidad, el usuario o la aplicación de la hoja de cálculo no necesitan definir el tamaño de los datos de salida, el rango de celdas que ocuparán los datos de salida, pero el tamaño de los datos de salida no está limitado o puede ser completamente un reflejo de la entrada y el efecto de las funciones de la base de datos tiene sus datos de entrada. Cada función de la base de datos puede tener uno o más argumentos o parámetros que se pueden personalizar, los cuales pueden ajustar o adaptar la ejecución de la función de la base de datos. En las modalidades de la presente invención, un argumento o argumentos se refiere a una o más expresiones o modificadores a la función de la base de datos. Los argumentos pueden ajustar o adaptar la fórmula para ejecutarla de cierta manera. Los argumentos pueden ser algebraicos, en el formato de Boolean o de otro formato. En una modalidad, un argumento se puede referir a una celda. En las modalidades de la presente invención, una expresión es un símbolo matemático o lógico o una combinación significativa de símbolos. En esta descripción, una expresión se puede referir, ya sea a una función de la base de datos o a un argumento dentro de la fórmula de la base de datos. En las modalidades de la presente invención, una fórmula de la base de datos es una fórmula que utiliza una o más funciones de la base de datos para realizar una serie de operaciones de la base de datos en una sola definición de fórmula. En las modalidades de la presente invención, una fórmula de base de datos incrustada o fórmulas de base de datos anidadas se refieren a la capacidad para colocar una o más funciones de la base de datos dentro de la sintaxis de una fórmula de la base de datos. Por ejemplo, una fórmula de la base de datos puede tener la expresión: "CLASIFICAR (tabla 1 (FILTRO))". En el ejemplo de una fórmula de la base de datos, la función de FILTRO está incrustada dentro de la función de CLASIFICACIÓN. La incrustación de funciones permite que el usuario pueda crear expresiones complicadas que manipulan los datos de diferentes maneras sin crear fórmulas separadas. Una fórmula de base de datos de ejemplo 102 que tiene una función de base de datos se muestra en la celda G5 112 de la figura 1B. La fórmula de la base de datos de ejemplo 112 incluye una función de FILTRO. De acuerdo con los argumentos de la función de FILTRO, se aplicará un filtro a la tabla "Lista de Ventas" 102, de acuerdo con la referencia semántica 114 para la tabla 102 de los argumentos de la fórmula de la base de datos. La fórmula de la base de datos 112 también incluye otro argumento 116. La fórmula de la base de datos 112 utiliza la referencia semántica 116 para una muestra de columna como se puede apreciar por el argumento 116 "[Ventas Totales]>20000". La muestra de columna señala los datos en la columna D 118. El argumento 116 requiere que todas las filas de datos cuyos datos dentro de la columna D que no tienen un valor superior a 20000 sean eliminados de la salida de datos final. Por lo tanto, la fórmula de la base de datos 112 de este ejemplo filtrará todas las filas de datos de la tabla "Lista de Ventas" 102 que no tienen un valor Total de Ventas superior a 20000. Haciendo referencia a la figura 1C, la salida de datos se muestra en una segunda tabla 112 que ocupa un conjunto de filas 122, de la fila 5 a la fila 19, y un conjunto de columnas 124, de la columna G a la columna I. La salida de la tabla de datos 112 está anclada en la celda G5 en donde el usuario ingresó la fórmula de la base de datos. Como se puede apreciar en la figura 1C, la aplicación de hoja de cálculo eliminó 7 filas de datos de la tabla "Lista de Venta" 102 aplicando la función de FILTRO a esa tabla 102. Las filas eliminadas todas fueron filas que no tenían un valor de datos superior a 20000 en la columna D 118 de la tabla Lista de Venta 102, las cuales fueron las filas 6, 11, 15, 16, 17, 18 y 19. La salida de datos mantuvo el mismo número de columnas, pero cambió el número de filas. La salida de datos fue colocada en un rango de celdas, en vez de en una celda en donde fue ingresada la fórmula de la base de datos. En algunas modalidades, el proceso de manipulación de datos con la función de la base de datos puede terminar una vez que es desplegada la pantalla a la salida de datos. En otras modalidades, la salida de datos de una fórmula de la base de datos, que tiene una o más funciones de base de datos, puede formar la entrada de otras funciones de la hoja de cálculo u otras fórmulas de la base de datos, que tienen una o más funciones de base de datos. En algunas modalidades, la fórmula de la base de datos, o la función de la base de datos se puede volver a ejecutar repetidamente si cambia la entrada de datos seleccionada. Por lo tanto, la fórmula de la base de datos o la función se vuelve a aplicar y a crear la salida de datos después de cualquier cambio a la entrada de datos designada. En esencia, las funciones de la base de datos pueden ejecutarse igual que otras funciones de la hoja de cálculo que se pueden volver a calcular al momento de un cambio en la entrada de datos. La nueva aplicación de las funciones de la base de datos y las fórmulas es diferente a la aplicación sencilla de las operaciones de la base de datos. La nueva aplicación de las fórmulas de la base de datos y las funciones de la base de datos se describieron de una manera más completa en párrafos anteriores. En la figura 2 se describe un entorno operativo adecuado, en el cual puede ser implementada la presente invención. El entorno operativo es solamente un ejemplo de un entorno operativo adecuado y no pretende sugerir limitación alguna en lo que se refiere al alcance del uso o funcionalidad de la presente invención. Otros sistemas de cómputo bien conocidos, entornos y/o configuraciones que pueden ser adecuados para utilizarse con la presente invención incluyen, pero no están limitados a, computadoras personales, computadoras de servidor, aparatos manuales o portátiles, sistemas de multiprocesador, sistemas basados en microprocesador, artículos electrónicos programables por el consumidor, PCs de red, minicomputadoras, computadoras de sistemas, entornos de cómputo distribuidos que incluyen cualquiera de los sistemas o aparatos anteriores y similares.
Haciendo referencia a la figura 2, un sistema de ejemplo para implementar la presente invención incluye un aparato de cómputo, tal como el aparato de cómputo 200. En la configuración más básica, el aparato de cómputo 200 generalmente incluye por lo menos una unidad de procesamiento 202 y una memoria 204. Dependiendo de la configuración exacta y el tipo de aparato de cómputo 200, la memoria 204 puede ser volátil (tal como una memoria RAM), no volátil (tal como una memoria ROM, memoria instantánea, etc.), o alguna combinación de las dos. Esta configuración más básica del sistema de cómputo 200 se ilustra en la figura 2 por medio de líneas punteadas 206. Ad icionalmente, el aparato 200 puede tener también características/funcionalidades adicionales. Por ejemplo, el aparato 200 también puede incluir un almacenamiento adicional (removible y/o no removióle) que incluye, pero no están limitado a, discos magnéticos u ópticos o cintas. Dicho almacenamiento adicional se ilustra en la figura 2 por medio del almacenamiento removible 208 y el almacenamiento no removible 210. Los medios de almacenamiento de computadora incluyen medios volátiles y no volátiles, removibles y no removibles de cualquier método o tecnología de almacenamiento de información, tales como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. La memoria 204, el almacenamiento removible 208 y el almacenamiento no removible 210 todos son ejemplos de los medios de almacenamiento de computadora. Los medios de almacenamiento de computadora incluyen, pero no están limitados a, memorias RAM, ROM, EEPROM, memoria instantánea, u otra tecnología de memoria, CD-ROM, discos digitales versátiles (DVD) u otro almacenamiento óptico, cassettes magnéticos, cintas magnéticas, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio el cual pueda ser utilizado para almacenar la información deseada y al cual se pueda tener acceso por medio del aparato de cómputo 200. Cualquiera de dichos medios de almacenamiento de computadora pueden ser parte del aparato 200. El aparato 200 puede contener también una conexión de comunicación 212 que permite que el aparato 200 se comunique con otros aparatos. La conexión de comunicación 212 es un ejemplo de los medios de comunicación. Los medios de comunicación generalmente incorporan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte e incluyen cualesquiera medios de entrega de información. El término "señal modulada de datos" significa una señal que tiene una o más de sus características ajustadas o cambiadas de un modo tal como para codificar la información de la señal. A modo de ejemplo y no de limitación, los medios de comunicación incluyen medios cableados, tales como redes cableadas o una conexión cableada directa y medios inalámbricos, tales como medios acústicos, RF, infrarrojos u otros medios inalámbricos. El aparato 200 también puede tener un dispositivo de entrada 214, tal como un teclado, ratón, pluma, dispositivo de entrada de voz, dispositivo de entrada de contacto, etc. El aparato de salida 216 tal como una pantalla, bocinas, impresora, etc., también puede estar incluido. Todos estos dispositivos son bien conocidos en la técnica y no necesitan explicarse de una manera más extensa. El aparato de cómputo 200 generalmente incluye por lo menos alguna forma de medios legibles por computadora. Los medios legibles por computadora pueden ser cualesquiera medios disponibles a los que se pueda tener acceso por medio de la unidad de procesamiento 202. A modo de ejemplo y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento de computadora y medios de comunicación. Las combinaciones de cualquiera de los anteriores también pueden estar incluidas dentro del alcance de los medios legibles por computadora. El término medio legible por computadora como se usa en la presente descripción, incluye tanto medios de almacenamiento como medios de comunicación. Un diagrama funcional de una aplicación de hoja de cálculo 300 que tiene aspectos de la presente invención, se muestra en la figura 3. La aplicación de hoja de cálculo 300 incluye un módulo de hoja de cálculo 306 que puede aceptar la entrada del usuario 302. El módulo de la hoja de cálculo 100 es una modalidad del módulo de la hoja de cálculo 306. En las modalidades de la presente invención, la entrada del usuario 302 puede ser una o más funciones de la base de datos 312, una o más fórmulas de la base de datos 314 que tienen una o más funciones de la base de datos, y/o una selección de un conjunto de datos de entrada 304. Las fórmulas de la base de datos 112 son una modalidad de la fórmula de la base de datos 314. La entrada de datos 102 es una modalidad de la entrada de datos 304. El módulo de hoja de cálculo 306 puede aplicar las funciones de la base de datos y las fórmulas de la base de datos. El módulo de hoja de cálculo 306 puede aplicar las funciones de la base de datos 312 o las fórmulas de la base de datos 314 al conjunto de datos de entrada 304. El módulo de hoja de cálculo 306 puede manipular la entrada de datos 304 de acuerdo con la función de la base de datos 312 o la fórmula de la base de datos 314 y crean un conjunto de datos de salida 310. La salida de datos 120 es una modalidad de la salida de datos 310. En algunas modalidades, el módulo de hoja de cálculo 306 puede colocar la salida de datos 310 en una o más celdas dentro de la hoja de cálculo. En otras modalidades, el módulo de la hoja de cálculo 306 puede utilizar las salidas de datos en otras funciones o cálculos. En algunas modalidades, el módulo de hoja de cálculo 306 puede crear uno o más intermedios del conjunto de datos 316, antes de producir finalmente la salida de datos 310. Un intermedio del conjunto de datos 316 se refiere a una tabla o conjunto de datos que debe de crear la hoja de cálculo entre las ejecuciones de funciones o argumentos sucesivos o subsecuentes de la base de datos 312. Cada función o argumento sucesivo de la base de datos 312 puede ser aplicado al intermedio más reciente del conjunto de datos 316. La aplicación de hoja de cálculo 300 puede aceptar funciones de la base de datos 312, ya sea en una fórmula de la base de datos 314 o por separado de las fórmulas de la base de datos 314 y realizar operaciones de la base de datos de acuerdo con las funciones de la base de datos 312. En otras palabras, el usuario puede seleccionar o proporcionar una función de base de datos 312 que manipula la forma de entrada de datos, formato, organización, estructura o contenido. En algunas modalidades, las funciones de la base de datos 312 pueden ser aplicadas a una adaptación de datos de entrada 304 incluyendo tablas completas y puede proporcionar datos de salida 310 como una adaptación separada de datos. En otras modalidades, las funciones de la base de datos 312 son dinámicas, debido a que las funciones de la base de datos 312 se volverán a ejecutar cuando cambia la entrada de datos 304 subyacente. Por lo tanto, el usuario no necesita volver a aplicar manualmente las funciones de la base de datos 312, sino las funciones de la base de datos 312 generarán continuamente salidas de datos 310 de cualquier fuente que cambie alguna vez la entrada de datos 304. Una modalidad de un método 400 para aplicar una o más funciones de la base de datos (tal como la función de la base de datos 312) en un conjunto de entrada de datos (tal como en la entrada de datos 304) se muestra en la figura 4. Primero, una operación de adquisición 402 proporciona al usuario una selección de una o más funciones de la base de datos 102. En las modalidades de la presente invención, un módulo de hoja de cálculo (tal como el módulo de hoja de cálculo 306) puede proporcionar las funciones de la base de datos, haciendo disponibles las funciones de la base de datos para el usuario. En una modalidad, el módulo de la base de datos puede proporcionar una lista de funciones de la base de datos, tal como en un menú. En otras modalidades, el módulo de la hoja de cálculo proporciona la función de la base de datos permitiendo que el usuario escriba el nombre de la función de la base de datos en ia hoja de cálculo (tal como la hoja de cálculo 300). Luego, una operación de aceptar 404 acepta haciendo referencia a la entrada del usuario de la función de la base de datos. En las modalidades de la presente invención, un módulo de la hoja de cálculo puede almacenar la función de la base de datos en la celda en donde el usuario ingresó la función de la base de datos. En otras modalidades, el módulo de la hoja de cálculo puede almacenar una fórmula de la base de datos (tal como la fórmula de la base de datos 314) que contiene una función de la base de datos dentro de una celda en donde el usuario ingresó la fórmula de la base de datos. Luego, una operación de aceptar 406 acepta uno o más argumentos. En las modalidades de la presente invención, un argumento es una expresión que ajusta o adapta la ejecución de la función de la base de datos. En una modalidad, los argumentos pueden ser parte de una fórmula más grande de la base de datos. En otras modalidades, los argumentos pueden ser parte de la sintaxis de la función de la base de datos. El módulo de la hoja de cálculo puede almacenar los argumentos con la función de la base de datos.
Posteriormente, una operación de aceptar 408 acepta una selección de un conjunto de entradas de datos. Las entradas de datos pueden ser una o más celdas de datos. En una modalidad, el usuario puede ingresar un rango de celda para la entrada de datos. En otra modalidad, el usuario puede emplear una designación semántica para referirse a un conjunto de datos de entrada. Todavía en otras modalidades, el usuario puede emplear un ratón u otro dispositivo de entrada de interfase gráfica del usuario para destacar y seleccionar la entrada de datos. El módulo de hoja de cálculo puede almacenar esta selección de entrada de datos con la función de la base de datos. Cualquier corrección necesaria a la función de la base de datos, argumentos o selección de entrada de datos, puede ser avisada por el módulo de la hoja de cálculo y hecha por el usuario. En algunas modalidades, el usuario puede ingresar la función de la base de datos, la selección de entrada de datos y uno o más argumentos en una sola expresión. Luego, la operación de manipulación manipula la entrada de datos de acuerdo con la una o más funciones de la bases de datos. En las modalidades de la presente invención, el módulo de hoja de cálculo ejecuta las funciones de la base de datos, con los argumentos en la entrada de datos seleccionada. El módulo de hoja de cálculo manipula la entrada de datos de acuerdo con el tipo de función de la base de datos y los argumentos que la acompañan. Como se explicó, la manipulación de la entrada de datos puede significar cualquier tipo de cambio a la reorganización o formato de la entrada de datos. En una modalidad, una primera función o argumento de la base de datos (que significa la primera que se encuentra en la lista de cualquiera de las fórmulas de la base de datos incrustadas, o el primer argumento de una serie de argumentos) es ejecutada en la entrada de datos. Luego, el módulo de la hoja de cálculo procede a través de cada función o argumento sucesivo en un orden en serie. En algunas modalidades, la hoja de cálculo produce un conjunto de datos intermedios (tal como el conjunto de datos intermedios 316) después de la aplicación de cada función o argumento. La función o argumento final crea la salida de datos (tal como la salida de datos 310). Por ejemplo, si una función de FILTRO y una clasificación de fórmulas son aplicadas a la misma tabla de datos, la hoja de cálculo puede crear primero un conjunto de datos intermedio, tal como una segunda tabla de datos después de la operación de filtro, pero antes de la operación de clasificación. La hoja de cálculo puede almacenar este conjunto de datos intermedio. Luego, la hoja de cálculo puede aplicar la clasificación de fórmula al intermedio de la base de datos para crear la salida de datos. Cualesquiera datos creados y/o almacenados entre las ejecuciones subsecuentes o consecutivas de fórmulas o expresiones, es un conjunto de datos intermedio. Con referencia a la figura 5, se presenta una descripción más detallada de una modalidad de un método para manipular datos, con una o más funciones de la base de datos. Luego, la operación de enviar 412 envía la salida de datos a la hoja de cálculo. La salida de datos puede ser una nueva tabla de datos o un conjunto de datos. En las modalidades de la presente invención, el módulo de hoja de cálculo forma la salida de datos. En una modalidad, el módulo de hoja de cálculo produce la tabla con encabezados de columnas y filas. En otra modalidad, el módulo de hoja de cálculo puede darle un nombre a la salida de datos. En una modalidad, el módulo de hoja de cálculo determina el tamaño y configuración de la salida de datos. El módulo de hoja de cálculo puede determinar cuantas filas y cuantas columnas comprende la salida de datos. Luego, el módulo de hoja de cálculo puede determinar si existe espacio suficiente en la hoja de cálculo para colocar los datos de salida en la hoja de cálculo. En una modalidad, el módulo de hoja de cálculo puede encontrar la celda en donde está anclada la función de la base de datos o la fórmula. El módulo de la hoja de cálculo entonces puede revisar las filas y columnas alrededor de la celda ancla para encontrar cualesquiera datos existentes. Si existen datos, los datos existentes pueden ser cambiados para hacer espacio a la salida de datos. Luego, una operación de presentación 414 presenta la salida de datos. En las modalidades de la presente invención, el módulo de hoja de cálculo despliega en pantalla la salida de datos en la hoja de cálculo. La salida de datos puede formar una celda de datos, un rango de datos en una columna o fila, una tabla de datos o cualquier adaptación de datos en cualquier adaptación de celdas u hojas de cálculo. En la figura 5 se muestra una modalidad adicional del método 500 para manipular la entrada de datos (tal como la entrada de datos 304) con una o más funciones de la base de datos (tal como la función de la base de datos 312). Primero, una operación de análisis 502 analiza la fórmula de la base de datos (tal como la fórmula de la base de datos 314) o la función de la base de datos. En las modalidades de la presente invención, un módulo de hoja de cálculo (tal como el módulo de hoja de cálculo 306) recibe, del usuario, una o más fórmulas o funciones de la base de datos que pueden incluir uno o más argumentos. En algunas modalidades, el usuario puede proporcionar la expresión de las fórmulas en donde una o más funciones de la base de datos están incrustadas en la fórmula de la base de datos. Como ejemplo, la expresión de la fórmula de la base de datos recibida por la aplicación de hoja de cálculo puede tener una FUNCIÓN de FILTRO dentro de una fórmula de CLASIFICACIÓN dentro de una fórmula de ELIMINAR DUPLICADOS. Esta expresión de fórmula se puede ver como la siguiente: " = RemoveDuplicates (So rt(Filter(Tab le 1.[Columna 1] = " Product 1", [Ventas] > 1200), [Nombre del Vendedor], 1), [Columna 1], [Nombre del Vendedor])". En este ejemplo, la fórmula da como resultado que está siendo clasificada la lista por "vendedor" y filtrada para incluir los productos que vendió el vendedor a una razón de más de 1200 unidades en un solo pedido, eliminando las combinaciones duplicadas de vendedor/nombre del producto. En algunas modalidades, la fórmula de la base de datos incrustada puede requerir que la hoja de cálculo analice la expresión diferente, ya sea que esas expresiones sean funciones o argumentos de la base de datos de las funciones de la base de datos. Las fórmulas de la base de datos, ya sea incrustadas o independientes, pueden tener uno o más argumentos. En una modalidad, el módulo de hoja de cálculo puede tratar cada expresión como una operación separada de la base de datos. Por lo tanto, cada expresión es separada y evaluada individualmente. La colección de operaciones de la base de datos puede ser aplicada a la entrada de datos en cualquier orden y en cualquier momento en el proceso. Por lo tanto, en vez de ejecutar las expresiones en un orden en serie, el módulo de hoja de cálculo puede cambiar el orden y/o el método de aplicación de las operaciones de la base de datos para optimizar la ejecución de la fórmula de la base de datos. En algunas modalidades, las expresiones analizadas pueden ser almacenadas para un acceso posterior. Luego, la operación de recuperación 504 recupera la expresión analizada. En algunas modalidades, el módulo de hoja de cálculo puede recuperar una de las expresiones analizadas almacenadas. El módulo de hoja de cálculo puede tener acceso a la memoria para invocar la expresión y proporcionar la expresión para una evaluación adicional. Recuperando las expresiones una a la vez, el módulo de hoja de cálculo puede volver a ordenar la ejecución de las funciones y argumentos de la base de datos. Luego, la operación de determinación determina la clase de la expresión. En las modalidades de la presente invención, la expresión puede tener una de dos clases. Primero, la expresión puede ser aplicada a una sola fila de datos o ser aplicada fila por fila. Segundo, la expresión puede ser aplicada a una "tabla completa" de datos y no a una sola fila. Ciertas operaciones de la base de datos pueden ser operadas en una sola fila. Por ejemplo, la operación de filtro que aparece en un valor de datos en una celda, puede ser aplicada fila por fila. En contraste, ciertas operaciones de la base de datos pueden ser aplicadas solo a las tablas de datos enteras o "totales". Por ejemplo, se puede aplicar una operación de clasificación solamente a una tabla de datos completa. Por lo tanto, en las modalidades de la presente invención, el módulo de hoja de cálculo revisa las expresiones contra un conjunto de expresiones que el módulo de la hoja de cálculo sabe que pueden ser aplicadas a una sola fila de datos. Si la expresión se encuentra en la lista, esa expresión puede ser aplicada inmediatamente. Si la expresión puede ser aplicada fila por fila, entonces la operación de separación 508 separa las expresiones fila por fila. En una modalidad, el módulo de hoja de cálculo separa las expresiones y almacena las expresiones en un grupo separado. En algunas modalidades, en vez de almacenar las expresiones, las expresiones son aplicadas inmediatamente en un orden en serie a cada fila de la entrada de datos. En algunas modalidades, el módulo de hoja de cálculo almacena cada expresión fila por fila, para su evaluación adicional antes de aplicar las expresiones. Por lo tanto, el módulo de hoja de cálculo puede separar las expresiones para su procesamiento posterior. Después, la operación de determinación 510 determina si existen otras expresiones que revisar. En las modalidades de la presente invención, el módulo de hoja de cálculo puede determinar si todas las expresiones han sido revisadas por clase, fila por fila o "tabla completa". Si una expresión no ha sido revisada, el proceso 500 regresa a la operación de recuperación 504. Sin embargo, si no existen expresiones que se necesitan realizar, el proceso 500 procede a la operación 512. Luego, la operación de orden opcional 512 ordena las expresiones fila por fila. En las modalidades de la presente invención, el módulo de hoja de cálculo puede ordenar las expresiones, en vez de aplicar inmediatamente las expresiones fila por fila. El ordenamiento puede incluir colocar las expresiones en una organización que es la más eficiente para el procesamiento. En una modalidad, el orden puede ser de las más restrictivas a las expresiones menos restrictivas. Por ejemplo, la expresión "C = 5" es más restrictiva que la expresión "C>5" debido a que la primera expresión solamente tiene una posibilidad, un valor igual a 5, y la segunda expresión tiene numerosas posibilidades, todos los valores superiores a 5. El ordenamiento de las expresiones es más eficiente debido a que se aplican primero las expresiones más restrictivas que pueden eliminar la fila del procesamiento adicional antes de aplicar las expresiones menos restrictivas. Después, la operación de evaluación 514 evalúa cada fila de todas las expresiones ordenadas fila por fila. En las modalidades de la presente invención, el módulo de hoja de cálculo aplica las expresiones analizadas, separadas, ordenadas fila por fila, como un conjunto, a cada fila individualmente. El módulo de hoja de cálculo puede evaluar cada fila, ya sea en serie o de manera aleatoria. Si cualquier expresión es aplicable a la fila, los datos dentro de esta fila pueden ser eliminados, de ser necesario. Cualquier expresión que ya ha sido aplicada a la fila eliminada, no necesita ser aplicada y el módulo de hoja de cálculo se puede mover a la siguiente fila para la evaluación de las expresiones. Por lo tanto, las expresiones fila por fila pueden operar como una fórmula de adaptación, en vez de cómo una fórmula de tabla. Aunque la presente modalidad aplica la expresión fila por fila, también es posible aplicar las expresiones columna por columna. Por lo tanto, en algunas modalidades, la separación, ordenamiento y evaluación se pueden determinar para las expresiones columna por columna. Después de que el módulo de hoja de cálculo aplica las expresiones fila por fila a cada fila, el módulo de hoja de cálculo crea un primer conjunto de datos intermedios 516 (como el conjunto de datos intermedio 316). Si la operación de determinación 506 determina que la expresión analizada no es una expresión de fila por fila, el proceso 500 puede proceder a una operación de orden opcional 518. La operación de orden 518 puede ordenar las expresiones de la "tabla completa" en vez de aplicar inmediatamente las expresiones de la "tabla completa". En algunas modalidades, las expresiones de la "tabla completa" pueden ser ordenadas desde las más restrictivas hasta las menos restrictivas, tal y como se explicó anteriormente. Se terminan otras metodologías de ordenamiento, tanto para las expresiones fila por fila como para las expresiones de "tabla completa", debido a que el procesamiento de las expresiones pueden ser más eficiente o efectivo, si algunas expresiones siguen otras expresiones. Por ejemplo, el procesamiento puede ser más efectivo, si una clasificación precede a una operación de "tomar los diez superiores". Luego, una operación de aplicación 520 aplica las expresiones de "tabla completa". En una modalidad, el módulo de hoja de cálculo recupera de la memoria, el primer conjunto de datos intermedio creado por las expresiones fila por fila. Luego, el módulo de hoja de cálculo aplica la primera expresión de "tabla completa". El módulo de hoja de cálculo crea un conjunto subsecuente de datos intermedios 522, y almacena el conjunto subsecuente de datos intermedio 522. Después, la operación de determinación 524 determina si necesitan ser aplicadas otras expresiones de "tabla completa". Si tiene que aplicarse todavía otra expresión de "tabla completa" a un conjunto de datos intermedios subsecuentes, el proceso 500 regresa a la operación de aplicación 520. Su no necesita ser aplicada otra expresión de "tabla completa", el último conjunto de datos intermedios subsecuentes 421 almacenado en la memoria se convierte en los datos de salida "tales como los datos de salida 310). Haciendo referencia a la operación de recepción 526, si cambia la entrada de datos subyacentes, la operación de recepción 526 recibe el cambio. En una modalidad, la fórmula o función de la base de datos puede ya haber sido ingresada en la hoja de cálculo. La fórmula o función de la base de datos previamente existente tiene un conjunto de datos de entrada seleccionados para los cuales son aplicadas las expresiones. La selección almacenada del conjunto de datos de los datos de entrada representa "dependencia" de la fórmula de la base de datos o la función de datos. Un usuario puede cambiar alguna parte de las celdas "dependientes" que fueron designadas como entrada a la fórmula o función de la base de datos. El cambio a los datos de entrada puede venir a partir de la edición de los datos de entrada, agregándolo a los datos de entrada, recuperando los datos de entrada, o efectuando otras acciones. Si son cambiados los datos de entrada, el proceso 500 para la aplicación de las expresiones puede comenzar en el bloque 502. En algunas modalidades, el módulo de hoja de cálculo recibe el cambio. Cuando el cambio afecta a la entrada de datos de las celdas dependientes, el cambio da como resultado que el proceso 400 se vuelva a ejecutar comenzando en la operación de manipulación 410. En una modalidad, las funciones de la base de datos se vuelven a evaluar o se ejecutan de nuevo para regresar un conjunto de datos de salida correcto, utilizando la entrada de datos cambiada. Por lo tanto, las formulas de la base de datos y las funciones de la base de datos, a diferencia de las operaciones de la base de datos, se pueden volver a calcular. En la figura 6 se representan varias fórmulas de la base de datos de ejemplo que contienen funciones de la base de datos. Las modalidades de ejemplo incluyen cierta sintaxis, pero la presente invención no está limitada a esa sintaxis. En vez de ello, las fórmulas de la base de datos y las funciones de la base de datos pueden comprender cualquier tipo de sintaxis que pueda proporcionar al usuario operaciones de la base de datos parecidas a fórmulas y que se pueden repetir. Además, las fórmulas de la base de datos y las funciones de la base de datos pueden tener cualquier sintaxis que pueda proporcionar al usuario una personalización especificada del usuario, a través de la inclusión de uno o más argumentos dentro de la fórmula para la base de datos o la función de la base de datos. En algunas modalidades, las funciones de la base de datos y las fórmulas de la base de datos pueden incluir designaciones semánticas. La función de FILTRO de la base de datos 602 puede eliminar partidas de datos de una hoja de cálculo de acuerdo con uno o más argumentos. Tal y como se muestra en la figura 6, la función de FILTRO de la base de datos 602 tiene un conjunto de expresiones de ejemplo, tales como la expresión 612 y la expresión 614. En las modalidades de la presente invención, cada función de la base de datos puede tener expresiones o argumentos similares a la expresión 612 y 614. La sintaxis de operación de las expresiones puede cambiar dependiendo del tipo de función de la base de datos. Un experto en la técnica reconocerá los argumentos y/o expresiones de ejemplo, en el conjunto de funciones de la base de datos de ejemplo. En las modalidades de la presente invención, la función de FILTRO de ejemplo, tiene una estructura y sintaxis como la siguiente: "FILTRO(Table, Filter Expression, 1, [Filter Expression Expression2], ...)". La función de FILTRO de la base de datos 602 regresa todas las partidas (filas) de un conjunto de datos que cumplen todas las condiciones del filtro según fueron incorporadas por los argumentos. En las modalidades de la presente invención, los argumentos pueden ser algebraicos, matemáticos, de Boo!ean u otros tipos de expresiones que pueden contener una o más referencias a los conjuntos de datos dentro de la entrada de datos. Los argumentos pueden ser aplicados y la función de FILTRO de la base de datos 602 regresa una lista de filas que cumplen con todos los argumentos. Solamente las partidas (filas) en donde todos los argumentos son verdaderos son incluidas como parte de la salida de datos. Por ejemplo, una tabla de ejemplo que se muestra más adelante puede ser denominada "Mi Tabla". La tabla siguiente:
La función de FILTRO puede ser ingresada en la hoja de cálculo como las siguientes expresiones: = FILTER(MyTable.[Bar]>1 , [Foo] = "C") El resultado de esta función de FILTRO puede ser la siguiente tabla:
La función de FILTRO utilizó referencias semánticas para las muestras de columna, por ejemplo, la función de FILTRO utilizó el nombre de la columna "Foo" y "Barra", y el nombre de la tabla "Mi Tabla" en el cual es nombrada el rango para la tabla completa. Otro ejemplo de la función de la base de datos es la función de CLASIFICACIÓN 604, tal y como se muestra en la figura 6. En las modalidades de la presente invención, la función de CLASIFICACIÓN de ejemplo puede tener la estructura y sintaxis siguiente "CLASIFICACIÓN(Table.Field 1, Ascending/Descending 1, [field 2, Ascending/Descending 2],...)". La función de CLASIFICACIÓN 604 regresa una tabla que es el resultado de la clasificación de los datos seleccionados por todos los argumentos especificados. El primer argumento especificado, es la clasificación del orden más alto (último aplicado), el segundo argumento es la clasificación del segundo orden más alto, y así sucesivamente. Por lo tanto, se aplican varias clasificaciones en orden inverso al orden de aparición de los argumentos, en la función para producir una lista clasificada de manera correcta. Otro ejemplo de la función de la base de datos puede ser la función de ELIMINAR DUPLICADOS 606 mostrada en la figura 6. En las modalidades de la presente invención, la función de ELIMINAR DUPLICADO 606 puede tener la estructura y sintaxis siguiente: "ELIMINAR DUPLICADOS(Table. [Field 1], [Field 2],...)". La función de ELIMINAR DUPLICADO 606 puede regresar un conjunto de datos que no contenga partidas duplicadas algunas expresadas por cualquiera de los argumentos. Si todas las partidas especificadas se identifican por los argumentos coincidentes con los de otra partida, entonces la función de ELIMINAR DUPLICADOS 606 puede regresar solamente una de las dos partidas. En algunas modalidades, la función de ELIMINAR DUPLICADOS 606 puede regresar las "primeras" partidas (la partida colocada más cerca del encabezado de la tabla). Si el conjunto de datos no incluye datos algunos que estén duplicados, entonces no se eliminan datos. Como un ejemplo, a continuación se muestran los datos seleccionados, y denominados "Mi Tabla":
La función de ELIMINAR DUPLICADOS de ejemplo 606 se muestra a continuación: = REMOVEDUPLICATES(MyTable, [Foo], [Bar]). La función ELIMINAR DUPLICADO 606 regresa al conjunto de datos de salida de la manera siguiente:
Todavía otro ejemplo de una función de la base de datos es la función de ANEXAR TABLA 608, que se muestra en la figura 6. En la modalidad de la presente invención, la función de ANEXAR TABLA 608 tiene una estructura y sintaxis de la manera siguiente: "ANEXAR TABLA(Table1 , Table2)". Esta función de ANEXAR TABLA 608 regresa un conjunto de datos que contiene todas las partidas de la tabla 1 y la tabla 2. En una modalidad, la salida de datos tiene un orden de todos los campos de la tabla 1 seguido por todos los campos de la tabla 2, los cuales no se encuentran en la tabla 1. En otra modalidad, cuando una tabla tiene uno o más campos que no tiene la otra tabla, estos campos pueden no ser incluidos. La función de ANEXAR TABLA 608 puede anexar datos a los lados superior, inferior o laterales de una o la otra tabla. Un ejemplo final de la función de la base de datos puede ser, la función de AGREGAR COLUMNA 610 mostrada en la figura 6. En las modalidades de la presente invención, la función de AGREGAR COLUMNA 610 puede tener la estructura y sintaxis siguiente: "AGREGAR COLUMNA (Table, Column Ñame. Expression for Column)". La función de AGREGAR COLUMNA 610 puede crear un conjunto de datos que es el mismo que el de la "tabla" pero que contiene también una columna cuyo nombre es "nombre de columna" y cuyos valores de datos son el resultado del argumento denominado "expresión para columna". La función de AGREGAR COLUMNA 610 puede ser aplicada fila por fila. La función de AGREGAR COLUMNA 610 puede tener argumentos múltiples. En algunas modalidades, los argumentos múltiples de la función de AGREGAR COLUMNA 610, pueden funcionar de una manera similar a la función de FILTRO.