The following page describes the syntax you can apply when you want to build custom formulas in your report tables. You find the custom formula section here:

Formula | Description | Example |

`CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").MissingsCount` | Returns the count of Interviews with Missings for a specified cell. If the RowName is not specified then the current row is assumed. | ```
CellValue(null,"Column1").MissingsCount
CellValue("Row1","Column1").MissingsCount
``` |

`CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").NaCount` | Returns the count of Interviews with N/A for a specified cell. If the RowName is not specified then the current row is assumed. | ```
CellValue(null,"Column1").NaCount
CellValue("Row1","Column1").NaCount
``` |

`CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").Value` | Returns the calculated Value for a specified cell. If the RowName is not specified then the current row is assumed. | ```
CellValue(null,"Column1").Value
CellValue("Row1","Column1").Value
``` |

`CellValue(["[ROW-NAME]"],"[COLUMN-NAME]").ResponseCount` | Returns the count of Interviews for a specified cell. If the RowName is not specified then the current row is assumed. | ```
CellValue(null,"Column1").ResponseCount
CellValue("Row1","Column1").ResponseCount
``` |

## Custom formula related to segments

Formula | Description |

`RowResult.MissingsCount` | Returns the count of Interviews with Missings for the current segment. |

`RowResult.NaCount` | Returns the count of Interviews with N/A for the current segment. |

`RowResult.ResponseCount` | Returns the count of Interviews for the current segment. |

`SegmentValue(name)` | Returns the Segment Value of the current column for the given segment name. |

## Custom formula related to the table

Formula | Description |

`DataSourceResult.MissingsCount` | Returns the count of Interviews with Missings of the whole Table not based on a variable. |

`DataSourceResult.NaCount` | Returns the count of Interviews with N/A of the whole Table not based on a variable. |

`DataSourceResult.ResponseCount` | Returns the count of Interviews |

`CurrentRowName` | Returns the RowName which is currently calculated |

`CurrentColumnName` | Returns the ColumnName which is currently calculated |

## Multiline custom formula

If you want to create a multi line script, please use the **return **command in the start and **;** in the end:

```
return (CellValue("Row1","Ginger_1_Average_f2bf-21db").Value
+ CellValue("Row2","Ginger_1_Average_f2bf-21db").Value
+ CellValue("Row3","Ginger_1_Average_f2bf-21db").Value
+ CellValue("Row4","Ginger_1_Average_f2bf-21db").Value
+ CellValue("Row5","Ginger_1_Average_f2bf-21db").Value) / 5;
```

## Switching values

The same syntax applies to rows. Use CurrentRowName instead and prepare cases with the different row names.

```
switch(CurrentColumnName)
{
case "Column2": return 2314 * 12;
case "Column3": return 2313 * 12;
case "Column4": return 2294 * 12;
}
return 0;
```

## If condition in custom formula

The example is taken from a table where negative differences should be exchanged with the value 0.

```
var result = (double)CellValue("Row4",null).Value - (double)CellValue("Row6",null).Value;
if (result < 0) {result=0;};
return result;
```

## Round Values

In the following script the term is rounded to an number without decimal

`Math.Round(((double)CellValue("Row2","Column1").Value/(double)CellValue("Row1","Column1").Value*100),0)`

The full scope of the script editor is described in the dotnet language reference: