上位平均条件付き書式の追加方法

可能な使用シナリオ

Microsoft ExcelやGoogle Sheetsのようなツールで、上位平均条件付き書式を使用すると、特定の範囲内で平均より高い値を持つデータを素早くハイライトでき、視覚的に目立たせることができます。使用理由は次のとおりです:

  1. トレンドを素早く把握:平均や数値を手動で計算せずに、高パフォーマンスの値を瞬時に見つけることができます。
  2. データ分析の簡素化:数式の計算や入力は不要で、論理に基づく書式設定を自動的に適用でき、時間を節約します。
  3. 視覚的魅力の向上:色分けにより、表を見やすくし、プレゼンテーション時に特に効果的です。
  4. 意思決定を支援:平均以上の値を素早く識別することで、ハイパフォーマーへの報酬やなぜ特定の製品が他より優れているのか調査するなどの行動を促進できます。

Excelで平均以上の条件付き書式を追加する方法

Excelに平均以上の条件付き書式を追加するには、次の手順で行います:

  1. 書式を適用したいセル範囲を選択します。例:A1:A20。
  2. リボンのホームタブに移動します。
  3. スタイルグループの条件付き書式をクリックします。
  4. 上/下ルールにカーソルを合わせます。
  5. 平均以上をクリックします…
  6. 表示されるダイアログボックスで:自動的に「平均より上のセルをフォーマット」と検出されます。書式スタイルは、ドロップダウンの横をクリックして変更できます(例:色の塗りつぶしやカスタムフォーマット)。
  7. OKをクリックします。選択範囲内で平均以上のセルがハイライトされます。

Aspose.Cells for .NETを使用した平均以上の条件付き書式の追加方法

Aspose.Cellsは、Microsoft Excel 2007以降の条件付き書式をランタイムでセルにサポートしています。この例は、異なる属性セットによる平均以上の条件付き書式の演習を示しています。

private void TestAboveAverage()
{
// Instantiate a workbook object
Workbook book = new Workbook();
// Create a worksheet object and get the first worksheet
Worksheet _sheet = book.Worksheets[0];
AddAboveAverage(_sheet);
AddAboveAverage2(_sheet);
AddAboveAverage3(_sheet);
book.Save(filePath + "AboveAverage.xlsx");
}
// This method implements the AboveAverage conditional formatting type.
private void AddAboveAverage(Worksheet _sheet)
{
FormatConditionCollection conds = GetFormatCondition("A11:C12", Color.Tomato, _sheet);
int idx = conds.AddCondition(FormatConditionType.AboveAverage);
FormatCondition cond = conds[idx];
cond.Style.BackgroundColor = Color.Pink;
cond.Style.Pattern = BackgroundType.Solid;
}
// This method implements an AboveAverage conditional formatting type with some custom attributes.
private void AddAboveAverage2(Worksheet _sheet)
{
FormatConditionCollection conds = GetFormatCondition("A13:C14", Color.Empty, _sheet);
int idx = conds.AddCondition(FormatConditionType.AboveAverage);
FormatCondition cond = conds[idx];
cond.AboveAverage.IsAboveAverage = false;
cond.AboveAverage.IsEqualAverage = true;
cond.Style.BackgroundColor = Color.Pink;
cond.Style.Pattern = BackgroundType.Solid;
}
// This method implements an AboveAverage conditional formatting type with some custom attributes.
private void AddAboveAverage3(Worksheet _sheet)
{
FormatConditionCollection conds = GetFormatCondition("A15:C16", Color.Empty, _sheet);
int idx = conds.AddCondition(FormatConditionType.AboveAverage);
FormatCondition cond = conds[idx];
cond.AboveAverage.IsAboveAverage = false;
cond.AboveAverage.IsEqualAverage = true;
cond.AboveAverage.StdDev = 3;
cond.Style.BackgroundColor = Color.Pink;
cond.Style.Pattern = BackgroundType.Solid;
}
// This method adds formatted conditions.
private FormatConditionCollection GetFormatCondition(string cellAreaName, Color color, Worksheet _sheet)
{
// Adds an empty conditional formattings
int index = _sheet.ConditionalFormattings.Add();
// Get the formatted conditions
FormatConditionCollection formatConditions = _sheet.ConditionalFormattings[index];
// Get the cell area calling the custom GetCellAreaByName method
CellArea area = GetCellAreaByName(cellAreaName);
// Add the formatted conditions cell area.
formatConditions.AddArea(area);
// Call the custom FillCell method
FillCell(cellAreaName, color, _sheet);
// Return the formatted conditions
return formatConditions;
}
// This method specifies the cell shading color for the conditional formattings cellarea range.
private void FillCell(string cellAreaName, Color color, Worksheet _sheet)
{
CellArea area = GetCellAreaByName(cellAreaName);
int k = 0;
for (int i = area.StartColumn; i <= area.EndColumn; i++)
{
for (int j = area.StartRow; j <= area.EndRow; j++)
{
Cell c = _sheet.Cells[j, i];
if (!color.IsEmpty)
{
Style s = c.GetStyle();
s.ForegroundColor = color;
s.Pattern = BackgroundType.Solid;
c.SetStyle(s);
}
// Set some random values to the cells in the cellarea range
int value = j + i + k;
c.PutValue(value);
k++;
}
}
}
// This method specifies the CellArea range (start row, start col, end row, end col etc.)
// For the conditional formatting
internal static CellArea GetCellAreaByName(string s)
{
CellArea area = new CellArea();
string[] strCellRange = s.Replace("$", "").Split(':');
int column;
CellsHelper.CellNameToIndex(strCellRange[0], out area.StartRow, out column);
area.StartColumn = column;
if (strCellRange.Length == 1)
{
area.EndRow = area.StartRow;
area.EndColumn = area.StartColumn;
}
else
{
CellsHelper.CellNameToIndex(strCellRange[1], out area.EndRow, out column);
area.EndColumn = column;
}
return area;
}