A spreadsheet is a computer application for computation , organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets . The program operates on data entered in cells of a table. Each cell may contain either numeric or text data, or the results of formulas that automatically calculate and display a value based on the contents of other cells. The term spreadsheet may also refer to one such electronic document.
131-475: Microsoft Excel is a spreadsheet editor developed by Microsoft for Windows , macOS , Android , iOS and iPadOS . It features calculation or computation capabilities, graphing tools, pivot tables , and a macro programming language called Visual Basic for Applications (VBA). Excel forms part of the Microsoft 365 suite of software. Microsoft Excel has the basic features of all spreadsheets, using
262-457: A Microsoft account to open them in a browser . In addition to issues with spreadsheets in general, other problems specific to Excel include numeric precision, misleading statistics functions, mod function errors, date limitations and more. 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,
393-413: A call stack , a special case of the stack data structure , to implement function calls and returns. Each procedure call creates a new entry, called a stack frame , at the top of the stack; when the procedure returns, its stack frame is deleted from the stack, and its space may be used for other procedure calls. Each stack frame contains the private data of the corresponding call, which typically includes
524-668: A database management system. Programs within a suite use similar commands for similar functions. Usually, sharing data between the components is easier than with a non-integrated collection of functionally equivalent programs. This was particularly an advantage at a time when many personal computer systems used text-mode displays and commands instead of a graphical user interface . Humans have organized data into tables , that is, grids of columns and rows, since ancient times. The Babylonians used clay tablets to store data as far back as 1800 BCE. Other examples can be found in book-keeping ledgers and astronomical records. Since at least 1906
655-426: A function (also procedure , method , subroutine , routine , or subprogram ) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times. Callable units provide a powerful programming tool. The primary purpose is to allow for the decomposition of a large and/or complicated problem into chunks that have relatively low cognitive load and to assign
786-526: A workbook . A workbook is physically represented by a file containing all the data for the book, the sheets, and the cells with the sheets. Worksheets are normally represented by tabs that flip between pages, each one containing one of the sheets, although Numbers changes this model significantly. Cells in a multi-sheet book add the sheet name to their reference, for instance, "Sheet 1!C10". Some systems extend this syntax to allow cell references to different workbooks. Users interact with sheets primarily through
917-403: A 3rd party for authentication or maintenance. Collabora Online runs LibreOffice kit at its core, which grew from StarOffice that was launched 39 years ago in 1985. Notable current spreadsheet software: Discontinued spreadsheet software: Several companies have attempted to break into the spreadsheet market with programs based on very different paradigms. Lotus introduced what is likely
1048-429: 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 a task that it is more suited to, for example a PowerPoint presentation may be embedded in an Excel spreadsheet or vice versa. Excel users can access external data sources via Microsoft Office features such as (for example) .odc connections built with
1179-466: A compatible web browser, it can be used online and offline (with or without internet connectivity). Google Sheets originated from a web-based spreadsheet application XL2Web developed by 2Web Technologies , combined with DocVerse which enabled multiple-user online collaboration of Office documents. In 2016 Collabora Online Calc was launched, notable in that the web based spreadsheet could be hosted and integrated into any environment without dependency on
1310-447: A date and time are the (real) number of days after December 30, 1899, 0:00, a non-negative number less than 60 is the number of days after December 31, 1899, 0:00, and numbers with whole part 60 represent the fictional day. Excel supports dates with years in the range 1900–9999, except that December 31, 1899, can be entered as 0 and is displayed as 0-jan-1900. Spreadsheet Spreadsheet users can adjust any stored value and observe
1441-647: A dedicated hardware stack to store return addresses—such hardware supports only a few levels of subroutine nesting, but can support recursive subroutines. Machines before the mid-1960s—such as the UNIVAC I , the PDP-1 , and the IBM 1130 —typically use a calling convention which saved the instruction counter in the first memory location of the called subroutine. This allows arbitrarily deep levels of subroutine nesting but does not support recursive subroutines. The IBM System/360 had
SECTION 10
#17327796291181572-417: A different name for a callable unit that returns a value ( function or subprogram ) vs. one that does not ( subroutine or procedure ). Other languages, such as C , C++ , C# and Lisp , use only one name for a callable unit, function . The C-family languages use the keyword void to indicate no return value. If declared to return a value, a call can be embedded in an expression in order to consume
1703-469: A document can be removed instantly regardless of the Microsoft Excel version used to create the document. These types of passwords are used primarily for shared work on a document. Such password-protected documents are not encrypted , and data sources from a set password are saved in a document's header . Password to protect workbook is an exception – when it is set, a document is encrypted with
1834-512: A formula counting dates between (for example) Febuary 1, 1900 and March 1, 1900 will return an incorrect result. The bug originated from Lotus 1-2-3 , where it was deliberately implemented to save computer memory, and was also intentionally implemented in Excel for the purpose of bug compatibility . This legacy has later been carried over into Office Open XML file format. Thus a (not necessarily whole) number greater than or equal to 61 interpreted as
1965-488: 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 for different perspectives (using pivot tables and
2096-421: A library, in the literal sense, which kept indexed collections of tapes or decks of cards for collective use. To remove the need for self-modifying code , computer designers eventually provided an indirect jump instruction, whose operand, instead of being the return address itself, was the location of a variable or processor register containing the return address. On those computers, instead of modifying
2227-573: A limitation in the size of their data sets of 16K (2 = 16 384 ) rows. Versions 8.0 through 11.0 could handle 64K (2 = 65 536 ) rows and 256 columns (2 as label 'IV'). Version 12.0 onwards, including the current Version 16.x, can handle over 1M (2 = 1 048 576 ) rows, and 16 384 (2, labeled as column 'XFD') columns. Up until the 2007 version, Microsoft Excel used a proprietary binary file format called Excel Binary File Format (.XLS) as its primary format. Excel 2007 uses Office Open XML as its primary file format, an XML-based format that followed after
2358-418: A limited set of statistical tools. Microsoft has announced that some of these issues are addressed in Excel 2010. Excel has issues with modulo operations . In the case of excessively large results, Excel will return the error warning #NUM! instead of an answer. Excel includes February 29, 1900, incorrectly treating 1900 as a leap year , even though e.g. 2100 is correctly treated as a non-leap year. Thus,
2489-677: A macro language whose statements had formula syntax and resided in the cells of special-purpose macro sheets (stored with file extension .XLM in Windows.) XLM was the default macro language for Excel through Excel 4.0. Beginning with version 5.0 Excel recorded macros in VBA by default but with version 5.0 XLM recording was still allowed as an option. After version 5.0 that option was discontinued. All versions of Excel, including Excel 2021, are capable of running an XLM macro, though Microsoft discourages their use. In 2023 Microsoft announced Excel would support
2620-436: A manual request to recalculate since the recalculation of large or complex spreadsheets often reduced data entry speed. Many modern spreadsheets still retain this option. Recalculation generally requires that there are no circular dependencies in a spreadsheet. A dependency graph is a graph that has a vertex for each object to be updated, and an edge connecting two objects whenever one of them needs to be updated earlier than
2751-464: A non-collapsible Ribbon interface). In April 2009, Microsoft released Excel Viewer 2007 Service Pack 2 (SP2). In October 2011, Microsoft released Excel Viewer 2007 Service Pack 3 (SP3). Microsoft advises to view and print Excel files for free to use the Excel Mobile application for Windows 10 and for Windows 7 and Windows 8 to upload the file to OneDrive and use Excel for the web with
SECTION 20
#17327796291182882-474: A pre-programmed function in a formula. Spreadsheet programs also provide conditional expressions, functions to convert between text and numbers, and functions that operate on strings of text. Spreadsheets have replaced paper-based systems throughout the business world. Although they were first developed for accounting or bookkeeping tasks, they now are used extensively in any context where tabular lists are built, sorted, and shared. LANPAR, available in 1969,
3013-410: A previous XML -based format called "XML Spreadsheet" ("XMLSS"), first introduced in Excel 2002. 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 CSV , DBF , SYLK , DIF , and other legacy formats. Support for some older file formats
3144-467: A rate of hundreds of thousands of passwords a second, which not only lets them decrypt a document but also find the original password. In Excel 2003/XP the encryption is slightly better – a user can choose any encryption algorithm that is available in the system (see Cryptographic Service Provider ). Due to the CSP, an Excel file cannot be decrypted, and thus the password to open cannot be removed, though
3275-456: A sequence of numbers, and so on through the list of subroutines needed for a particular problem. ... All these subroutines will then be stored in the machine, and all one needs to do is make a brief reference to them by number, as they are indicated in the coding. Kay McNulty had worked closely with John Mauchly on the ENIAC team and developed an idea for subroutines for the ENIAC computer she
3406-427: A subroutine call instruction that placed the saved instruction counter value into a general-purpose register; this can be used to support arbitrarily deep subroutine nesting and recursive subroutines. The Burroughs B5000 (1961) is one of the first computers to store subroutine return data on a stack. The DEC PDP-6 (1964) is one of the first accumulator-based machines to have a subroutine call instruction that saved
3537-462: A subroutine called MYSUB from the main program. The subroutine would be coded as The JSB instruction placed the address of the NEXT instruction (namely, BB) into the location specified as its operand (namely, MYSUB), and then branched to the NEXT location after that (namely, AA = MYSUB + 1). The subroutine could then return to the main program by executing the indirect jump JMP MYSUB, I which branched to
3668-524: A timely release would allow porting the VBA engine natively to Mac OS X . VBA was restored in the next version, Mac Excel 2011, although the build lacks support for ActiveX objects, impacting some high level developer tools. A common and easy way to generate VBA code is by using the Macro Recorder. 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
3799-581: A variant used in VisiCalc and known as "A1 notation". Additionally, spreadsheets have the concept of a range , a group of cells, normally contiguous. For instance, one can refer to the first ten cells in the first column with the range "A1:A10". LANPAR innovated forward referencing/natural order calculation which didn't re-appear until Lotus 123 and Microsoft's MultiPlan Version 2. In modern spreadsheet applications, several spreadsheets, often known as worksheets or simply sheets , are gathered together to form
3930-479: 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 Player . The Apache POI open-source project provides Java libraries for reading and writing Excel spreadsheet files. Microsoft Excel protection offers several types of passwords: All passwords except password to open
4061-535: 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, or in general, as a design tool that asks the user questions and provides answers and reports. In a more elaborate realization, an Excel application can automatically poll external databases and measuring instruments using an update schedule, analyze
Microsoft Excel - Misplaced Pages Continue
4192-416: A version that ran on IBM mainframes was introduced under the name AutoTab . ( National CSS offered a similar product, CSSTAB, which had a moderate timesharing user base by the early 1970s. A major application was opinion research tabulation.) AutoPlan/AutoTab was not a WYSIWYG interactive spreadsheet program, it was a simple scripting language for spreadsheets. The user defined the names and labels for
4323-499: A workbook. In 2015, Excel Mobile became available for Windows 10 and Windows 10 Mobile on Windows Store . Excel for the web is a free lightweight version of Microsoft Excel available as part of Office on the web, which also includes web versions of Microsoft Word and Microsoft PowerPoint. Excel for the web can display most of the features available in the desktop versions of Excel, although it may not be able to insert or edit them. Certain data connections are not accessible on Excel for
4454-404: Is a callable unit in the source code and an associated one in the machine code, but they are different kinds of callable units – with different implications and features. The meaning of each callable term (function, procedure, method, ...) is, in fact, different. They are not synonymous . Nevertheless, they each add a capability to programming that has commonality. The term used tends to reflect
4585-422: Is a common method to send data between applications running on Windows, with official MS publications referring to it as "the protocol from hell". 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 and Reuters . OLE Object Linking and Embedding allows
4716-464: Is indistinguishable from a batch compiler with added input data, producing an output report, i.e. , a 4GL or conventional, non-interactive, batch computer program. However, this concept of an electronic spreadsheet was outlined in the 1961 paper "Budgeting Models and System Simulation" by Richard Mattessich . The subsequent work by Mattessich (1964a, Chpt. 9, Accounting and Analytical Methods ) and its companion volume, Mattessich (1964b, Simulation of
4847-415: Is most obvious and objectionable in leaf procedures or leaf functions , which return without making any procedure calls themselves. To reduce that overhead, many modern compilers try to delay the use of a call stack until it is really needed. For example, the call of a procedure P may store the return address and parameters of the called procedure in certain processor registers, and transfer control to
4978-514: Is on average better than one would expect from simple fifteen digit precision, but that can be 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. As many calculations in Excel are executed using VBA, an additional issue
5109-418: Is possible, since all the logical characteristics essential to this procedure are available, to evolve a coding instruction for placing the subroutines in the memory at places known to the machine, and in such a way that they may easily be called into use. In other words, one can designate subroutine A as division and subroutine B as complex multiplication and subroutine C as the evaluation of a standard error of
5240-407: Is the accuracy of VBA, which varies with variable type and user-requested precision. The accuracy and convenience of statistical tools in Excel has been criticized, as mishandling situations when data is missing, 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
5371-401: Is used to declare no return value; for example void in C, C++ and C#. In some languages, such as Python, the difference is whether the body contains a return statement with a value, and a particular callable may return with or without a value based on control flow. In many contexts, a callable may have side effect behavior such as modifying passed or global data, reading from or writing to
Microsoft Excel - Misplaced Pages Continue
5502-438: Is usually implemented as a contiguous area of memory. It is an arbitrary design choice whether the bottom of the stack is the lowest or highest address within this area, so that the stack may grow forwards or backwards in memory; however, many architectures chose the latter. Some designs, notably some Forth implementations, used two separate stacks, one mainly for control information (like return addresses and loop counters) and
5633-511: Is usually referenced by its column and row (C2 would represent the cell containing the value 30 in the example table below). Usually rows, representing the dependent variables , are referenced in decimal notation starting from 1, while columns representing the independent variables use 26-adic bijective numeration using the letters A-Z as numerals. Its physical size can usually be tailored to its content by dragging its height or width at box intersections (or for entire columns or rows by dragging
5764-609: The Python programming language directly. As of January 2024, Python in Excel is available in the Microsoft 365 Insider Program. Excel supports charts , graphs , or histograms generated from specified groups of cells. It also supports Pivot Charts that allow for a chart to be linked directly to a Pivot table. This allows the chart to be refreshed with the Pivot Table. The generated graphic component can either be embedded within
5895-524: The execution of a program. Execution continues at the next instruction after the call instruction when it returns control. The features of implementations of callable units evolved over time and varies by context. This section describes features of the various common implementations. Most modern programming languages provide features to define and call functions, including syntax for accessing such features, including: Some languages, such as Pascal , Fortran , Ada and many dialects of BASIC , use
6026-426: The personal computer from a hobby for computer enthusiasts into a business tool. VisiCalc was the first spreadsheet that combined many of the essential features of modern spreadsheet applications, such as a WYSIWYG interactive user interface, automatic recalculation, status and formula lines, range copying with relative and absolute references, and formula building by selecting referenced cells. Unaware of LANPAR at
6157-462: The professor and manipulate it to represent it and show ratios etc. In 1964, a book entitled Business Computer Language was written by Kimball, Stoffells and Walsh. Both the book and program were copyrighted in 1966 and years later that copyright was renewed. Applied Data Resources had a FORTRAN preprocessor called Empires. In the late 1960s, Xerox used BCL to develop a more sophisticated version for their timesharing system. A key invention in
6288-400: The relational structure of a database. Spreadsheets and databases are interoperable—sheets can be imported into databases to become tables within them, and database queries can be exported into spreadsheets for further analysis. A spreadsheet program is one of the main components of an office productivity suite , which usually also contains a word processor , a presentation program , and
6419-405: The scenario manager ). A PivotTable is a tool for data analysis . It does this by simplifying large data sets via PivotTable fields. 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, and then reporting the results back to the spreadsheet. It also has
6550-633: The Apple II, this helped it grow in popularity. Lotus 1-2-3 was the leading spreadsheet for several years. Microsoft released the first version of Excel for the Apple Macintosh on September 30, 1985, and then ported it to Windows, with the first version being numbered 2.05 (to synchronize with the Macintosh version 2.2) and released in November 1987. Microsoft's Windows 3.x platforms of
6681-586: The Federal Circuit (CCPA), overturning the Patent Office in 1983 — establishing that "something does not cease to become patentable merely because the point of novelty is in an algorithm." However, in 1995 a federal district court ruled the patent unenforceable due to inequitable conduct by the inventors during the application process. The United States Court of Appeals for the Federal Circuit upheld that decision in 1996. The actual software
SECTION 50
#17327796291186812-519: The Firm through a Budget Computer Program ) applied computerized spreadsheets to accounting and budgeting systems (on mainframe computers programmed in FORTRAN IV ). These batch Spreadsheets dealt primarily with the addition or subtraction of entire columns or rows (of input variables), rather than individual cells . In 1962, this concept of the spreadsheet, called BCL for Business Computer Language,
6943-497: The IBM System/360 , for example, the branch instructions BAL or BALR, designed for procedure calling, would save the return address in a processor register specified in the instruction, by convention register 14. To return, the subroutine had only to execute an indirect branch instruction (BR) through that register. If the subroutine needed that register for some other purpose (such as calling another subroutine), it would save
7074-552: 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 ). Alternatively, Microsoft Query provides ODBC-based browsing within Microsoft Excel. Programmers have produced APIs to open Excel spreadsheets in
7205-453: 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. Macro Recorded code may not be compatible with Excel versions. Some code that is used in Excel 2010 cannot 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
7336-494: 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 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
7467-461: The X and Y locations. X locations, the columns, are normally represented by letters, "A," "B," "C," etc., while rows are normally represented by numbers, 1, 2, 3, etc. A single cell can be referred to by addressing its row and column, "C10". This electronic concept of cell references was first introduced in LANPAR (Language for Programming Arrays at Random) (co-invented by Rene Pardo and Remy Landau) and
7598-477: The brute-force attack speed remains quite high. Nevertheless, the older Excel 97/2000 algorithm is set by the default. Therefore, users who do not change the default settings lack reliable protection of their documents. The situation changed fundamentally in Excel 2007 , where the modern AES algorithm with a key of 128 bits started being used for decryption, and a 50,000-fold use of the hash function SHA1 reduced
7729-438: The business plans that they were presenting to venture capitalists. They decided to save themselves a lot of effort and wrote a computer program that produced their tables for them. This program, originally conceived as a simple utility for their personal use, would turn out to be the first software product offered by the company that would become known as Capex Corporation . "AutoPlan" ran on GE's Time-sharing service; afterward,
7860-546: The call stack mechanism can be viewed as the earliest and simplest method for automatic memory management . However, another advantage of the call stack method is that it allows recursive function calls , since each nested call to the same procedure gets a separate instance of its private data. In a multi-threaded environment, there is generally more than one stack. An environment that fully supports coroutines or lazy evaluation may use data structures other than stacks to store their activation records. One disadvantage of
7991-448: The call stack mechanism is the increased cost of a procedure call and its matching return. The extra cost includes incrementing and decrementing the stack pointer (and, in some architectures, checking for stack overflow ), and accessing the local variables and parameters by frame-relative addresses, instead of absolute addresses. The cost may be realized in increased execution time, or increased processor complexity, or both. This overhead
SECTION 60
#17327796291188122-439: The callable declares as formal parameters . A caller passes actual parameters , a.k.a. arguments , to match. Different programming languages provide different conventions for passing arguments. In some languages, such as BASIC, a callable has different syntax (i.e. keyword) for a callable that returns a value vs. one that does not. In other languages, the syntax is the same regardless. In some of these languages an extra keyword
8253-416: The cell itself. Alternatively, a value can be based on a formula (see below), which might perform a calculation, display the current date or time, or retrieve external data such as a stock quote or a database value. The Spreadsheet Value Rule Computer scientist Alan Kay used the term value rule to summarize a spreadsheet's operation: a cell's value relies solely on the formula the user has typed into
8384-404: The cell. The formula may rely on the value of other cells, but those cells are likewise restricted to user-entered data or formulas. There are no 'side effects' to calculating a formula: the only output is to display the calculated result inside its occupying cell. There is no natural mechanism for permanently modifying the contents of a cell unless the user manually modifies the cell's contents. In
8515-420: The cells. A given cell can hold data by simply entering it in, or a formula, which is normally created by preceding the text with an equals sign. Data might include the string of text hello world , the number 5 or the date 10-Sep-97 . A formula would begin with the equals sign, =5*3 , but this would normally be invisible because the display shows the result of the calculation, 15 in this case, not
8646-436: The cells. Formulas say how to mechanically compute new values from existing values. Values are general numbers, but can also be pure text, dates, months, etc. Extensions of these concepts include logical spreadsheets. Various tools for programming sheets, visualizing data, remotely connecting sheets, displaying cells' dependencies, etc. are commonly provided. A "cell" can be thought of as a box for holding data . A single cell
8777-424: The chunks meaningful names (unless they are anonymous). Judicious application can reduce the cost of developing and maintaining software, while increasing its quality and reliability. Callable units are present at multiple levels of abstraction in the programming environment. For example, a programmer may write a function in source code that is compiled to machine code that implements similar semantics . There
8908-418: The column- or row-headers). An array of cells is called a sheet or worksheet . It is analogous to an array of variables in a conventional computer program (although certain unchanging values, once entered, could be considered, by the same analogy, constants ). In most implementations, many worksheets may be located within a single spreadsheet. A worksheet is simply a subset of the spreadsheet divided for
9039-558: The columns, add comments, and create charts. It cannot add columns or rows except at the edge of the document, rearrange columns or rows, delete rows or columns, or add spreadsheet tabs. The 2007 version has the ability to use a full-screen mode to deal with limited screen resolution, as well as split panes to view different parts of a worksheet at one time. Protection settings, zoom settings, autofilter settings, certain chart formatting, hidden sheets, and other features are not supported on Excel Mobile, and will be modified upon opening and saving
9170-402: The context in which it is used – usually based on the language being used. For example: The idea of a callable unit was initially conceived by John Mauchly and Kathleen Antonelli during their work on ENIAC and recorded in a January 1947 Harvard symposium on "Preparation of Problems for EDVAC -type Machines." Maurice Wilkes , David Wheeler , and Stanley Gill are generally credited with
9301-426: The context of programming languages, this yields a limited form of first-order functional programming . A standard of spreadsheets since the 1980s, this optional feature eliminates the need to manually request the spreadsheet program to recalculate values (nowadays typically the default option unless specifically 'switched off' for large spreadsheets, usually to improve performance). Some earlier spreadsheets required
9432-537: The current sheet or added as a separate object. These displays are dynamically updated if the content of cells changes. 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. Additional features are available using add-ins . Several are provided with Excel, including: Versions of Excel up to 7.0 had
9563-586: 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. This is because Excel calculates with about half a digit more than it displays. Excel works with a modified 1985 version of the IEEE 754 specification . Excel's implementation involves conversions between binary and decimal representations, leading to accuracy that
9694-470: The development of electronic spreadsheets was made by Rene K. Pardo and Remy Landau, who filed in 1970 U.S. patent 4,398,249 on a spreadsheet automatic natural order calculation algorithm . While the patent was initially rejected by the patent office as being a purely mathematical invention, following 12 years of appeals, Pardo and Landau won a landmark court case at the Predecessor Court of
9825-466: 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
9956-470: The early 1980s, to discover the recalculation dependencies in a spreadsheet. Namely, a location was reserved in each cell to store the return address. Since circular references are not allowed for natural recalculation order, this allows a tree walk without reserving space for a stack in memory, which was very limited on small computers such as the IBM PC . Most modern implementations of a function call use
10087-499: The early 1990s made it possible for their Excel spreadsheet application to take market share from Lotus. By the time Lotus responded with usable Windows products, Microsoft had begun to assemble their Office suite. By 1995, Excel was the market leader, edging out Lotus 1-2-3, and in 2013, IBM discontinued Lotus 1-2-3 altogether. In 2006 Google launched their beta release Google Sheets , a web based spreadsheet application that can be accessed by multiple users from any device type using
10218-583: The effects on calculated values. This makes the spreadsheet useful for "what-if" analysis since many cases can be rapidly investigated without manual recalculation. Modern spreadsheet software can have multiple interacting sheets and can display data either as text and numerals or in graphical form. Besides performing basic arithmetic and mathematical functions , modern spreadsheets provide built-in functions for common financial accountancy and statistical operations. Such calculations as net present value or standard deviation can be applied to tabular data with
10349-469: The entire spreadsheet) can optionally be "locked" to prevent accidental overwriting. Typically this would apply to cells containing formulas but might apply to cells containing "constants" such as a kilogram/pounds conversion factor (2.20462262 to eight decimal places). Even though individual cells are marked as locked, the spreadsheet data are not protected until the feature is activated in the file preferences. Subroutine In computer programming ,
10480-411: 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
10611-404: The first "non-procedural" computer languages) as opposed to left-to-right, top to bottom sequence for calculating the results in each cell that was used by VisiCalc , SuperCalc , and the first version of MultiPlan . Without forward referencing/natural order calculation, the user had to refresh the spreadsheet until the values in all cells remained unchanged. Once the cell values stayed constant,
10742-579: The formal invention of this concept, which they termed a closed sub-routine , contrasted with an open subroutine or macro . However, Alan Turing had discussed subroutines in a paper of 1945 on design proposals for the NPL ACE , going so far as to invent the concept of a return address stack . The idea of a subroutine was worked out after computing machines had already existed for some time. The arithmetic and conditional jump instructions were planned ahead of time and have changed relatively little, but
10873-411: The formula itself. This may lead to confusion in some cases. The key feature of spreadsheets is the ability for a formula to refer to the contents of other cells, which may, in turn, be the result of a formula. To make such a formula, one replaces a number with a cell reference. For instance, the formula =5*C10 would produce the result of multiplying the value in cell C10 by the number 5. If C10 holds
11004-422: The function's return jump, the calling program would store the return address in a variable so that when the function completed, it would execute an indirect jump that would direct execution to the location given by the predefined variable. Another advance was the jump to subroutine instruction, which combined the saving of the return address with the calling jump, thereby minimizing overhead significantly. In
11135-428: 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 : Microsoft Excel 2007, along with
11266-532: The largest market share on the Windows and Macintosh platforms. A spreadsheet program is a standard feature of an office productivity suite . In 2006 Google launched a beta release spreadsheet web application , this is currently known as Google Sheets and one of the applications provided in Google Drive . A spreadsheet consists of a table of cells arranged into rows and columns and referred to by
11397-611: The legacy batch system into each user's spreadsheet monthly. It was designed to optimize the power of APL through object kernels, increasing program efficiency by as much as 50 fold over traditional programming approaches. An example of an early "industrial weight" spreadsheet was APLDOT, developed in 1976 at the United States Railway Association on an IBM 360/91, running at The Johns Hopkins University Applied Physics Laboratory in Laurel, MD. The application
11528-412: The location stored at location MYSUB. Compilers for Fortran and other languages could easily make use of these instructions when available. This approach supported multiple levels of calls; however, since the return address, parameters, and return values of a subroutine were assigned fixed memory locations, it did not allow for recursive calls. Incidentally, a similar method was used by Lotus 1-2-3 , in
11659-493: 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 prompt by their own properties, and some graphical display items, cannot be recorded but must be entered into
11790-536: The model to view results of underlying formulas. His idea became VisiCalc. VisiCalc for the Apple II went on to become the first killer application , a program so compelling, people would buy a particular computer just to use it. It was ported to other computers, including CP/M machines, Atari 8-bit computers , and the Commodore PET , but VisiCalc remains best known as an Apple II program. SuperCalc
11921-423: The most successful example, Lotus Improv , which saw some commercial success, notably in the financial world where its powerful data mining capabilities remain well respected to this day. Spreadsheet 2000 attempted to dramatically simplify formula construction, but was generally not successful. The main concepts are those of a grid of cells , called a sheet, with either raw data, called values, or formulas in
12052-438: The numbers within a range. Spreadsheets share many principles and traits of databases , but spreadsheets and databases are not the same things. A spreadsheet is essentially just one table, whereas a database is a collection of many tables with machine-readable semantic relationships. While it is true that a workbook that contains three sheets is indeed a file containing multiple tables that can interact with each other, it lacks
12183-452: The object "WorksheetFunction" and 44 have the same names as VBA functions. With the introduction of LAMBDA, Excel became Turing complete . 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
12314-496: The other for data. The former was, or worked like, a call stack and was only indirectly accessible to the programmer through other language constructs while the latter was more directly accessible. When stack-based procedure calls were first introduced, an important motivation was to save precious memory. With this scheme, the compiler does not have to reserve separate space in memory for the private data (parameters, return address, and local variables) of each procedure. At any moment,
12445-546: 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. Windows applications such as Microsoft Access and Microsoft Word, as well as Excel can communicate with each other and use each other's capabilities. The most common is Dynamic Data Exchange : although strongly deprecated by Microsoft, this
12576-542: The other. Dependency graphs without circular dependencies form directed acyclic graphs , representations of partial orderings (in this case, across a spreadsheet) that can be relied upon to give a definite result. This feature refers to updating a cell's contents periodically with a value from an external source—such as a cell in a "remote" spreadsheet. For shared, Web-based spreadsheets, it applies to "immediately" updating cells another user has updated. All dependent cells must be updated also. Once entered, selected cells (or
12707-406: The password to open is converted to a 16-bit key that can be instantly cracked. In Excel 97/2000 the password is converted to a 40-bit key, which can also be cracked very quickly using modern equipment. As regards services that use rainbow tables (e.g. Password-Find), it takes up to several seconds to remove protection. In addition, password-cracking programs can brute-force attack passwords at
12838-522: The procedure's body by a simple jump. If the procedure P returns without making any other call, the call stack is not used at all. If P needs to call another procedure Q , it will then use the call stack to save the contents of any registers (such as the return address) that will be needed after Q returns. In general, a callable unit is a list of instructions that, starting at the first instruction, executes sequentially except as directed via its internal logic. It can be invoked (called) many times during
12969-408: The procedure's parameters and internal variables, and the return address. The call sequence can be implemented by a sequence of ordinary instructions (an approach still used in reduced instruction set computing (RISC) and very long instruction word (VLIW) architectures), but many traditional machines designed since the late 1960s have included special instructions for that purpose. The call stack
13100-421: The program instructions into memory from a punched paper tape . Each subroutine could then be provided by a separate piece of tape, loaded or spliced before or after the main program (or "mainline" ); and the same subroutine tape could then be used by many different programs. A similar approach was used in computers that loaded program instructions from punched cards . The name subroutine library originally meant
13231-418: The programming language from the end-user. Through IBM's VM operating system , it was among the first programs to auto-update each copy of the application as new versions were released. Users could specify simple mathematical relationships between rows and between columns. Compared to any contemporary alternatives, it could support very large spreadsheets. It loaded actual financial planning data drawn from
13362-555: The register's contents to a private memory location or a register stack . In systems such as the HP 2100 , the JSB instruction would perform a similar task, except that the return address was stored in the memory location that was the target of the branch. Execution of the procedure would actually begin at the next memory location. In the HP 2100 assembly language, one would write, for example to call
13493-454: The results, make a Word report or PowerPoint slide show, and e-mail these presentations on a regular basis to a list of participants. Microsoft allows for a number of optional command-line switches to control the manner in which Excel starts. Excel 2016 has 484 functions. Of these, 360 existed prior to Excel 2010. Microsoft classifies these functions into 14 categories. Of the 484 current functions, 386 may be called from VBA as methods of
13624-415: The return address in a stack addressed by an accumulator or index register. The later PDP-10 (1966), PDP-11 (1970) and VAX-11 (1976) lines followed suit; this feature also supports both arbitrarily deep subroutine nesting and recursive subroutines. In the very early assemblers, subroutine support was limited. Subroutines were not explicitly separated from each other or from the main program, and indeed
13755-516: The return value. For example, a square root callable unit might be called like y = sqrt(x) . A callable unit that does not return a value is called as a stand-alone statement like print("hello") . This syntax can also be used for a callable unit that returns a value, but the return value will be ignored. Some older languages require a keyword for calls that do not consume a return value, like CALL print("hello") . Most implementations, especially in modern languages, support parameters which
13886-427: The right order ("Forward Referencing/Natural Order Calculation"). Pardo and Landau developed and implemented the software in 1969. LANPAR was used by Bell Canada, AT&T, and the 18 operating telephone companies nationwide for their local and national budgeting operations. LANPAR was also used by General Motors. Its uniqueness was Pardo's co-invention incorporating forward referencing/natural order calculation (one of
14017-464: The rows and columns, then the formulas that defined each row or column. In 1975, Autotab-II was advertised as extending the original to a maximum of " 1,500 rows and columns, combined in any proportion the user requires... " GE Information Services, which operated the time-sharing service, also launched its own spreadsheet system, Financial Analysis Language (FAL), circa 1974. It was later supplemented by an additional spreadsheet language, TABOL, which
14148-415: The sake of clarity. Functionally, the spreadsheet operates as a whole and all cells operate as global variables within the spreadsheet (each variable having 'read' access only except its containing cell). A cell may contain a value or a formula , or it may simply be left empty. By convention, formulas usually begin with = sign. A value can be entered from the computer keyboard by directly typing into
14279-420: The source code of a subroutine could be interspersed with that of other subprograms. Some assemblers would offer predefined macros to generate the call and return sequences. By the 1960s, assemblers usually had much more sophisticated support for both inline and separately assembled subroutines that could be linked together. One of the first programming languages to support user-written subroutines and functions
14410-634: The special instructions used for procedure calls have changed greatly over the years. The earliest computers and microprocessors, such as the Manchester Baby and the RCA 1802 , did not have a single subroutine call instruction. Subroutines could be implemented, but they required programmers to use the call sequence—a series of instructions—at each call site . Subroutines were implemented in Konrad Zuse 's Z4 in 1945. In 1945, Alan M. Turing used
14541-430: The speed of brute-force attacks down to hundreds of passwords per second. In Excel 2010 , the strength of the protection by the default was increased two times due to the use of a 100,000-fold SHA1 to convert a password to a key. Excel Mobile is a spreadsheet program that can edit XLSX files. It can edit and format text in cells, calculate formulas, search within the spreadsheet, sort rows and columns, freeze panes, filter
14672-760: The spreadsheet through the Excel Object Model , 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 subroutines execute these actions and operate like macros generated using the macro recorder, but are more flexible and efficient. From its first version Excel supported end-user programming of macros (automation of repetitive tasks) and user-defined functions (extension of Excel's built-in function library). In early versions of Excel, these programs were written in
14803-457: The stack contains only the private data of the calls that are currently active (namely, which have been called but haven't returned yet). Because of the ways in which programs were usually assembled from libraries, it was (and still is) not uncommon to find programs that include thousands of functions, of which only a handful are active at any given moment. For such programs, the call stack mechanism could save significant amounts of memory. Indeed,
14934-456: The standard password "VelvetSweatshop", but since it is known to the public, it actually does not add any extra protection to the document. The only type of password that can prevent a trespasser from gaining access to a document is the password to open a document . The cryptographic strength of this kind of protection depends strongly on the Microsoft Excel version that was used to create the document. In Microsoft Excel 95 and earlier versions,
15065-480: The term "spread sheet" has been used in accounting to mean a grid of columns and rows in a ledger. And prior to the rise of computerized spreadsheets, "spread" referred to a newspaper or magazine item (text or graphics) that covers two facing pages, extending across the centerfold and treating the two pages as one large page. The compound word 'spread-sheet' came to mean the format used to present book-keeping ledgers—with columns for categories of expenditures across
15196-482: The terms "bury" and "unbury" as a means of calling and returning from subroutines. In January 1947 John Mauchly presented general notes at 'A Symposium of Large Scale Digital Calculating Machinery' under the joint sponsorship of Harvard University and the Bureau of Ordnance, United States Navy. Here he discusses serial and parallel operation suggesting ...the structure of the machine need not be complicated one bit. It
15327-416: The time, PC World magazine called VisiCalc the first electronic spreadsheet. Bricklin has spoken of watching his university professor create a table of calculation results on a blackboard . When the professor found an error, he had to tediously erase and rewrite several sequential entries in the table, triggering Bricklin to think that he could replicate the process on a computer, using the blackboard as
15458-418: The top, invoices listed down the left margin, and the amount of each payment in the cell where its row and column intersect—which were, traditionally, a "spread" across facing pages of a bound ledger (book for keeping accounting records) or on oversized sheets of paper (termed 'analysis paper') ruled into rows and columns in that format and approximately twice as wide as ordinary paper. A batch "spreadsheet"
15589-521: The user was assured that there were no remaining forward references within the spreadsheet. In 1968, three former employees from the General Electric computer company headquartered in Phoenix, Arizona set out to start their own software development house . A. Leroy Ellison, Harry N. Cantrell, and Russell E. Edwards found themselves doing a large number of calculations when making tables for
15720-476: The value 3 the result will be 15 . But C10 might also hold its formula referring to other cells, and so on. The ability to chain formulas together is what gives a spreadsheet its power. Many problems can be broken down into a series of individual mathematical steps, and these can be assigned to individual formulas in cells. Some of these formulas can apply to ranges as well, like the SUM function that adds up all
15851-602: The viewer in April 2018 with the last security update released in February 2019 for Excel Viewer 2007 (SP3). The first version released by Microsoft was Excel 97 Viewer. Excel 97 Viewer was supported in Windows CE for Handheld PCs . In October 2004, Microsoft released Excel Viewer 2003. In September 2007, Microsoft released Excel Viewer 2003 Service Pack 3 (SP3). In January 2008, Microsoft released Excel Viewer 2007 (featuring
15982-413: The web, including with charts that may use these external connections. Excel for the web also cannot display legacy features, such as Excel 4.0 macros or Excel 5.0 dialog sheets. There are also small differences between how some of the Excel functions work. Microsoft Excel Viewer was a freeware program for Microsoft Windows for viewing and printing spreadsheet documents created by Excel. Microsoft retired
16113-446: Was FORTRAN II . The IBM FORTRAN II compiler was released in 1958. ALGOL 58 and other early programming languages also supported procedural programming. Even with this cumbersome approach, subroutines proved very useful. They allowed the use of the same code in many different programs. Memory was a very scarce resource on early computers, and subroutines allowed significant savings in the size of programs. Many early computers loaded
16244-649: Was a spreadsheet application published by Sorcim in 1980, and originally bundled (along with WordStar) as part of the CP/M software package included with the Osborne 1 portable computer. It quickly became the de facto standard spreadsheet for CP/M. The introduction of Lotus 1-2-3 in November 1982 accelerated the acceptance of the IBM Personal Computer . It was written especially for IBM PC DOS and had improvements in speed and graphics compared to VisiCalc on
16375-476: Was called LANPAR — LANguage for Programming Arrays at Random. This was conceived and entirely developed in the summer of 1969, following Pardo and Landau's recent graduation from Harvard University. Co-inventor Rene Pardo recalls that he felt that one manager at Bell Canada should not have to depend on programmers to program and modify budgeting forms, and he thought of letting users type out forms in any order and having an electronic computer calculate results in
16506-466: Was developed by an independent author, Oliver Vellacott in the UK. Both FAL and TABOL were integrated with GEIS's database system, DMS. The IBM Financial Planning and Control System was developed in 1976, by Brian Ingham at IBM Canada. It was implemented by IBM in at least 30 countries. It ran on an IBM mainframe and was the first application for financial planning developed with APL that completely hid
16637-513: Was implemented on an IBM 1130 and in 1963 was ported to an IBM 7040 by R. Brian Walsh at Marquette University , Wisconsin . This program was written in Fortran . Primitive timesharing was available on those machines. In 1968 BCL was ported by Walsh to the IBM 360 /67 timesharing machine at Washington State University . It was used to assist in the teaching of finance to business students. Students were able to take information prepared by
16768-529: Was programming during World War II. She and the other ENIAC programmers used the subroutines to help calculate missile trajectories. Goldstine and von Neumann wrote a paper dated 16 August 1948 discussing the use of subroutines. Some very early computers and microprocessors, such as the IBM 1620 , the Intel 4004 and Intel 8008 , and the PIC microcontrollers , have a single-instruction subroutine call that uses
16899-477: Was removed in Excel 2007. The file formats were mainly from DOS-based programs. OpenOffice.org has created documentation of the Excel format. Two epochs of the format exist: the 97-2003 OLE format, and the older stream format. Microsoft has made the Excel binary format specification available to freely download. The XML Spreadsheet format introduced in Excel 2002 is a simple, XML based format missing some more advanced features like storage of VBA macros. Though
17030-419: Was the first electronic spreadsheet on mainframe and time sharing computers. LANPAR was an acronym: LANguage for Programming Arrays at Random. VisiCalc (1979) was the first electronic spreadsheet on a microcomputer, and it helped turn the Apple II into a popular and widely used personal computer. Lotus 1-2-3 was the leading spreadsheet when DOS was the dominant operating system. Microsoft Excel now has
17161-552: Was used successfully for many years in developing such applications as financial and costing models for the US Congress and for Conrail . APLDOT was dubbed a "spreadsheet" because financial analysts and strategic planners used it to solve the same problems they addressed with paper spreadsheet pads. The concept of spreadsheets became widely known due to VisiCalc , developed for the Apple II in 1979 by VisiCorp staff Dan Bricklin and Bob Frankston . Significantly, it also turned
#117882