A method for manipulating, in a spreadsheet application, a table of data residing in the spreadsheet application, the method comprising: receiving one or more database functions within a cell of the spreadsheet application, wherein the database functions include one or more of a filter function, a sort function, a duplicate removal function, a table append function and an add column function; receiving a selection for input data comprising one or more cells of the table of data, wherein the input data resides within the spreadsheet application; manipulating the input data according to the one or more database functions, wherein manipulating comprises: determining which of the one or more database functions can be applied row-by-row; applying the determined database functions to each row separately, wherein prior to applying the determined database functions, the determined database functions are ordered from the most restrictive function to the least restrictive function and the determined database functions are applied to each row according to the ordering; and applying any remaining database functions; and presenting output data (120; 310) in the spreadsheet application, wherein the output data is anchored in the cell in which the one or more database functions are received, wherein the output data is presented as an array of data comprising more than one cell of the spreadsheet application, and wherein the array is separate from the table of data. receiving one or more database functions within a cell of the spreadsheet application, wherein the database functions include one or more of a filter function, a sort function, a duplicate removal function, a table append function and an add column function; receiving a selection for input data comprising one or more cells of the table of data, wherein the input data resides within the spreadsheet application; manipulating the input data according to the one or more database functions, wherein manipulating comprises: determining which of the one or more database functions can be applied row-by-row; applying the determined database functions to each row separately, wherein prior to applying the determined database functions, the determined database functions are ordered from the most restrictive function to the least restrictive function and the determined database functions are applied to each row according to the ordering; and applying any remaining database functions; and determining which of the one or more database functions can be applied row-by-row; applying the determined database functions to each row separately, wherein prior to applying the determined database functions, the determined database functions are ordered from the most restrictive function to the least restrictive function and the determined database functions are applied to each row according to the ordering; and applying any remaining database functions; and presenting output data (120; 310) in the spreadsheet application, wherein the output data is anchored in the cell in which the one or more database functions are received, wherein the output data is presented as an array of data comprising more than one cell of the spreadsheet application, and wherein the array is separate from the table of data.