# CData Excel Functions

This section describes CData Excel Functions. A *function* is a preset formula that helps perform different operations and data analysis faster. All operations are related to the data within a table, i.e., to query, add, update or delete the rows, but you can also use these functions to execute stored procedures.

Functions perform specific calculations in a particular order based on the specified values, called *arguments* or *parameters*. Function parameters can refer to specific cells; as these cell values change, the add-in automatically refreshes the results.

Since Excel functions are stored within the Excel file, you can easily share your dynamic spreadsheets with others. In addition, they eliminate laborious manual entry of formulas. You can perform your tasks efficiently and save time.

## Example

The examples in this section are based on different range of data as the rows of data can exist anywhere on the spreadsheet.

J | K | L | |

14 | Id | ShipCity | ShipCountry |

15 | MyId1 | Raleigh | USA |

16 | MyId2 | ... | ... |

17 | MyId3 | ... | ... |

## CDATAQUERY

*=CDATAQUERY(Query, [Connection], [Parameters], [ResultLocation], [Options])*

This formula executes a SELECT statement or a stored procedure call. By default, the cell where the formula is entered shows the number of rows returned or the number of rows that have been modified and subsequent rows show the results.

Query | The Query argument is a string containing the query. For example: SELECT * FROM OrdersTo execute a parameterized query, use the standard syntax: SELECT ShipName, ShipCity FROM Orders WHERE ShipCountry = @ShipCountry AND ShipCity = @ShipCity The add-in reads the parameters from a range. Specify the range in the Parameters property. |

Connection | A string that defines the connection: either a connection profile you created from the CData ribbon (see Managing Connections) or a connection string. Connection strings must include the Provider property. For example:` Provider=xBase;Data Source=C:\\MyData;`
The Connection argument is optional if you have used the Data Selection wizard to pull data into the spreadsheet. The formula uses this connection by default. |

Parameters | The Parameters argument specifies the range of cells that contains the names and values for the parameters. The first row of the range is a header row and specifies the parameter names.
For example, if the range A10:B11 contains the parameters then the cells A10:B10 should contain the parameter names, and the cells A11:B11 should contain the parameter values. |

ResultLocation | A string that specifies the cell where the row-by-row output of the results start. By default, CDATAQUERY outputs the results just below the cell where the formula was entered. |

Options | A string containing additional options to control the formula's behavior. The default behavior is to return data in a table, where the first row contains the column headers. "Header=False" may be set to return the data without headers. "Scalar=True" may be set to return only a single cell of data, and return it into the same cell as the formula. |

The following formula searches xBase and outputs the results starting at row J14.

`=CDATAQUERY("SELECT ShipName, ShipCity FROM Orders WHERE ShipCountry = 'USA'","xBase.Connection1",,"J14")`

The following formula selects only the ShipCity for a single ShipCountry from xBase and outputs the result into the formula's cell.

`=CDATAQUERY("SELECT ShipCity FROM Orders WHERE ShipCountry = '"&J15&"'","xBase.Connection1",,,"Scalar=True")`