轉(zhuǎn)帖|使用教程|編輯:王香|2019-04-22 16:23:23.000|閱讀 283 次
概述:數(shù)組公式是電子表格中功能最強大且未充分利用的計算功能之一,允許用戶使用更簡單的計算替換數(shù)千個公式,同時提供相同的結(jié)果。例如,它們可用于輕松創(chuàng)建銷售表中的另一個自動計算列,或創(chuàng)建一些過濾數(shù)據(jù)。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
數(shù)組公式是電子表格中功能最強大且未充分利用的計算功能之一,允許用戶使用更簡單的計算替換數(shù)千個公式,同時提供相同的結(jié)果。例如,它們可用于輕松創(chuàng)建銷售表中的另一個自動計算列,或創(chuàng)建一些過濾數(shù)據(jù)。使用數(shù)組公式的一些好處包括:
數(shù)組公式可以做得更多,但是本教程將重點介紹這些簡單的示例,以便您開始使用SpreadJS中的數(shù)組公式。
要下載本教程的示例zip,請單擊此處。
我們可以先添加javascript/css引用并初始化Spread實例:
<!DOCTYPE html> <html xmlns="//www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title>SJS Array Formulas</title> <link href="//cdn.grapecity.com/spreadjs/hosted/css/gc.spread.sheets.excel2013white.12.0.5.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="//cdn.grapecity.com/spreadjs/hosted/scripts/gc.spread.sheets.all.12.0.5.min.js"></script> <script type="text/javascript" src="ArrayFormulaTest.js"></script> <script> window.onload = function () { var spread = new GC.Spread.Sheets.Workbook(document.getElementById("spreadSheet"), { sheetCount: 1 }); } </script> </head> <body> <div id="spreadSheet" style="width: 825px; height: 800px; border: 1px solid gray"></div> </body> </html>
然后我們可以加載一個已經(jīng)有表格的預制工作簿:
spread.fromJSON(ArrayFormulaTest); var activeSheet = spread.getActiveSheet();
我們將添加的第一個數(shù)組公式是創(chuàng)建一個總列。通常,我們會為每個單元格創(chuàng)建一個公式,以將數(shù)量列乘以價格列。我們可以創(chuàng)建一個完成此工作的數(shù)組公式,而不是創(chuàng)建要填充的公式:
**= E3:E15 \* F3:F15**
這將返回一個值數(shù)組而不是一個值,該值將應用于整個列。在SpreadJS中設置數(shù)組公式需要定義行,列,行計數(shù),列數(shù)和公式,如下所示:
activeSheet.setArrayFormula(2, 6, 13, 1, "E3:E15*F3:F15");
然后我們可以格式化該新列:
spread.options.allowUserEditFormula = true; activeSheet.getCell(1, 6).value("Total"); activeSheet.setFormula(15, 6, "SUM(G3:G15)"); activeSheet.getRange(1, 6, 15, 1).formatter("$#,#");
使用數(shù)組公式可以大大減少為每行創(chuàng)建總列通常所需的公式數(shù)量。
數(shù)組公式的另一個用途是更容易地匯總數(shù)據(jù)。例如,您可能希望僅在滿足特定條件時將值添加到一起,這是使用常規(guī)公式無法輕松完成的。通常,您將使用IF語句,當應用于一系列單元格時,它將返回正值和假值的數(shù)組。數(shù)組公式是在單個單元格中有效使用它的唯一方法。我們可以為此制作兩個表:賣方銷售和每個賣方按產(chǎn)品銷售:
activeSheet.getCell(1, 8).value("Sales by Seller"); activeSheet.getCell(2, 8).value("Seller"); activeSheet.getCell(2, 9).value("Total"); activeSheet.getCell(3, 8).value("Bob"); activeSheet.getCell(4, 8).value("Chris"); activeSheet.getCell(5, 8).value("Jill"); activeSheet.getCell(7, 8).value("Sales by Product"); activeSheet.getCell(8, 8).value("Seller"); activeSheet.getCell(8, 9).value("Spread"); activeSheet.getCell(8, 10).value("Wijmo"); activeSheet.getCell(8, 11).value("C1 Studio"); activeSheet.getCell(9, 8).value("Bob"); activeSheet.getCell(10, 8).value("Chris"); activeSheet.getCell(11, 8).value("Jill");
我們可以從Sales by Seller表開始。在這種情況下,我們將使用數(shù)組公式為每個特定賣家添加所有銷售。為了使公式更簡單,我們可以繼續(xù)添加一些自定義名稱來使用:
activeSheet.addCustomName("Seller", "$A$3:$A$15", 0, 0); activeSheet.addCustomName("Total", "$G$3:$G$15", 0, 0);
然后我們像這樣定義數(shù)組公式:
=SUMIF(Seller, I4:I6,Total)
然后我們可以一次在所有三個單元格中設置該數(shù)組公式:
activeSheet.setArrayFormula(3, 9, 3, 1, "SUMIF(Seller, I4:I6,Total)");
Sales by Product表中的數(shù)組公式將類似,但在這種情況下,我們將按銷售的產(chǎn)品將每個賣家的總數(shù)相加,這可以使用如下的數(shù)組公式來完成:
**=SUMIFS(Total, Seller, \$I\$10:\$I\$12, Product, \$J\$9:\$L\$9)**
這將為表中的每個單元格定義:
activeSheet.addCustomName("Product", "$B$3:$B$15", 0, 0); activeSheet.setArrayFormula(9, 9, 3, 3, "SUMIFS(Total, Seller, $I$10:$I$12, Product, $J$9:$L$9)");
這些只是數(shù)組公式的幾個簡單示例,但它們可以用于更多。現(xiàn)在,SpreadJS支持數(shù)組公式,您可以輕松導入最高級的Excel文件。電子表格中更高級Excel功能的可能性是無窮無盡的。
純前端表格控件SpreadJS,是市面上布局與功能都與 Excel 高度類似的一款表格控件,全中文操作界面,適用于.NET、Java、移動端等多個平臺的類 Excel 數(shù)據(jù)開發(fā),備受華為、中通、民航飛行學院等國內(nèi)知名企業(yè)客戶青睞。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn