Ange formel för namngivet område

Ange formel för namngivet område

Som Excel-programmet tillhandahåller Aspose.Cells API:er möjligheten att ange en formel för ett namngivet område medan du använder dess RefersTo egenskap. Det finns många användbarhetsscenario för denna funktion, några av dem detaljeras nedan.

Ange enkel formel för namngivet område

Enkel formel skulle kunna vara en hänvisning till en annan cell i samma (eller annan) kalkylblad. Följande exempel skapar ett namngivet område i en ny kalkyl och anger dess hänvisning till en annan cell.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create an instance of Workbook
Workbook book = new Workbook();
// Get the WorksheetCollection
WorksheetCollection worksheets = book.Worksheets;
// Add a new Named Range with name "NewNamedRange"
int index = worksheets.Names.Add("NewNamedRange");
// Access the newly created Named Range
Name name = worksheets.Names[index];
// Set RefersTo property of the Named Range to a formula. Formula references another cell in the same worksheet
name.RefersTo = "=Sheet1!$A$3";
// Set the formula in the cell A1 to the newly created Named Range
worksheets[0].Cells["A1"].Formula = "NewNamedRange";
// Insert the value in cell A3 which is being referenced in the Named Range
worksheets[0].Cells["A3"].PutValue("This is the value of A3");
// Calculate formulas
book.CalculateFormula();
// Save the result in XLSX format
book.Save(dataDir + "output_out.xlsx");

Ange komplex formel för namngivet område

En komplex formel kan vara vad som helst, till exempel en dynamiskt område eller en formel som sträcker sig över flera celler i olika kalkylblad. Följande exempel skapar ett dynamiskt område med hjälp av INDEX-funktionen för att hämta värdet från en lista baserat på dess plats.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create an instance of Workbook
Workbook book = new Workbook();
// Get the WorksheetCollection
WorksheetCollection worksheets = book.Worksheets;
// Add a new Named Range with name "data"
int index = worksheets.Names.Add("data");
// Access the newly created Named Range from the collection
Name data = worksheets.Names[index];
// Set RefersTo property of the Named Range to a cell range in same worksheet
data.RefersTo = "=Sheet1!$A$1:$A$10";
// Add another Named Range with name "range"
index = worksheets.Names.Add("range");
// Access the newly created Named Range from the collection
Name range = worksheets.Names[index];
// Set RefersTo property to a formula using the Named Range data
range.RefersTo = "=INDEX(data,Sheet1!$A$1,1):INDEX(data,Sheet1!$A$1,9)";
// Save the workbook
book.Save(dataDir + "output_out.xlsx");

Här är ytterligare ett exempel som använder ett namngivet område för att summera värden från 2 celler i olika kalkylblad.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Create an instance of Workbook
Workbook book = new Workbook();
// Get the WorksheetCollection
WorksheetCollection worksheets = book.Worksheets;
// Insert some data in cell A1 of Sheet1
worksheets["Sheet1"].Cells["A1"].PutValue(10);
// Add a new Worksheet and insert a value to cell A1
worksheets[worksheets.Add()].Cells["A1"].PutValue(10);
// Add a new Named Range with name "range"
int index = worksheets.Names.Add("range");
// Access the newly created Named Range from the collection
Name range = worksheets.Names[index];
// Set RefersTo property of the Named Range to a SUM function
range.RefersTo = "=SUM(Sheet1!$A$1,Sheet2!$A$1)";
// Insert the Named Range as formula to 3rd worksheet
worksheets[worksheets.Add()].Cells["A1"].Formula = "range";
// Calculate formulas
book.CalculateFormula();
// Save the result in XLSX format
book.Save(dataDir + "output_out.xlsx");