# Average Rule

An explanation of the average rule conditional format in SpreadJS

## Content

The average rule checks for values above or below the average.
The following image displays an example of the average rule.

![](https://cdn.mescius.io/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/averagerule.png)

The following code sample creates an average rule.

```javascript
activeSheet.setValue(0, 0, 1, 3);
activeSheet.setValue(1, 0, 50, 3);
activeSheet.setValue(2, 0, 100, 3);
activeSheet.setValue(3, 0, 2, 3);
activeSheet.setValue(4, 0, 60, 3);
activeSheet.setValue(5, 0, 90, 3);
activeSheet.setValue(6, 0, 3, 3);
activeSheet.setValue(7, 0, 40, 3);
activeSheet.setValue(8, 0, 70, 3);
activeSheet.setValue(9, 0, 5, 3);
activeSheet.setValue(10, 0, 35, 3);

var style = new GC.Spread.Sheets.Style();
style.backColor = "red";
style.borderLeft = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);
style.borderTop = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);
style.borderRight = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);
style.borderBottom = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);
activeSheet.conditionalFormats.addAverageRule(GC.Spread.Sheets.ConditionalFormatting.AverageConditionType.above, style, [new GC.Spread.Sheets.Range(0, 0, 10, 3)]);

// OR

activeSheet.setValue(0, 0, 1, 3);
activeSheet.setValue(1, 0, 50, 3);
activeSheet.setValue(2, 0, 100, 3);
activeSheet.setValue(3, 0, 2, 3);
activeSheet.setValue(4, 0, 60, 3);
activeSheet.setValue(5, 0, 90, 3);
activeSheet.setValue(6, 0, 3, 3);
activeSheet.setValue(7, 0, 40, 3);
activeSheet.setValue(8, 0, 70, 3);
activeSheet.setValue(9, 0, 5, 3);
activeSheet.setValue(10, 0, 35, 3);

var style = new GC.Spread.Sheets.Style();
style.backColor = "red";
style.borderLeft = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);
style.borderTop = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);
style.borderRight = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);
style.borderBottom = new GC.Spread.Sheets.LineBorder("blue", GC.Spread.Sheets.LineStyle.medium);

var rule = new GC.Spread.Sheets.ConditionalFormatting.NormalConditionRule();
rule.ruleType(GC.Spread.Sheets.ConditionalFormatting.RuleType.averageRule);
rule.ranges([new GC.Spread.Sheets.Range(0, 0, 10, 3)]);
rule.style(style);
rule.type(GC.Spread.Sheets.ConditionalFormatting.AverageConditionType.above);
activeSheet.conditionalFormats.addRule(rule);
```