轉(zhuǎn)帖|使用教程|編輯:王香|2019-04-22 16:23:23.000|閱讀 283 次
概述:數(shù)組公式是電子表格中功能最強(qiáng)大且未充分利用的計(jì)算功能之一,允許用戶使用更簡(jiǎn)單的計(jì)算替換數(shù)千個(gè)公式,同時(shí)提供相同的結(jié)果。例如,它們可用于輕松創(chuàng)建銷售表中的另一個(gè)自動(dòng)計(jì)算列,或創(chuàng)建一些過(guò)濾數(shù)據(jù)。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
數(shù)組公式是電子表格中功能最強(qiáng)大且未充分利用的計(jì)算功能之一,允許用戶使用更簡(jiǎn)單的計(jì)算替換數(shù)千個(gè)公式,同時(shí)提供相同的結(jié)果。例如,它們可用于輕松創(chuàng)建銷售表中的另一個(gè)自動(dòng)計(jì)算列,或創(chuàng)建一些過(guò)濾數(shù)據(jù)。使用數(shù)組公式的一些好處包括:
數(shù)組公式可以做得更多,但是本教程將重點(diǎn)介紹這些簡(jiǎn)單的示例,以便您開(kāi)始使用SpreadJS中的數(shù)組公式。
要下載本教程的示例zip,請(qǐng)單擊此處。
我們可以先添加javascript/css引用并初始化Spread實(shí)例:
<!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>
然后我們可以加載一個(gè)已經(jīng)有表格的預(yù)制工作簿:
spread.fromJSON(ArrayFormulaTest); var activeSheet = spread.getActiveSheet();
我們將添加的第一個(gè)數(shù)組公式是創(chuàng)建一個(gè)總列。通常,我們會(huì)為每個(gè)單元格創(chuàng)建一個(gè)公式,以將數(shù)量列乘以價(jià)格列。我們可以創(chuàng)建一個(gè)完成此工作的數(shù)組公式,而不是創(chuàng)建要填充的公式:
**= E3:E15 \* F3:F15**
這將返回一個(gè)值數(shù)組而不是一個(gè)值,該值將應(yīng)用于整個(gè)列。在SpreadJS中設(shè)置數(shù)組公式需要定義行,列,行計(jì)數(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ù)組公式的另一個(gè)用途是更容易地匯總數(shù)據(jù)。例如,您可能希望僅在滿足特定條件時(shí)將值添加到一起,這是使用常規(guī)公式無(wú)法輕松完成的。通常,您將使用IF語(yǔ)句,當(dāng)應(yīng)用于一系列單元格時(shí),它將返回正值和假值的數(shù)組。數(shù)組公式是在單個(gè)單元格中有效使用它的唯一方法。我們可以為此制作兩個(gè)表:賣方銷售和每個(gè)賣方按產(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表開(kāi)始。在這種情況下,我們將使用數(shù)組公式為每個(gè)特定賣家添加所有銷售。為了使公式更簡(jiǎn)單,我們可以繼續(xù)添加一些自定義名稱來(lái)使用:
activeSheet.addCustomName("Seller", "$A$3:$A$15", 0, 0); activeSheet.addCustomName("Total", "$G$3:$G$15", 0, 0);
然后我們像這樣定義數(shù)組公式:
=SUMIF(Seller, I4:I6,Total)
然后我們可以一次在所有三個(gè)單元格中設(shè)置該數(shù)組公式:
activeSheet.setArrayFormula(3, 9, 3, 1, "SUMIF(Seller, I4:I6,Total)");
Sales by Product表中的數(shù)組公式將類似,但在這種情況下,我們將按銷售的產(chǎn)品將每個(gè)賣家的總數(shù)相加,這可以使用如下的數(shù)組公式來(lái)完成:
**=SUMIFS(Total, Seller, \$I\$10:\$I\$12, Product, \$J\$9:\$L\$9)**
這將為表中的每個(gè)單元格定義:
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ù)組公式的幾個(gè)簡(jiǎn)單示例,但它們可以用于更多。現(xiàn)在,SpreadJS支持?jǐn)?shù)組公式,您可以輕松導(dǎo)入最高級(jí)的Excel文件。電子表格中更高級(jí)Excel功能的可能性是無(wú)窮無(wú)盡的。
純前端表格控件SpreadJS,是市面上布局與功能都與 Excel 高度類似的一款表格控件,全中文操作界面,適用于.NET、Java、移動(dòng)端等多個(gè)平臺(tái)的類 Excel 數(shù)據(jù)開(kāi)發(fā),備受華為、中通、民航飛行學(xué)院等國(guó)內(nèi)知名企業(yè)客戶青睞。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn