Revision 124557 of "មៃក្រូសូហ្វអ៊ិសេល" on kmwiki

{{Infobox software
|                   logo = [[ឯកសារ:Microsoft Excel 2010 icon.png|64px|Microsoft Office Excel Icon]]
|             screenshot = [[ឯកសារ:Excel 2010.png|300px]]
|                caption = Microsoft Office Excel 2010 running on [[Windows 7]]
|              developer = [[Microsoft]] Corporation
| latest_release_version = 2010 (14.0.4760.1000)<!-- Note: This is the final Excel 2010 release version. Do not synchronize with monthly Excel updates/patches. -->
|    latest_release_date = {{Start date and age|2010|June|15}}
|       operating_system = [[Microsoft Windows]]
|                  genre = [[Spreadsheet]]
|                license = [[Proprietary software|Proprietary]] [[commercial software]]
|                website = {{URL|http://office.microsoft.com/en-us/excel}}
}}
{{Infobox software
|                   name = Microsoft Excel for Mac
|                   logo = [[ឯកសារ:Microsoft Excel 2011 Icon.png|64px]]
|             screenshot = [[ឯកសារ:Microsoft Excel for Mac 2011.png|300px]]
|                caption = Microsoft Excel for Mac 2011 running on [[Mac OS X Snow Leopard]]
|              developer = [[Microsoft]] Corporation
| latest_release_version = 2011 (14.1.0.100825)<!-- Note: This is the final Excel 2011 release version. Do not synchronize with monthly Excel updates/patches. -->
|    latest_release_date = {{release date and age|2010|10|26}}
| latest_preview_version = 
|    latest_preview_date = 
|       operating_system = [[Mac OS X]]
|                  genre = [[Spreadsheet]]
|                license = [[Proprietary software|Proprietary]] [[commercial software]]
|                website = {{URL|http://www.microsoft.com/mac/excel}}
}}

'''Microsoft Excel''' is a [[commercial software|commercial]] [[spreadsheet]] application written and distributed by [[Microsoft]] for [[Microsoft Windows]] and [[Mac OS X]]. It features calculation, graphing tools, [[pivot table]]s, and a macro programming language called [[Visual Basic for Applications]]. It has been a very widely applied spreadsheet for these platforms, especially since version 5 in 1993, and it has almost completely replaced [[Lotus 1-2-3]] as the industry standard for spreadsheets. Excel forms part of [[Microsoft Office]]. The current versions are 2010 for [[Microsoft Windows]] and 2011 for [[Mac OS X]].

== Basic operation ==
{{Main|Spreadsheet}}
Microsoft Excel has the basic features of all spreadsheets<ref name="Harvey">
{{cite book |title=Excel 2007 For Dummies |author=Harvey, Greg |isbn=0-470-03737-7 |publisher=Wiley |year=2006 |url=http://books.google.com/?id=i5ffgL9KEg8C}}
</ref>, using a grid of ''cells'' arranged in numbered ''rows'' and letter-named ''columns'' to organize data manipulations like arithmetic operations. It has a battery of supplied functions to answer statistical, engineering and financial needs. In addition, it can display data as line graphs, histograms and charts, and with a very limited three-dimensional graphical display. It allows sectioning of data to view its dependencies on various factors from different perspectives (using ''[[pivot table]]s'' and the ''scenario manager''<ref name="G_Harvey">
{{cite book |title=Excel 2007 Workbook for Dummies |url=http://books.google.com/?id=9PCz-uf-bjkC&pg=PA296 |year=2007 |edition=2nd |author=Harvey, Greg |publisher=Wiley |isbn=0-470-16937-0 |page=296 ''ff'' }}
</ref>). It has a programming aspect, ''Visual Basic for Applications'', allowing the user to employ a wide variety of numerical methods, for example, for solving differential equations of mathematical physics,<ref name="deLevie">
{{cite book |title=Advanced Excel for scientific data analysis |author=de Levie, Robert |publisher=Oxford University Press |year=2004 |isbn=0-19-515275-1 |url=http://books.google.com/?id=IAnO-2qVazsC&printsec=frontcove }}
</ref><ref name="Bourg">
{{cite book |title=Excel scientific and engineering cookbook |author=Bourg, David M. |publisher=O'Reilly |year=2006 |isbn=0-596-00879-1 |url=http://books.google.com/?id=vQaGBMGaWI4C&printsec=frontcover }}
</ref> and then reporting the results back to the spreadsheet. It also has a variety of interactive features allowing user interfaces that can completely hide the spreadsheet from the user, so the spreadsheet presents itself as a so-called ''application'', or ''decision support system'' (DSS), via a custom-designed user interface, for example, a stock analyzer,<ref name="Holsapple">
{{cite book |title=Handbook on Decision Support Systems 1: Basic Themes |author=Şeref, Michelle M. H.; and Ahuja, Ravindra K. |editor=Burstein, Frad; and Holsapple, Clyde W. |chapter=§4.2 A portfolio management and optimization spreadsheet DSS |url=http://books.google.com/?id=q_3sRkRKZQwC&pg=PA288 |isbn=3-540-48712-3 |year=2008 |publisher=Springer }}
</ref> or in general, as a  design tool that asks the user questions and provides answers and reports.<ref name="Harshbarger">
{{cite book |title=Microsoft Excel 97 Developer's Handbook |author=Wells, Eric; and Harshbarger, Steve |year=1997 |publisher=Microsoft Press |isbn=1-57231-359-5 |url=http://books.google.com/?id=LRZnWl-LvwsC }} Excellent examples are developed that show just how applications can be designed.
</ref><ref name="Horrell">
{{cite book |title=Data, statistics, and decision models with Excel |author=Harnett, Donald L.; and Horrell, James F. |year=1998 |publisher=Wiley |isbn=0-471-13398-1 |url=http://books.google.com/?id=l0xiQgAACAAJ }}
</ref><ref name="Winston">
{{cite book |title=Developing spreadsheet-based decision support systems: using Excel and VBA |author=Şeref, Michelle M. H.; Ahuja, Ravindra K.; and Winston, Wayne L. |year=2007 |publisher=Dynamic Ideas |isbn=0-9759146-5-0 |url=https://www.dynamic-ideas.com/Books/097591465/xls-dss.html }}
</ref> In a more elaborate realization, an Excel application can automatically poll external databases and measuring instruments using an update schedule,<ref name="acquisition">
Some form of [[data acquisition]] hardware is required. See, for example, {{cite book |title=Data acquisition techniques using PCs |author=Austerlitz, Howard |url=http://books.google.com/?id=iKKVOJYqi6YC&pg=PA281 |isbn=0-12-068377-6 |year=2003 |publisher=Academic Press |edition=2nd |page=281 ''ff'' }}
</ref> analyze the results, make a [[Microsoft Word|Word]] report or [[Microsoft PowerPoint|Power Point]] slide show, and e-mail these presentations on a regular basis to a list of participants.

[[ឯកសារ:Subroutine in Excel.PNG|thumb|300px|Subroutine in Excel calculates the square of named column variable ''x'' read from the spreadsheet, and writes it into the named column variable ''y''.]]
[[ឯកសារ:Excel chart.PNG|thumb|right|300px|[[Graph of a function|Graph]] made using Microsoft Excel]]

Microsoft allows for a number of optional command-line switches to control the manner in which Excel starts.<ref>
{{cite web |url=http://support.microsoft.com/kb/291288 |title=Description of the startup switches for Excel |date=2007-05-07 |work=Microsoft Help and Support |publisher=Microsoft Support |accessdate=2010-12-14 |quote=Microsoft Excel accepts a number of optional switches that you can use to control how the program starts. This article lists the switches and provides a description of each switch. }}
</ref>

== VBA programming ==
{{Main|Visual basic for applications}}
The Windows version of Excel supports programming through Microsoft's [[Visual Basic for Applications]] (VBA), which is a dialect of [[Visual Basic]]. Programming with VBA allows spreadsheet manipulation that is awkward or impossible with standard spreadsheet techniques. Programmers may write code directly using the Visual Basic Editor (VBE), which includes a window for writing code, debugging code, and code module organization environment. The user can implement numerical methods as well as automating tasks such as formatting or data organization in VBA<ref name="Press">
For example, by converting to Visual Basic the recipes in {{cite book |title=Numerical recipes: the art of scientific computing |author=Press, William H. Press; Teukolsky, Saul A.; Vetterling, William T.; and Flannery, Brian P. |year=2007 |publisher=Cambridge University Press |isbn=0-521-88068-8 |edition=3rd |url=http://books.google.com/?id=1aAOdzK3FegC&printsec=frontcover }} Code conversion to Basic from Fortran probably is easier than from C++, so the 2nd edition (isbn=0521437210) may be easier to use, or the Basic code implementation of the first edition: {{cite book |title=Numerical recipes: routines and examples in BASIC |author=Sprott, Julien C. |year=1991 |publisher=Cambridge University Press |isbn=0-521-40689-7 |url=http://books.google.com/?id=3-BfpBw7AqQC }}.
</ref> and guide the calculation using any desired intermediate results reported back to the spreadsheet.

VBA was removed from Mac Excel 2008, as the developers did not believe that a timely release would allow porting the VBA engine natively to Mac OS X. VBA was restored in the next version, Mac Excel 2011.

A common and easy way to generate VBA code is by using the [[Macro (computer science)|Macro]] Recorder.<ref name="Walkenbach">However an increasing proportion of Excel functionality is not captured by the Macro Recorder leading to largely useless macros.  Compatibility among multiple versions of Excel are also a downfall of this method.  A macro recorded in Excel 2010 may not work in Excel 2003 or older.  This is most common when changing colors and formatting of cells.

{{cite book |title=Excel 2007 VBA Programming for Dummies |author=Walkenbach, John |url=http://books.google.com/?id=2IBbPiP3wOIC&pg=PA79 |chapter= Chapter 6: Using the Excel macro recorder |page=79 ''ff'' |edition=Revised by Jan Karel Pieterse |isbn=0-470-04674-0 |year=2007  |publisher=Wiley }}
</ref>
The Macro Recorder records actions of the user and generates VBA code in the form of a macro. These actions can then be repeated automatically by running the macro. The macros can also be linked to different trigger types like keyboard shortcuts, a command button or a graphic. The actions in the macro can be executed from these trigger types or from the generic toolbar options. The VBA code of the macro can also be edited in the VBE. Certain features such as loop functions and screen prompts by their own properties, and some graphical display items, cannot be recorded, but must be entered into the VBA module directly by the programmer. Advanced users can employ user prompts to create an interactive program, or react to events such as sheets being loaded or changed.

Users should be aware that using Macro Recorded code may not be  compatible from one version of Excel to another.  Some code that is used in Excel 2010 can not be used in Excel 2003.  Making a Macro that changes the cell colors and making changes to other aspects of cells may not be backward compatible.    

VBA code interacts with the spreadsheet through the Excel ''Object Model'',<ref name="Walkenbach2">
{{cite book |title=cited work |author=Walkenbach, John |url=http://books.google.com/?id=2IBbPiP3wOIC&pg=PA53 |chapter= Chapter 4: Introducing the Excel object model |page=53 ''ff'' |isbn=0-470-04674-0 |date=2007-02-02 }}
</ref> a vocabulary identifying spreadsheet objects, and a set of supplied functions or ''methods'' that enable reading and writing to the spreadsheet and interaction with its users (for example, through custom toolbars or ''command bars'' and ''message boxes''). User-created VBA [[subroutine]]s execute these actions and operate like macros generated using the macro recorder, but are more flexible and efficient.

== Charts ==
Excel supports [[chart]]s, [[Graph of a function|graphs]] or [[histogram]]s generated from specified groups of cells. The generated graphic component can either be embedded within the current sheet, or added as a separate object.

These displays are dynamically updated if the content of cells change. For example, suppose that the important design requirements are displayed visually; then, in response to a user's change in trial values for parameters, the curves describing the design change shape, and their points of intersection shift, assisting the selection of the best design.

== Using other Windows applications ==
{{Expand section|date=April 2010}}
Windows applications such as [[Microsoft Access]] and [[Microsoft Word]], as well as Excel as can communicate with each other and use each others' capabilities.
The most common are 
[[Dynamic Data Exchange]]: although strongly deprecated by Microsoft, this is a common method to send data between applications running on Windows, with official MS publications referring to it as "the protocol from hell".<ref name="Newcomer" /> As the name suggests, it allows applications to supply data to others for calculation and display. It is very common in financial markets, being used to connect to important financial data services such as [[Bloomberg L.P.|Bloomberg]] and [[Reuters]].

[[Object Linking and Embedding|OLE]] Object Linking and Embedding: allows a Windows application to control another to enable it to format or calculate data. This may take on  the form of "embedding" where an application uses another to handle as task that it is more suited to, for example a [[Powerpoint]] presentation may be embedded in an Excel spreadsheet or vice versa.<ref name="Schmalz">
{{cite book |title=Integrating Excel and Access |chapter=Chapter 5: Using Access VBA to automate Excel |author=Schmalz, Michael |url=http://books.google.com/?id=SGH10fniqmsC&pg=PT71 |isbn=0-596-00973-9 |publisher=O'Reilly Media, Inc |year=2006 }}

{{cite book |title=Integrating Excel and Access |chapter=Chapter 5: Using Access VBA to automate Excel |author=Schmalz, Michael |url=http://books.google.com/?id=SGH10fniqmsC&pg=PT71 |isbn=0-596-00973-9 |publisher=O'Reilly Media, Inc |year=2006 }}
</ref><ref name="Cornell">
{{cite book |title=Excel as Your Database |author=Cornell, Paul |chapter=Chapter 5: Connect to other databases |page=117 ''ff'' |url=http://books.google.com/?id=qjkglmBy_l4C&pg=PA117 |isbn=1-59059-751-6 |year=2007 |publisher=Apress }}
</ref><ref name="DeMarco2">
{{cite book |title=Pro Excel 2007 VBA |chapter=Excel's data import tools |page=43 ''ff'' |url=http://books.google.com/?id=gtPQMxO8XuoC&pg=PA43 |publisher=Apress |author=DeMarco, Jim |isbn=1-59059-957-8 |year=2008 }}
</ref><ref name="Harts">
{{cite book |title=Microsoft Office 2007 Business Intelligence: Reporting, Analysis, and Measurement from the Desktop |author=Harts, Doug |url=http://books.google.com/?id=MVFldXVKpj8C&pg=PA171 |year=2007 |chapter=Importing Access data into Excel 2007 |isbn=0-07-149424-3 |publisher=McGraw-Hill Professional }}
</ref>

== Using external data ==
{{Expand section|date=February 2010}}
Excel users can access external [[data source]]s via Microsoft Office features such as (for example) <code>.odc</code> connections built with the Office Data Connection file format. Excel files themselves may be updated using a Microsoft supplied [[ODBC]] driver.

Excel can accept data in real time through several programming interfaces, which allow it to communicate with many data sources such as Bloomberg and Reuters (through addins such as [[Power Plus Pro]]).

*DDE : "Dynamic Data Exchange" uses the message passing mechanism in Windows to allow data to flow between Excel and other applications. Although it is easy for users to create such links, programming such links reliably is so difficult that Microsoft, the creators of the system, officially refer to it as "the protocol from hell".<ref name="Newcomer">[http://www.drdobbs.com/184409151?pgno=3 Newcomer, Joseph M.; "Faking DDE with Private Servers", Dr. Dobb's, january 1st, 1993]</ref> In spite of its many issues DDE remains the most common way for data to reach traders in financial markets.

*Network DDE Extended the protocol to allow spreadsheets on different computers to exchange data. Given the view above, it is not surprising that in Vista, Microsoft no longer supports the facility.<ref>[http://msdn.microsoft.com/en-us/library/aa365135%28VS.85%29.aspx Microsoft discontinues support for network DDE]</ref>

*Real Time Data : RTD although in many ways technically superior to DDE, has been slow to gain acceptance, since it requires non-trivial programming skills, and when first released was neither adequately documented nor supported by the major data vendors.<ref>[http://support.microsoft.com/kb/289150 How to set up RTD in Excel]</ref><ref>
{{cite book |last=DeMarco |first=Jim |title=Pro Excel 2007 VBA |year=2008 |publisher=Apress |location= Berkeley, CA |isbn=978-1-59059-957-0 |url=http://books.google.com/?id=gtPQMxO8XuoC&pg=PA225 |page=225 |quote= External data is accessed through a connection file, such as an Office Data Connection (ODC) file (.odc) }}
</ref>

Alternatively, [[Microsoft Query by Example|Microsoft Query]] provides [[Open Database Connectivity|ODBC-based]] browsing within Microsoft Excel.<ref>
{{cite book |author=Bullen, Stephen; Bovey, Rob; and Green, John |title=Professional Excel Development |year=2009 |publisher= Addison-Wesley |location= Upper Saddle River, NJ |isbn=0-321-50879-3 |url=http://books.google.com/?id=VnegO0pMYlIC&pg=PA665 |page=665 |edition=2nd |quote=To create a robust solution, we always have to include some VBA code ... }}
</ref><ref>
{{cite web |url= http://proc.isecon.org/2000/602/ISECON.2000.Wehrs.pdf |title=An Applied DSS Course Using Excel and VBA: IS and/or MS? |first=Wehrs |last=William |year=2000 |work= The Proceedings of ISECON (Information System Educator Conference) |pages=4 |format=PDF |accessdate=2010-02-05 |quote=Microsoft Query is a data retrieval tool (i.e. ODBC browser) that can be employed within Excel 97. It allows a user to create and save queries on external relational databases for which an ODBC driver is available. }}
</ref><ref>[http://office.microsoft.com/en-us/excel/HA100996641033.aspx Use Microsoft Query to retrieve external data]</ref>

== Quirks ==
Other errors specific to Excel include [[#Statistical functions|misleading statistics functions]], [[#Excel MOD function error|mod function errors]], [[#Date problems|date limitations]] and the Excel 2007 error.<ref name="fix">[http://support.microsoft.com/kb/943075/ Fix of display error for a number from 65535.99999999995 to 65536]</ref> 

{{see|Spreadsheet Shortcomings}}

=== Statistical functions ===
The accuracy and convenience of statistical tools in Excel has been criticized,<ref>{{cite journal |last=McCullough |first=Bruce D. |coauthors=Wilson, Berry |title=On the accuracy of statistical procedures in Microsoft Excel 2000 and Excel XP |journal=Computational Statistics & Data Analysis |year=2002 |volume=40 |issue=4 |pages=713–721 |doi=10.1016/S0167-9473(02)00095-6 }}</ref><ref>{{cite journal |last=McCullough |first=Bruce D. |coauthors=Heiser, David A. |title=On the accuracy of statistical procedures in Microsoft Excel 2007 |journal=Computational Statistics & Data Analysis |year=2008 |volume=52 |issue=10 |pages=4570–4578 |doi=10.1016/j.csda.2008.03.004 }}</ref><ref>{{cite journal |last=Yalta |first=A. Talha |title=The accuracy of statistical distributions in Microsoft Excel 2007 |journal=Computational Statistics & Data Analysis |year=2008 |volume=52 |issue=10 |pages=4579–4586 |doi=10.1016/j.csda.2008.03.005 }}</ref><ref>{{cite web|url=http://www-unix.oit.umass.edu/~evagold/excel.html |title=Using Excel for Statistical Data Analysis&nbsp;— Caveats |publisher= University of Massachusetts School of Public Health |last=Goldwater |first=Eva |accessdate=2008-11-10 }}</ref><ref name="Heiser">
{{cite web |url=http://www.daheiser.info/excel/frontpage.html |title=Microsoft Excel 2000, 2003 and 2007 faults, problems, workarounds and fixes |first=David A. |last=Heiser  |year=2008 |accessdate=2010-04-08 }}
</ref> as mishandling missing data, as returning incorrect values due to inept handling of round-off and large numbers, as only selectively updating calculations on a spreadsheet when some cell values are changed, and as having a limited set of statistical tools. Microsoft has announced some of these issues are addressed in Excel 2010.<ref name="corrections">
[http://blogs.msdn.com/excel/archive/2009/09/10/function-improvements-in-excel-2010.aspx Function improvements in Excel 2010] Comments are provided from readers that may illuminate some remaining problems.
</ref>

=== Graphing ===
In the Microsoft Excel 2007, menus related to graphs and graph formatting have been changed.  Some common activities in using graphs are less transparent than previously. For example, to add a curve to a graph, one can right click on the graph and choose "select data" from the drop-down menu, or use the "chart tools/design" tab. However, when there are other drop-down menus open, this menu doesn't appear and the "select data" option is greyed out (unavailable) from the toolbar. That facet of the menu system must be "discovered" by the user.

=== Excel MOD function error ===
Excel has issues with [[modulo operation]]s. In the case of excessively large results, Excel will return the error warning '''''<tt>#NUM!</tt>''''' instead of an answer.<ref>{{cite web |url=http://support.microsoft.com/kb/119083 |title=XL: MOD() Function Returns #NUM! Error Value |publisher=Microsoft |date=January 19, 2007 |accessdate=2008-11-10 }}</ref><ref>{{cite web |url=http://www.bygsoftware.com/issues/modbug.html |title=The MOD bug |publisher=Byg Software |accessdate=2008-11-10 }}</ref>

=== Date problems ===
Excel includes January 0, 1900 and February 29, 1900, incorrectly treating 1900 as a [[leap year]].<ref>{{cite web |url=http://support.microsoft.com/kb/214058/EN-US/ |title=Days of the week before March 1, 1900 are incorrect in Excel |publisher=Microsoft |accessdate=2008-11-10 }}</ref><ref>{{cite web |url=http://support.microsoft.com/kb/214326/en-us |title=Excel 2000 incorrectly assumes that the year 1900 is a leap year |publisher=Microsoft |accessdate=2008-11-10 }}</ref> The bug originated from [[Lotus 1-2-3]], and was purposely implemented in Excel for the purpose of [[backward compatibility]].<ref>{{cite web |url=http://www.joelonsoftware.com/items/2006/06/16.html |title=My First BillG Review |first=Joel |last=Spolsky |publisher=Joel on Software |date=June 16, 2006 |accessdate=2008-11-10 }}</ref> This legacy has later been carried over into [[Office Open XML]] file format.<ref name="The Contradictory Nature of OOXML">{{cite web |url=http://www.consortiuminfo.org/standardsblog/article.php?story=20070117145745854 |title=The Contradictory Nature of OOXML |publisher=ConsortiumInfo.org }}</ref> Excel also does not support dates before 1900.<ref>{{cite web|url=http://support.microsoft.com/kb/182247 |title=Negative date and time value are displayed as pound signs (###) in Excel |publisher=Micrsoft |accessdate=2012-03-26 }}</ref>

=== Filenames ===
Microsoft Excel will not open two documents with the same name and instead will display the following error:
:A document with the name '%s' is already open. You cannot open two documents with the same name, even if the documents are in different folders. To open the second document, either close the document that is currently open, or rename one of the documents.<ref>[http://www.thehindubusinessline.com/ew/2004/08/02/stories/2004080200260401.htm The Hindu Business Line : Trouble with macros<!-- Bot generated title -->]</ref>
The reason is for calculation ambiguity with linked cells. If there is a cell ='[Book1.xlsx]Sheet1'!$G$33, and there are two books named "Book1" open, there is no way to tell which one the user means.<ref>[http://blogs.msdn.com/b/excel/archive/2009/01/07/why-can-t-i-open-two-files-with-the-same-name.aspx Microsoft Excel - Why Can't I Open Two Files With the Same Name?<!-- Bot generated title -->]</ref>

=== Currency Symbols ===
Microsoft Excel handles foreign currency symbols poorly.  It does not include commonly used symbols such as A$ for Australian dollars, C$ for Canadian dollars, NZ$ for New Zealand dollars, US$ for United States dollars, and so on - giving only $ for each.  This makes accounting exercises using different dollars unnecessarily obtuse - one ends up having to use CAD, USD etc. instead of the $ symbol with the appropriate modifier.{{cn|date=June 2012}}

== Numeric precision ==
{{main|Numeric precision in Microsoft Excel}}
[[ឯកសារ:Excel fifteen figure.PNG|thumb|390px|Excel maintains 15 figures in its numbers, but they are not always accurate: the bottom line should be the same as the top line.]]

Despite the use of 15-figure precision, Excel can display many more figures (up to thirty) upon user request. But the displayed figures are ''not'' those actually used in its computations, and so, for example, the difference of two numbers may differ from the difference of their displayed values. Although such departures are usually beyond the 15th decimal, exceptions do occur, especially for very large or very small numbers. Serious errors can occur if decisions are made based upon automated comparisons of numbers (for example, using the Excel ''If'' function), as equality of two numbers can be unpredictable.

In the figure the fraction 1/9000 is displayed in Excel. Although this number has a decimal representation that is an infinite string of ones, Excel displays only the leading 15 figures. In the second line, the number one is added to the fraction, and again Excel displays only 15 figures. In the third line, one is subtracted from the sum using Excel. Because the sum in the second line has only eleven 1's after the decimal, the difference when 1 is subtracted from this displayed value is three 0's followed by a string of eleven 1's. However, the difference reported by Excel in the third line is three 0's followed by a string of ''thirteen'' 1's and two extra erroneous digits. Thus, the numbers Excel calculates with to obtain the third line are ''not'' the numbers that it displays in the first two lines. Moreover, the error in Excel's answer is not just [[round-off error]].

Excel works with a modified 1985 version of the [[IEEE 754-2008|IEEE 754 specification]].<ref name="microsoft_spec">
Microsoft's overview is found at: {{cite web |url=http://support.microsoft.com/kb/78113/en-us |title=Floating-point arithmetic may give inaccurate results in Excel |publisher=Microsoft support |work=Revision 8.2 ; article ID: 78113 |date=June 30, 2010 |accessdate=2010-07-02 }}
</ref> Excel's implementation involves an amalgam of truncations and conversions between binary and decimal representations, leading to accuracy that sometimes is better than one would expect from simple fifteen digit precision, and sometimes much worse.  See the main article for details.

Besides accuracy in user computations, the question of accuracy in Excel-provided functions may be raised. Particularly in the arena of statistical functions, Excel has been criticized for sacrificing accuracy for speed of calculation.<ref name="Altman">
{{cite book |title=Numerical issues in statistical computing for the social scientist |last1=Altman |first1=Micah|authorlink1=Micah Altman |last2=Gill |first2=Jeff |link2=Jeff Gill |last3=McDonald |first3=Michael |year=2004 |publisher=Wiley-IEEE |isbn=0-471-23633-0 |url=http://books.google.com/?id=j_KevqVO3zAC&pg=PA12 |chapter=§2.1.1 Revealing example: Computing the coefficient standard deviation |page=12 }}
</ref><ref name="deLevie2">
{{cite book |first=Robert |last=de Levie |title=''cited work'' |isbn=0-19-515275-1 |year=2004 |pages=45–46 }}
</ref>

As many calculations in Excel are executed using [[Visual basic for applications|VBA]], an additional issue is the accuracy of VBA, which varies with variable type and user-requested precision.<ref name="John_Walkenbach_0">
{{cite book |title=Excel 2010 Power Programming with VBA |chapter=Defining data types |pages=198 ''ff'' and Table 8–1 |isbn=0-470-47535-8 |first=John |last=Walkenbach |year=2010 |publisher=Wiley |url=http://books.google.com/?id=dtSdrjjVXrwC&pg=PA198 }}
</ref>

== History ==
=== Excel 1.0, 1.5, 2.x ===
Microsoft originally marketed a spreadsheet program called [[Multiplan]] in 1982. Multiplan became very popular on [[CP/M]] systems, but on [[MS-DOS]] systems it lost popularity to [[Lotus 1-2-3]]. Microsoft released the first version of Excel for the Macintosh in 30 September 1985, and the first Windows version was 2.05 (to synchronize with the Macintosh version 2.2) in November 1987.<ref>{{cite book |url=http://books.google.com/?id=Vi8EAAAAMBAJ&lpg=PA30&dq=macintosh%20spreadsheet%20arrow%20keys%20multiplan&pg=PA30#v=onepage&q&f=false |title=InfoWorld First Look: Supercalc 4 challenging 1-2-3 with new tactic |author1=Infoworld Media Group, Inc. |date=1986-07-07 }}</ref> Lotus was slow to bring 1-2-3 to Windows and by 1988 Excel had started to outsell 1-2-3 and helped Microsoft achieve the position of leading PC software developer. This accomplishment, dethroning the king of the software world, solidified Microsoft as a valid competitor and showed its future of developing [[Graphical user interface|GUI]] software. Microsoft pushed its advantage with regular new releases, every two years or so.

Early in 1993 Excel became the target of a trademark lawsuit by another company already selling a software package named "Excel" in the [[finance industry]]. As the result of the dispute Microsoft had to refer to the program as "Microsoft Excel" in all of its formal press releases and legal documents. However, over time this practice has been ignored, and Microsoft cleared up the issue permanently when they purchased the trademark of the other program.{{Citation needed|date=October 2008}} Microsoft also encouraged the use of the letters '''XL''' as shorthand for the program; while this is no longer common, the program's [[Icon (computing)|icon]] on Windows still consists of a stylized combination of the two letters, and the [[file extension]] of the default Excel format is ''.xls'' (''.xlsx'' in newer versions).

Excel offers many [[user interface]] tweaks over the earliest electronic spreadsheets; however, the essence remains the same as in the original spreadsheet software, [[VisiCalc]]: the program displays cells organized in rows and columns, and each cell may contain data or a formula, with relative or absolute references to other cells.

Excel became the first spreadsheet to allow the user to define the appearance of spreadsheets (fonts, character attributes and cell appearance). It also introduced intelligent cell recomputation, where only cells dependent on the cell being modified are updated (previous spreadsheet programs recomputed everything all the time or waited for a specific user command). Excel has extensive graphing capabilities, and enables users to perform [[mail merge]].

=== Excel 5.0 ===
With version 5.0 (1993), Excel has included [[Visual Basic for Applications]] (VBA), a programming language based on [[Visual Basic]] which adds the ability to automate tasks in Excel and to provide user-defined functions (UDF) for use in worksheets. VBA is a powerful addition to the application and includes a fully featured [[integrated development environment]] (IDE). Macro recording can produce VBA code replicating user actions, thus allowing simple automation of regular tasks. VBA allows the creation of forms and in-worksheet controls to communicate with the user. The language supports use (but not creation) of [[Component object model|ActiveX]] ([[Component object model|COM]]) [[Dynamic-Link Library|DLL]]'s; later versions add support for class modules allowing the use of basic [[object-oriented programming]] techniques.

The automation functionality provided by VBA made Excel a target for [[Macro (computer science)|macro]] [[computer virus|viruses]]. This caused serious problems until antivirus products began to detect these viruses. [[Microsoft]] belatedly took steps to prevent the misuse by adding the ability to disable macros completely, to enable macros when opening a workbook or to trust all macros signed using a trusted certificate.

Versions 5.0 to 9.0 of Excel contain various [[Easter egg (virtual)|Easter eggs]], including a Hall of Tortured Souls, although since version 10 [[Microsoft]] has taken measures to eliminate such undocumented features from their products.<ref>{{cite web |url=http://blogs.msdn.com/larryosterman/archive/2005/10/21/483608.aspx |title=Why no Easter Eggs? |first=Larry |last=Osterman |date=October 21, 2005 |accessdate=2006-07-29 |work=Larry Osterman's WebLog |publisher=MSDN Blogs }}</ref>

=== Excel 2000 ===
{{See also|Microsoft Office 2000}}
For many users, one of the most obvious changes introduced with Excel 2000 (and the rest of the Office 2000 suite) involved a clipboard that could hold multiple objects at once. In another noticeable change the Office Assistant, whose frequent unsolicited appearance in Excel 97 had annoyed many users, became less intrusive.

[[ឯកសារ:Excel2007.PNG|64px|thumb|Excel 2007 icon]] 
[[ឯកសារ:Microsoft Office Excel 2007.png|thumb|250px|Microsoft Excel 2007]]

=== Excel 2007 ===
The most obvious change is a completely revamped user interface called the [[Ribbon (computing)|Ribbon]] menu system, which means a user must abandon most habits acquired from previous versions. Some practical advantages of the new system are a decreased number of mouse-clicks needed to reach a given functionality (e.g. removing the gridlines now takes 2 mouse-clicks instead of 5), greatly improved management of named variables through the ''Name Manager'', and much improved flexibility in formatting graphs, which now allow (''x, y'') coordinate labeling and lines of arbitrary weight. The number of rows is now 1,048,576 (2<sup>20</sup>) and columns is 16,384 (2<sup>14</sup>; the far right column is XFD). Several improvements to ''pivot tables'' were introduced. [[Office Open XML]] file formats were introduced, including ''.xlsm'' for a workbook with macros and ''.xlsx'' for a workbook without macros.<ref name="Dodge">{{cite book  |title=Microsoft Office Excel 2007 inside out |first1=Mark |last1=Dodge |first2=Craig |last2=Stinson |year=2007 |publisher=Microsoft Press |isbn=0-7356-2321-X |chapter=Chapter 1: What's new in Microsoft Office Excel 2007|page=1 ''ff'' }}</ref>

This version makes more extensive use of multiple cores for the calculation of spreadsheets, however VBA macros are not handled in parallel and XLL addins only are executed in parallel if they are thread-safe and indicate this at the time of registration.

=== Excel 2010 ===
The changes in Excel 2010 are listed on the Microsoft website.<ref>[http://office.microsoft.com/en-us/excel-help/what-s-new-in-excel-2010-HA010369709.aspx?CTT=1 Office.microsoft.com]</ref>

== Versions ==
=== Microsoft Windows ===
* 1987 Excel 2.0 for Windows
* 1990 Excel 3.0
* 1992 Excel 4.0
* 1993 Excel 5.0 (Office 4.2 & 4.3, also a 32-bit version for [[Windows NT]] only on the [[x86]], [[PowerPC]], [[DEC Alpha|Alpha]], and [[MIPS Technologies|MIPS]] architectures)
* 1995 Excel for Windows 95 (version 7.0) included in [[Office 95]]
* 1997 Excel 97 (version 8.0) included in [[Office 97]] (for x86 and Alpha). This version of Excel includes a flight simulator as an [[Easter egg (media)|Easter Egg]].
* 1999 Excel 2000 (version 9.0) included in [[Office 2000]]
* 2001 Excel 2002 (version 10) included in [[Office XP]]
* 2003 Office Excel 2003 (version 11) included in [[Office 2003]]
* 2007 Office Excel 2007 (version 12) included in [[Office 2007]]
* 2010 Excel 2010 (version 14) included in [[Office 2010]]
*''Note: No MS-DOS version of Excel 1.0 for Windows ever existed: the Windows version originated at the time the Mac version was up to 2.0.''
*''Note: There is no Excel 6.0, because the [[Windows 95]] version was launched with Word 7. All the Office 95 & Office 4.X products have [[Object Linking and Embedding|OLE]] 2 capacity&nbsp;— moving data automatically from various programs&nbsp;— and Excel '''7''' would show that it was contemporary with Word '''7'''.''

[[ឯកសារ:Excel mac 2011 icon.png|64px|thumb|Dock icon for Excel 2011 for Mac]]

=== Apple Macintosh ===
* 1985 Excel 1.0
* 1988 Excel 1.5
* 1989 Excel 2.2
* 1990 Excel 3.0
* 1992 Excel 4.0
* 1993 Excel 5.0 (part of Office 4.X—Motorola 68000 version and first PowerPC version)
* 1998 Excel 8.0 (part of [[Microsoft Office 98 Macintosh Edition|Office 98]])
* 2000 Excel 9.0 (part of [[Microsoft Office 2001|Office 2001]])
* 2001 Excel 10.0 (part of [[Microsoft Office v. X|Office v. X]])
* 2004 Excel 11.0 (part of [[Office 2004 for Mac|Office 2004]])
* 2008 Excel 12.0 (part of [[Microsoft Office 2008 for Mac|Office 2008]])
* 2011 Excel 14.0 (part of [[Microsoft Office for Mac 2011|Office 2011]])

=== OS/2 ===
* 1989 Excel 2.2
* 1990 Excel 2.3
* 1991 Excel 3.0

== Number of rows and columns ==
Versions of Excel up to 7.0 had a limitation in the size of their data sets of 16K (2<sup>14</sup> = 16384) rows. Versions 8.0 through 11.0 could handle 64K (2<sup>16</sup> = 65536) rows and 256 columns (2<sup>8</sup> as label 'IV'). Version 12.0 can handle 1M (2<sup>20</sup> = 1048576) rows, and 16384 (2<sup>14</sup> as label 'XFD') columns.<ref>{{cite web |url= http://msdn.microsoft.com/en-us/library/aa730921.aspx |title= The "Big Grid" and Increased Limits in Excel 2007 |accessdate=2008-04-10 |work=[http://msdn.microsoft.com/ Microsoft.com] }}</ref>

== File formats ==
{{Infobox file format
| name = Excel Spreadsheet
| icon = 
| logo =
| extension = .xls, (.xlsx, .xlsm, .xlsb - Excel 2007)
| mime = application/vnd.ms-excel
| type code = 
| uniform type = com.microsoft.excel.xls<ref>[http://developer.apple.com/mac/library/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html System-Declared Uniform Type Identifiers]</ref>
| magic = 
| owner = [[Microsoft]]
| genre = [[Spreadsheet]]
| container for = 
| contained by = 
| extended from = 
| extended to = 
| standard = 
}}

Microsoft Excel up until 2007 version used a proprietary binary file format called Binary Interchange File Format (BIFF) as its primary format.<ref>{{cite web |url=http://support.microsoft.com/kb/840817/ |title=How to extract information from Office files by using Office file formats and schemas |publisher=Microsoft |date=February 26, 2008 |accessdate=2008-11-10 }}</ref> Excel 2007 uses [[Office Open XML]] as its primary file format, an XML-based format that followed after a previous [[XML]]-based format called "XML Spreadsheet" ("XMLSS"), first introduced in Excel 2002.<ref name="xml">{{cite web |url=http://msdn.microsoft.com/en-us/library/aa140066(office.10).aspx |title=XML Spreadsheet Reference |work=Microsoft Excel 2002 Technical Articles |publisher=MSDN |date=August 2001 |accessdate=2008-11-10 }}</ref>

Although supporting and encouraging the use of new XML-based formats as replacements, Excel 2007 remained backwards-compatible with the traditional, binary formats. In addition, most versions of Microsoft Excel can read [[comma-separated values|CSV]], [[DBase|DBF]], [[SYmbolic LinK (SYLK)|SYLK]], [[Data Interchange Format|DIF]], and other legacy formats. Support for some older file formats was removed in Excel 2007.<ref>{{cite web |url=http://blogs.office.com/b/microsoft-excel/archive/2006/08/24/deprecated-features-for-excel-2007.aspx |title=Deprecated features for Excel 2007 |publisher=Microsoft&nbsp;— David Gainer |date=August 24, 2006 |accessdate=2009-01-02 }}</ref> The file formats were mainly from DOS-based programs.

=== Binary ===
[[OpenOffice.org]] has created documentation of the Excel format.<ref>{{cite web |url=http://sc.openoffice.org/excelfileformat.pdf |title=OpenOffice.org's documentation of the Microsoft Excel File Format |date=2008-08-02 }}</ref> Since then Microsoft made the Excel binary format specification available to freely download.<ref>{{cite web |url=http://download.microsoft.com/download/0/B/E/0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/Excel97-2007BinaryFileFormat(xls)Specification.xps |title=Microsoft Office Excel 97 - 2007 Binary File Format Specification (*.xls 97-2007 format) |year=2007 |publisher=Microsoft Corporation }}</ref>

=== XML Spreadsheet ===
{{main|Microsoft Office XML formats}}
The ''XML Spreadsheet'' format introduced in Excel 2002<ref name="xml" /> is a simple, [[XML]] based format missing some more advanced features like storage of VBA macros. Though the intended file extension for this format is ''.xml'', the program also correctly handles XML files with ''.xls'' extension. This feature is widely used by third-party applications (e.g. ''[[MySQL]] Query Browser'') to offer "export to Excel" capabilities without implementing binary file format. The following example will be correctly opened by Excel if saved either as ''Book1.xml'' or ''Book1.xls'':

<source lang="xml">
<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <Worksheet ss:Name="Sheet1">
  <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1"
   x:FullRows="1">
   <Row>
    <Cell><Data ss:Type="String">Name</Data></Cell>
    <Cell><Data ss:Type="String">Example</Data></Cell>
   </Row>
   <Row>
    <Cell><Data ss:Type="String">Value</Data></Cell>
    <Cell><Data ss:Type="Number">123</Data></Cell>
   </Row>
  </Table>
 </Worksheet>
</Workbook>
</source>

=== Standard file-extensions ===
{{Expand section|explanation of purpose and when deprecated|date=February 2009}}
{|class="wikitable"
!Format
!Extension
!Description
|-
|[[Spreadsheet]]
|<tt>.xls</tt>
|Main spreadsheet format which holds data in worksheets, charts, and macros
|-
|Add-in ([[Visual Basic for Applications|VBA]])
|<tt>.xla</tt>
|Adds custom functionality; written in [[Visual Basic for Applications|VBA]]
|-
|Toolbar
|<tt>.xlb</tt>
|The file extension where Microsoft Excel custom toolbar settings are stored.
|-
|Chart
|<tt>.xlc</tt>
|A chart created with data from a Microsoft Excel spreadsheet that only saves the chart. To save the chart and spreadsheet save as .XLS. XLC is not supported in Excel 2007 or in any newer versions of Excel.
|-
|Dialog
|<tt>.xld</tt>
|Used in older versions of Excel.
|-
|Archive
|<tt>.xlk</tt>
|A backup of an Excel Spreadsheet
|-
|Add-in (DLL)
|<tt>.xll</tt>
|Adds custom functionality; written in [[C++]]/[[C (programming language)|C]], [[Visual Basic]], [[Fortran]], etc. and compiled in to a special [[dynamic-link library]]
|-
|Macro
|<tt>.xlm</tt>
|A macro is created by the user or pre-installed with Excel.
|-
|Template
|<tt>.xlt</tt>
|A pre-formatted spreadsheet created by the user or by Microsoft Excel.
|-
|Module
|<tt>.xlv</tt>
|A module is written in VBA (Visual Basic for Applications) for Microsoft Excel 
|-
|Library
|<tt>.DLL</tt>
|Code written in VBA may access functions in a DLL, typically this is used to access the Windows API
|-
|Workspace
|<tt>.xlw</tt>
|Arrangement of the windows of multiple Workbooks
|}

=== Office Open XML ===
{{Main|Office Open XML}}

Microsoft Excel 2007, along with the other products in the [[Microsoft Office 2007]] suite, introduced new file-formats. The first of these (.xlsx) is defined in the [[Office Open XML]] (OOXML) specification.

The new Excel 2007 formats are:

{| class="wikitable" border="1"
|+New Excel 2007 formats
!Format
!Extension
!Description
|-
|Excel Workbook
|<tt>.xlsx</tt>
|The default Excel 2007 workbook format. In reality a [[ZIP (file format)|ZIP]] compressed archive with a directory structure of [[XML]] text documents. Functions as the primary replacement for the former binary .xls format, although it does not support Excel macros for security reasons.
|-
|Excel Macro-enabled Workbook
|<tt>.xlsm</tt>
|As Excel Workbook, but with macro support.
|-
|Excel Binary Workbook
|<tt>.xlsb</tt>
|As Excel Macro-enabled Workbook, but storing information in binary form rather than XML documents for opening and saving documents more quickly and efficiently. Intended especially for very large documents with tens of thousands of rows, and/or several hundreds of columns.
|-
|Excel Macro-enabled Template
|<tt>.xltm</tt>
|A template document that forms a basis for actual workbooks, with macro support. The replacement for the old .xlt format.
|-
|Excel Add-in
|<tt>.xlam</tt>
|Excel add-in to add extra functionality and tools. Inherent macro support because of the file purpose.
|}

Excel 2010 continues with these new formats.

== Export and migration of spreadsheets ==
Programmers have produced [[Application programming interface|APIs]] to open Excel spreadsheets in a variety of applications and environments other than Microsoft Excel. These include opening Excel documents on the web using either [[ActiveX]] controls, or plugins like the [[Adobe Flash|Adobe Flash Player]]. The [[Apache POI]] [[opensource]] project provides [[Java platform|Java]] libraries for reading and writing Excel spreadsheet files. [[ExcelPackage]] is another open-source project that provides server-side generation of Microsoft Excel 2007 spreadsheets. [[PHPExcel]] is a PHP library that converts Excel5, Excel 2003, and Excel 2007 formats into objects for reading and writing within a web application.

== See also ==
* [[Comparison of risk analysis Microsoft Excel add-ins]]
* [[Comparison of spreadsheets]]
* [[Excel Viewer]]
* [[List of spreadsheets]]
* [[Spreadmart]]
* [[Visual Basic for Applications]]

== References ==
{{Reflist|2}}

== General references ==
* {{cite book |title=Professional Excel development: The definitive guide to developing applications using Microsoft Excel and VBA |first1=Stephen |last1=Bullen |first2=Rob |last2=Bovey |first3=John |last3=Green |url=http://books.google.com/?id=VnegO0pMYlIC&printsec=frontcove |edition=2nd |publisher=Addison Wesley |isbn=0-321-50879-3 |year=2009 }}
* {{cite book |title=Microsoft Office Excel 2007 inside out |first1=Mark |last1=Dodge |first2=Craig |last2=Stinson |year=2007 |publisher=Microsoft Press |isbn=0-7356-2321-X |url=http://www.amazon.com/Microsoft-Office-Excel-2007-Inside/dp/073562321X }}

== External links ==
{{Commons category|Microsoft Excel}}
{{wikibooks|Excel}}
*[http://office.microsoft.com/en-us/excel/ Microsoft Excel official site]
*[http://www.microsoft.com/downloads/details.aspx?familyid=E690BAF0-9B9A-4C47-88DA-3A84F3E9B247&displaylang=en Office 2010 product guide]
*[http://office.microsoft.com/en-us/help/HA101491511033.aspx Interactive translation from Excel 2003 menus to 2007]

{{Spreadsheets}}
{{Microsoft Office}}

[[ចំណាត់ថ្នាក់ក្រុម:Mac OS software]]
[[ចំណាត់ថ្នាក់ក្រុម:Mac OS X software]]
[[ចំណាត់ថ្នាក់ក្រុម:Microsoft Office|Excel]]
[[ចំណាត់ថ្នាក់ក្រុម:Spreadsheet software]]
[[ចំណាត់ថ្នាក់ក្រុម:1985 software]]

[[ar:مايكروسوفت إكسل]]
[[arz:مايكروسوفت اكسل]]
[[az:Microsoft Excel]]
[[bg:Microsoft Excel]]
[[bn:মাইক্রোসফট এক্সেল]]
[[bs:Microsoft Excel]]
[[ca:Microsoft Excel]]
[[cs:Microsoft Excel]]
[[da:Microsoft Excel]]
[[de:Microsoft Excel]]
[[en:Microsoft Excel]]
[[es:Microsoft Excel]]
[[et:Microsoft Excel]]
[[fa:مایکروسافت اکسل]]
[[fi:Microsoft Excel]]
[[fr:Microsoft Excel]]
[[gl:Microsoft Excel]]
[[he:Microsoft Excel]]
[[hi:माइक्रोसॉफ़्ट ऍक्सल]]
[[hr:Microsoft Excel]]
[[id:Microsoft Excel]]
[[it:Microsoft Excel]]
[[ja:Microsoft Excel]]
[[ka:Excel]]
[[kk:Microsoft Office Еxcel]]
[[ko:마이크로소프트 엑셀]]
[[lb:.xls]]
[[lt:Microsoft Excel]]
[[mk:Microsoft Excel]]
[[ml:മൈക്രോസോഫ്റ്റ് എക്സെൽ]]
[[mr:मायक्रोसॉफ्ट एक्सेल]]
[[nl:Microsoft Office Excel]]
[[no:Microsoft Office Excel]]
[[pl:Microsoft Excel]]
[[pt:Microsoft Excel]]
[[ro:Microsoft Excel]]
[[ru:Microsoft Excel]]
[[sh:Microsoft Excel]]
[[si:මයික්‍රොසොෆ්ට් එක්සෙල්]]
[[simple:Microsoft Excel]]
[[sk:Microsoft Excel]]
[[sl:Microsoft Excel]]
[[sq:Excel]]
[[sr:Majkrosoft eksel]]
[[sv:Microsoft Excel]]
[[ta:மைக்ரோசாப்ட் எக்செல்]]
[[th:ไมโครซอฟท์ เอกซ์เซล]]
[[tr:Microsoft Excel]]
[[uk:Microsoft Excel]]
[[vep:Microsoft Office Excel]]
[[vi:Microsoft Excel]]
[[yi:עקסעל]]
[[zh:Microsoft Excel]]