PATENT DOCUMENT

Publication Number: US-10409890-B2
Application Number: US-201815862252-A
Country: US
Kind Code: B2

Title: Evaluation of formulas via modal attributes

Abstract:
Embodiments are disclosed in which a process generates, receives, or both, via a graphical user interface (GUI) of a spreadsheet application, an evaluation statement. The evaluation statement includes a cell identifier, and the cell identifier specifies a modal reference cell that provides an indication of a modal attribute to be used in the evaluation statement. The indication of the modal attribute comprises a textual indicator related to the modal attribute, but has a format that is different than the modal attribute. The process evaluates the textual indicator to be used by the evaluation statement to determine a corresponding modal attribute and calculates a solution to the evaluation statement using the corresponding modal attribute as the modal attribute of the evaluation statement. The process displays the solution via the GUI.

Claims:
What is claimed is: 
     
       1. A tangible, non-transitory, machine-readable medium, comprising machine-readable instructions that, when executed by one or more processors, cause the one or more processors to:
 generate, receive, or both, via a graphical user interface (GUI) of a spreadsheet application, an evaluation statement, the evaluation statement comprising a cell identifier, the cell identifier specifying a modal reference cell that provides an indication of a modal attribute to be used in the evaluation statement wherein the indication of the modal attribute comprises a textual indicator related to the modal attribute, but having a format that is different than the modal attribute; 
 evaluate the textual indicator to be used by the evaluation statement to determine a corresponding modal attribute; 
 calculate a solution to the evaluation statement using the corresponding modal attribute as the modal attribute of the evaluation statement; and 
 display the solution via the GUI. 
 
     
     
       2. The machine-readable medium of  claim 1 , comprising machine-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
 evaluate the textual indicator to determine the corresponding modal attribute, by:
 accessing a library defining a set of expected modal attributes of the evaluation statement; 
 performing a partial string matching analysis between the textual indicator and the set of expected modal attributes of the evaluation statement; and 
 setting an expected modal attribute of the set of expected modal attributes as the corresponding modal attribute, when a partial string match between the expected modal attribute and the textual indicator meets a matching threshold, is the largest partial string match with respect to other expected modal attributes of the set of expected modal attributes, or both. 
 
 
     
     
       3. The machine-readable medium of  claim 1 , comprising machine-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
 evaluate the textual indicator to determine the corresponding modal attribute, by:
 accessing a set of expected modal attributes of the evaluation statement; 
 translating the textual indicator into one of the set of expected modal attributes of the evaluation statement; and 
 setting the one of the set of expected modal attributes of the evaluation statement as the corresponding modal attribute. 
 
 
     
     
       4. The machine-readable medium of  claim 3 , wherein the textual indicator comprises a textual frequency and the one of the set of expected modal attributes of the evaluation statement comprises a numerical value associated with the textual frequency. 
     
     
       5. The machine-readable medium of  claim 1 , wherein the evaluation statement comprises a stock formula that retrieves requested stock information identified based at least in part upon the modal attribute. 
     
     
       6. The machine-readable medium of  claim 5 , comprising machine-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
 generate the stock formula, by:
 determining a current cell context, the current cell context comprising a row position and a column position of a currently selected cell; 
 identify a row header for the row position and a column header for the column position; 
 setting the cell identifier as one of the row header or the column header to derive the corresponding modal attribute for the stock formula; 
 setting a stock name attribute for the stock formula as one of the row header or the column header; 
 performing the stock formula to obtain a stock lookup result; and 
 presenting, via the GUI, the stock lookup result. 
 
 
     
     
       7. The machine-readable medium of  claim 6 , comprising machine-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
 upon selection of the currently selected cell, present a stock lookup pop-over box, the stock lookup pop-over box comprising the stock lookup result. 
 
     
     
       8. The machine-readable medium of  claim 7 , wherein the stock lookup pop-over box comprises a modal attribute selector for the stock formula that is pre-populated with the corresponding modal attribute for the stock formula. 
     
     
       9. The machine-readable medium of  claim 8 , wherein the stock lookup pop-over box comprises a historical quote selector that, when selected, performs the stock formula against historical data and presents historical results for the stock formula in the stock lookup pop-over box. 
     
     
       10. The machine-readable medium of  claim 5 , comprising machine-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
 receive a drag-fill request via the GUI from a cell comprising the stock formula, the drag-fill request comprising an indication of a set of cells to fill with stock formulas corresponding to the stock formula; 
 identify a first header cell of the cell comprising the stock formula that correlates to a unique identifier of the stock formula, the unique identifier identifying a stock to lookup via the stock formula; 
 identify a second header cell of the cell comprising the stock formula that correlates to the modal attribute of the stock formula; 
 set unique identifiers for stock formulas of the set of cells using the first header cell or header cells in a common row or column as the first header cell; and 
 set modal attributes for the stock formulas of the set of cells using the second header cell or header cells in a common row or column as the second header cell. 
 
     
     
       11. The machine-readable medium of  claim 1 , comprising machine-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
 present, via a evaluation statement editor of the GUI, the evaluation statement in a evaluation statement format comprising the cell identifier. 
 
     
     
       12. The machine-readable medium of  claim 1 , comprising machine-readable instructions that, when executed by the one or more processors, cause the one or more processors to:
 present, via a evaluation statement editor of the GUI, the evaluation statement in an evaluation statement format comprising the modal attribute. 
 
     
     
       13. The machine-readable medium of  claim 12 , wherein the evaluation statement format comprises a modal attribute selector pre-populated with the modal attribute. 
     
     
       14. A processor-based system, comprising:
 a display; 
 a memory storing one or more routines; and 
 a processing component configured to execute one or more routines stored in the memory, wherein the one or more routines, when executed by the processing component, cause acts to be performed comprising: 
 generating, receiving, or both, via a graphical user interface (GUI) of a spreadsheet application, an evaluation statement, the evaluation statement comprising a cell identifier, the cell identifier specifying a modal reference cell that provides an indication of a modal attribute to be used in the evaluation statement, wherein the indication of the modal attribute comprises a textual indicator related to the modal attribute, but having a format that is different than the modal attribute; 
 evaluating the textual indicator to be used by the evaluation statement to determine a corresponding modal attribute; 
 calculating a solution to the evaluation statement using the corresponding modal attribute as the modal attribute of the evaluation statement; and 
 displaying the solution via the GUI. 
 
     
     
       15. The processor-based system of  claim 14 , wherein evaluating the textual indicator to determine the corresponding modal attribute comprises:
 accessing a library defining a set of expected modal attributes of the evaluation statement; 
 performing a partial string matching analysis between the textual indicator and the set of expected modal attributes of the evaluation statement; and 
 setting an expected modal attribute of the set of expected modal attributes as the corresponding modal attribute, when a partial string match between the expected modal attribute and the textual indicator meets a matching threshold, is the largest partial string match with respect to other expected modal attributes of the set of expected modal attributes, or both. 
 
     
     
       16. The processor-based system of  claim 14 , wherein evaluating the textual indicator to determine the corresponding modal attribute comprises:
 accessing a set of expected modal attributes of the evaluation statement; 
 translating the textual indicator into one of the set of expected modal attributes of the evaluation statement; and 
 setting the one of the set of expected modal attributes of the evaluation statement as the corresponding modal attribute. 
 
     
     
       17. The processor-based system of  claim 14 , wherein the textual indicator comprises a textual frequency and the one of the set of expected modal attributes of the evaluation statement comprises a numerical value associated with the textual frequency. 
     
     
       18. The processor-based system of  claim 14 , wherein the evaluation statement comprises a stock formula that retrieves requested stock information identified based at least in part upon the modal attribute. 
     
     
       19. The processor-based system of  claim 18 , comprising generating the stock formula by:
 determining a current cell context, the current cell context comprising a row position and a column position of a currently selected cell; 
 identifying a row header for the row position and a column header for the column position;
 setting the cell identifier as one of the row header or the column header to derive the corresponding modal attribute for the stock formula; 
 setting a stock name attribute for the stock formula as one of the row header or the column header; 
 performing the stock formula to obtain a stock lookup result; and 
 presenting, via the GUI, the stock lookup result. 
 
 
     
     
       20. A processor-implemented method for generating an evaluation statement, comprising:
 generating, receiving, or both, via a graphical user interface (GUI) of a spreadsheet application, an evaluation statement, the evaluation statement comprising a cell identifier, the cell identifier specifying a modal reference cell that provides an indication of a modal attribute to be used in the evaluation statement, wherein the indication of the modal attribute comprises a textual indicator related to the modal attribute, but having a format that is different than the modal attribute; 
 evaluating the textual indicator to be used by the evaluation statement to determine a corresponding modal attribute; 
 calculating a solution to the evaluation statement using the corresponding modal attribute as the modal attribute of the evaluation statement; and 
 displaying the solution via the GUI. 
 
     
     
       21. The processor-implemented method of  claim 20 , wherein evaluating the textual indicator to determine the corresponding modal attribute comprises:
 accessing a library defining a set of expected modal attributes of the evaluation statement; 
 performing a partial string matching analysis between the textual indicator and the set of expected modal attributes of the evaluation statement; and 
 setting an expected modal attribute of the set of expected modal attributes as the corresponding modal attribute, when a partial string match between the expected modal attribute and the textual indicator meets a matching threshold, is the largest partial string match with respect to other expected modal attributes of the set of expected modal attributes, or both. 
 
     
     
       22. The processor-implemented method of  claim 20 , wherein evaluating the textual indicator to determine the corresponding modal attribute comprises:
 accessing a set of expected modal attributes of the evaluation statement; 
 translating the textual indicator into one of the set of expected modal attributes of the evaluation statement; and 
 setting the one of the set of expected modal attributes of the evaluation statement as the corresponding modal attribute. 
 
     
     
       23. The processor-implemented method of  claim 20 , wherein the textual indicator comprises a textual frequency and the one of the set of expected modal attributes of the evaluation statement comprises a numerical value associated with the textual frequency. 
     
     
       24. The processor-implemented method of  claim 20 , wherein the evaluation statement comprises a stock formula that retrieves requested stock information identified based at least in part upon the modal attribute. 
     
     
       25. The processor-based system of  claim 24 , comprising generating the stock formula by:
 determining a current cell context, the current cell context comprising a row position and a column position of a currently selected cell; 
 identifying a row header for the row position and a column header for the column position; 
 setting the cell identifier as one of the row header or the column header to derive the corresponding modal attribute for the stock formula; 
 setting a stock name attribute for the stock formula as one of the row header or the column header; 
 performing the stock formula to obtain a stock lookup result; and 
 presenting, via the GUI, the stock lookup result.

Description:
BACKGROUND 
     The present disclosure relates generally to generating evaluation statements, such as formulas within a table of an application, such as a spreadsheet application. 
     This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present disclosure, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art. 
     Spreadsheet applications, as well as other types of applications, may use rows and columns of cells (such as arrays or tables of such cells) in which a user enters or manipulates data for calculation or presentation. Tables of cells used in such applications may range from a limited number of cells in simple or straightforward implementations to much larger arrays of cells in more complex scenarios. The tables may be used to relay and organize data to a user for various scenarios. Often an application may allow a user to define an evaluation statement (e.g., a formula) within a cell that references other cells within a spreadsheet or table. For example, a formula entered into a cell of a table may reference other cells of that table or of other tables for values that are used, evaluated, or manipulated by the formula in question. These expression statements oftentimes include function calls that use modal attributes, which are attributes specifically indicating one of an enumerated set of modes for the function. Typically, these modal attributes must precisely match one of a set of enumerated values programmed for use by the function. Unfortunately, however, evaluation statement designers (e.g., users of a spreadsheet application) may attempt to supply values that do not precisely match (e.g., only partially match) one of these enumerated values. This may result in expression statement output errors, causing frustration of the evaluation statement designers. 
     SUMMARY 
     A summary of certain embodiments disclosed herein is set forth below. It should be understood that these aspects are presented merely to provide the reader with a brief summary of these certain embodiments and that these aspects are not intended to limit the scope of this disclosure. Indeed, this disclosure may encompass a variety of aspects that may not be set forth below. 
     The current embodiments enable values that do not explicitly match an enumerated value of a modal attribute to be supplied in an expression statement (e.g., either through manual value entry or specification of cell references that contain values that do not adhere to the rigid formatting required by a function used in the expression statement). The non-matching values are mapped to an enumerated value of the modal attribute and the mapped to enumerated value is used as the value for the modal attribute of the function of the expression statement. This may greatly enhance expression statement generation, by enabling increased flexibility in expression statement design, by allowing non-precisely matched values to be used for modal attributes of a function that expects a precise value from a set of enumerated values for a modal attribute. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various aspects of this disclosure may be better understood upon reading the following detailed description and upon reference to the drawings in which: 
         FIG. 1  is a block diagram of an electronic device that may use the techniques disclosed herein, in accordance with aspects of the present disclosure; 
         FIG. 2  is a front view of a handheld device, such as an iPhone® by Apple Inc., representing an example of the electronic device of  FIG. 1 ; 
         FIG. 3  is a front view of a tablet device, such as an iPad® by Apple Inc., representing an example of the electronic device of  FIG. 1 ; 
         FIG. 4  is a perspective view of a notebook computer, such as a MacBook Pro® by Apple Inc., representing an example of the electronic device of  FIG. 1 ; 
         FIG. 5  illustrates an example of a graphical user interface (GUI) interface screen of a spreadsheet application in accordance with aspects of the present disclosure; 
         FIG. 6  depicts a process flow diagram depicting control logic of a process for evaluating an evaluation statement, in accordance with aspects of the present disclosure; 
         FIG. 7  illustrates an example of the spreadsheet application GUI interface screen illustrating an evaluation statement evaluated in the spreadsheet application in accordance with aspects of the present disclosure; 
         FIG. 8  illustrates an example of the GUI of  FIG. 7  further illustrating an evaluation statement GUI that is pre-populated based in part on a row header value and/or a column header value in accordance with aspects of the present disclosure; 
         FIG. 9  illustrates an example of a new GUI that is populated based in part on the values selected in  FIG. 8  to access data in accordance with aspects of the present disclosure; 
         FIG. 10  depicts a process for filling adjacent cells in the spreadsheet application in response to a drag indication, in accordance with aspects of the present disclosure; 
         FIG. 11  illustrates an example of a screen illustrating the drag indication of  FIG. 10  of the spreadsheet application in accordance with aspects of the present disclosure; and 
         FIG. 12  illustrates updated modal attributes in accordance with the received drag indication of  FIG. 11  in accordance with aspects of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS 
     One or more specific embodiments will be described below. In an effort to provide a concise description of these embodiments, not all features of an actual implementation are described in the specification. It should be appreciated that in the development of any such actual implementation, as in any engineering or design project, numerous implementation-specific decisions must be made to achieve the developers&#39; specific goals, such as compliance with system-related and business-related constraints, which may vary from one implementation to another. Moreover, it should be appreciated that such a development effort might be complex and time consuming, but would nevertheless be a routine undertaking of design, fabrication, and manufacture for those of ordinary skill having the benefit of this disclosure. 
     The specific embodiments described above have been shown by way of example, and it should be understood that these embodiments may be susceptible to various modifications and alternative forms. It should be further understood that the claims are not intended to be limited to the particular forms disclosed, but rather to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure. 
     The techniques presented and claimed herein are referenced and applied to material objects and concrete examples of a practical nature that demonstrably improve the present technical field and, as such, are not abstract, intangible or purely theoretical. Further, if any claims appended to the end of this specification contain one or more elements designated as “means for [perform]ing [a function] . . . ” or “step for [perform]ing [a function] . . . ”, it is intended that such elements are to be interpreted under 35 U.S.C. 112(f). However, for any claims containing elements designated in any other manner, it is intended that such elements are not to be interpreted under 35 U.S.C. 112(f). 
     The present disclosure is generally directed to resolving issues that may arise in evaluation statements or formulas (such as formulas used to implement one or more defined functions) within a table when cells referenced by the evaluation statements or formulas are complex in nature. In practice, evaluation statements may require the user to specify one or more one or more attribute values in one or more reference cells to carry out a function. These attribute values oftentimes have to be in a very precise format, in order to provide instruction to a function of the expression statement. However, the precise formatting may not be present in the value inserted to the function as the attribute value. Accordingly, using the current techniques, attribute values that are not precisely formatted to match one of a set of enumerated values expected for the attribute by a function of the expression statement may be mapped to one of the enumerated values. Further, to ease the burden of formatting large spreadsheets, some or all of the evaluation statements (or portions of the evaluation statements) may be intelligently populated in accordance with the techniques disclosed herein. In addition, in certain implementations, a large portion of the evaluation statements used in the spreadsheet or the entire spreadsheet can be automatically populated via a drag-fill request to generate updated attributes for each of the evaluation statements (e.g., formulas). 
     A variety of suitable electronic devices may employ the techniques described herein when executing or interacting with a spreadsheet application or other application employing cells or tables of such cells.  FIG. 1 , for example, is a block diagram depicting various components that may be present in a suitable electronic device  10  that may be used in the implementation of the present approaches.  FIGS. 2, 3, and 4  illustrate example embodiments of the electronic device  10 , depicting a handheld electronic device, a tablet computing device, and a notebook computer, respectively. 
     Turning first to  FIG. 1 , the electronic device  10  may include, among other things, a display  12 , input structures  14 , input/output (I/O) ports  16 , one or more processor(s)  18 , memory  20 , nonvolatile storage  22 , a network interface  24  that may be communicatively coupled to an external data provider  25 , and a power source  26 . The various functional blocks shown in  FIG. 1  may include hardware elements (including circuitry), software elements (including computer code stored on a non-transitory computer-readable medium) or a combination of both hardware and software elements. The external data provider  25  may provide data for expression statements executed by an application of the electronic device  10 . For example, an expression statement may be executed via an application (e.g., a spreadsheet application) running on the processor(s)  18  of the electronic device  10 . The evaluation statement may include a function call (e.g., a stock lookup function call) that retrieves information (e.g., stock information) from the external data provider  25 . Upon reception of the information, the application may provide a result for the evaluation statement (e.g., stock lookup results). As will be discussed in more detail below, the processor(s)  18  may perform certain pre-processing steps prior to executing a function call. For example, attribute value mapping/formatting may be performed prior to performing a function call. Additionally and/or alternatively, pre-population of attribute values may be performed prior to performing a function call. In some embodiments, the processor(s)  18  may derive additional evaluation statements based at least in part upon an already generated expression statement. These techniques are described in detail below. 
     It should be noted that  FIG. 1  is merely one example of a particular implementation and is intended to illustrate the types of components that may be present in the electronic device  10 . Indeed, the various depicted components (e.g., the processor(s)  18 ) may be separate components, components of a single contained module (e.g., a system-on-a-chip device), or may be incorporated wholly or partially within any of the other elements within the electronic device  10 . The components depicted in  FIG. 1  may be embodied wholly or in part as machine-readable instructions (e.g., software or firmware), hardware, or any combination thereof. 
     By way of example, the electronic device  10  may represent a block diagram of the handheld device depicted in  FIG. 2 , the tablet computing device depicted in  FIG. 3 , the notebook computer depicted in  FIG. 4 , or similar devices, such as desktop computers, televisions, and so forth. In the electronic device  10  of  FIG. 1 , the display  12  may be any suitable electronic display used to display image data (e.g., a liquid crystal display (LCD) or an organic light emitting diode (OLED) display). In some examples, the display  12  may represent one of the input structures  14 , enabling users to interact with a user interface of the electronic device  10 . In some embodiments, the electronic display  12  may be a MultiTouch™ display that can detect multiple touches at once. Other input structures  14  of the electronic device  10  may include buttons, keyboards, mice, trackpads, and the like. The I/O ports  16  may enable electronic device  10  to interface with various other electronic devices. 
     The processor(s)  18  and/or other data processing circuitry may execute instructions and/or operate on data stored in the memory  20  and/or nonvolatile storage  22 . The memory  20  and the nonvolatile storage  22  may be any suitable articles of manufacture that include tangible, non-transitory computer-readable media to store the instructions or data, such as random-access memory, read-only memory, rewritable flash memory, hard drives, and optical discs. By way of example, a computer program product containing the instructions may include an operating system (e.g., OS X® or iOS by Apple Inc.) or an application program (e.g., Numbers® by Apple Inc.). 
     The network interface  24  may include, for example, one or more interfaces for a personal area network (PAN), such as a Bluetooth network, for a local area network (LAN), such as an 802.11x Wi-Fi network, and/or for a wide area network (WAN), such as a 4G or LTE cellular network. The power source  26  of the electronic device  10  may be any suitable source of energy, such as a rechargeable lithium polymer (Li-poly) battery and/or an alternating current (AC) power converter. 
     As mentioned above, the electronic device  10  may take the form of a computer or other type of electronic device. Such computers may include computers that are generally portable (such as laptop, notebook, and tablet computers) as well as computers that are generally used in one place (such as conventional desktop computers, workstations and/or servers).  FIG. 2  depicts a front view of a handheld device  10 A, which represents one embodiment of the electronic device  10 . The handheld device  10 A may represent, for example, a portable phone, a media player, a personal data organizer, a handheld game platform, or any combination of such devices. By way of example, the handheld device  10 A may be a model of an iPod® or iPhone® available from Apple Inc. of Cupertino, Calif. 
     The handheld device  10 A may include an enclosure  28  to protect interior components from physical damage and to shield them from electromagnetic interference. The enclosure  28  may surround the display  12 , which may display a graphical user interface (GUI)  30  having an array of icons  32 . By way of example, one of the icons  32  may launch a spreadsheet application program (e.g., Numbers® by Apple Inc.). User input structures  14 , in combination with the display  12 , may allow a user to control the handheld device  10 A. For example, the input structures  14  may activate or deactivate the handheld device  10 A, navigate a user interface to a home screen, navigate a user interface to a user-configurable application screen, activate a voice-recognition feature, provide volume control, and toggle between vibrate and ring modes. Touchscreen features of the display  12  of the handheld device  10 A may provide a simplified approach to controlling the spreadsheet application program. The handheld device  10 A may include I/O ports  16  that open through the enclosure  28 . These I/O ports  16  may include, for example, an audio jack and/or a Lightning® port from Apple Inc. to connect to external devices. The electronic device  10  may also be a tablet device  10 B, as illustrated in  FIG. 3 . For example, the tablet device  10 B may be a model of an iPad® available from Apple Inc. 
     In certain embodiments, the electronic device  10  may take the form of a computer, such as a model of a MacBook®, MacBook® Pro, MacBook Air®, iMac®, Mac® mini, or Mac Pro® available from Apple Inc. By way of example, the electronic device  10 , taking the form of a notebook computer  10 C, is illustrated in  FIG. 4  in accordance with one embodiment of the present disclosure. The depicted computer  10 C may include a display  12 , input structures  14 , I/O ports  16 , and a housing  28 . In one embodiment, the input structures  14  (e.g., a keyboard and/or touchpad) may be used to interact with the computer  10 C, such as to start, control, or operate a GUI or applications (e.g., Numbers® by Apple Inc.) running on the computer  10 C. 
     With the preceding in mind, a variety of computer program products, such as applications or operating systems, may use or implement the techniques discussed below to enhance the user experience on the electronic device  10  and to improve the performance of the device when executing an application encoded as discussed herein. Indeed, any suitable computer program product that provides for the use or manipulation of cells within a table or spreadsheet, including the referencing of other cells from a given cell, may employ and benefit from some or all of the techniques discussed below. For instance, the electronic device  10  may store and run a spreadsheet application  34  (e.g., Numbers® from Apple Inc.). The spreadsheet application may be stored as one or more executable routines (which may encode and implement the actions described below) in memory and/or storage ( FIG. 1 ). These routines, when executed, may cause control codes and logic as discussed herein to be implemented and may cause screens as discussed herein to be displayed on a screen of the electronic device or in communication with the electronic device. 
     Turning to  FIG. 5 , an example of a spreadsheet application interface screen  100  is depicted which includes a table  102  having rows  104  and columns  106  of cells  110 . In the depicted example, the table  102  is of finite size and displayed as an object (e.g., a graphical object) on the canvas  108  provided by the application. That is, the table  102  is not an “infinite” table composed of rows and columns of cells that fill the entire application display area in both horizontal and vertical dimensions. Such “infinite” table contexts provide an essentially limitless array of cells, though in such contexts there may in fact be a maximum number of rows and columns, this maximum number generally greatly exceeds any real world application or table size. Thus, in contrast to such “infinite” tables, the table  102  is of a limited, finite size and is handled as a table object on the canvas  108  provided by the application. Thus, in such an embodiment, more than one separate and distinct table object  102  may be provided or displayed on the canvas  108 . 
     Upon selection of a cell  110  within the table  102 , a user may be provided a prompt or other entry box by which text, numbers, formula, and so forth may be entered as the contents of a cell  110  or by which the existing contents of a cell  110  may be edited or modified. In the depicted example, the uppermost row  112  and leftmost column  114  may be set aside or visually distinguished to allow this row and column to display row or column headings or labels. Further, row and column address indicators or indexes may also be displayed that may be automatically populated with an index of column addresses or headers (e.g., A, B, C, D, and so forth) or, respectively, with an index of row addresses or headers (e.g., 1, 2, 3, 4, and so forth). In this manner an addressing scheme may be provided for each cell  110  within the table  102  such that individual cells may be identified by column and row address (e.g., A 1 , B 3 , D 30 , and so forth). 
     In addition, the interface screen  100  may include an interface bar  120  that includes buttons, menus, drop down boxes, and so forth that a user may interact with to invoke various functions within the spreadsheet application. By way of example, in the depicted screen  100 , a magnification control  122 , function entry button  124 , table button  126 , chart button  128 , text box button  130 , shape button  132 , media button  134 , and comment button  136  are provided. By interacting with these various controls, the user may insert a new table object  102  (such as via selection of the table button  126 ) on the displayed canvas area  108 , select a function for use in a cell (such as via selection of the function button  124 ), insert a comment (such as via selection of the comment button  136 ), and so forth). 
     As discussed above, in certain instances a cell  110  within a table  102  may contain an evaluation statement. The evaluation statement may include a function. In some situations the evaluation statement may reference other cells in the table  102  or in other table objects present on the canvas  108  or in other spreadsheets. Examples of such evaluation statements might include mathematical functions (including functions to determine a sum or difference over a range of cells, stock functions, financial functions, valuation functions, etc.) and statistical functions (such as functions to determine an average, median, maximum, minimum, or mode, over a range of cells). Similarly, such evaluation statements may also include functions related to the layout, searching, referencing, or redirection of the contents of a cell for various display or calculation purposes. 
     In practice, a user may provide an instruction to the application to calculate or evaluate the evaluation statements. Certain evaluation statements may require the user to specify one or more one or more attribute values to carry out a function (e.g., STOCK, ACCRINT) associated with the evaluation statement. Provided attribute values may not precisely match attribute values allowed by a function. Further, inputting some or all of the attribute values may be time consuming for the user. As discussed herein, in some embodiments, non-precisely matched attribute values may be matched and/or mapped to a precisely matched attribute value that replaces a supplied attribute value. This may result in more flexibility for function calls, resulting in fewer error results from the function call execution. 
     Further, in some embodiments, in order to facilitate more efficient formatting of the evaluation statements in the spreadsheet application, some or all of the evaluation statements may be intelligently populated via a process to improve spreadsheet productivity. In certain embodiments, the evaluation statements (e.g., formulas, stock function) may be generated by determining a current cell context including a row position and a column position of the selected cell (e.g., identifying a row header associated with the row position and a column header associated with the column position). A cell identifier may be set as one of the row header or the column header to derive a corresponding modal attribute for the evaluation statements (e.g., formulas, stock function), and an attribute (e.g., a stock name attribute) for the evaluation statement may be set as one of the row header or the column header, as explained in further detail below. 
     In some embodiments, additional expression statements may be generated based upon previously generated expression statements. For example, a dragging action within a spreadsheet application from a cell that includes an expression statement may result in automatic generation of additional expression statements, where the attribute values are automatically populated based upon a reference location of the new dragged-to cells in relation to the dragged-from cells. This feature is described in detail below. 
     Flexible Attribute Values 
     With the preceding in mind, and to facilitate explanation,  FIG. 6  illustrates a process  140  for generating evaluation statements using modal attributes, in accordance with aspects of the present disclosure. The evaluation statement (e.g., the formula) may include functions, such as stock functions (e.g., STOCK, CURRENCY), financial functions (e.g., ACCRINT, IPMT, IRR), valuation functions (e.g., CAPM), location functions, or any other functions. In some cases, the functions may use one or more modal attributes. As used herein, modal attributes refer to attributes of a function with an enumerated set of values that may be used. For example, a stock lookup function, may include a modal attribute that defines what type of data to return. The modal attribute may have an enumerated list of attribute values, such as “price”, “volume”, “name”, “dividend_yield”, etc., where any values outside of the enumerated list of attribute values results in an invalid attribute value. In some embodiments, the enumerated list of attribute values is case sensitive, while in others the enumerated list of attribute values are not case sensitive. 
     Attribute values may be manually entered into an evaluation statement and/or may be retrieved via a referenced cell. Accordingly, in some instances, the evaluation statement may include attributes that may need to be updated prior to solving the evaluation statement. For example, the evaluation statement may include a reference to pull attributes from other locations (e.g., other cells, other tables, etc.). Accordingly, the process  140  includes receiving and/or generating a request for updating an evaluation statement (e.g., a formula) via the graphical user interface  30  (block  142 ). 
     In other words, in some instances the evaluation statement includes one or more cell identifiers that specify one or more modal reference cells that with an indicator provide an indication of one or more modal attributes to use in the evaluation statement. 
     To update the evaluation statement, the process  140  identifies (block  144 ) an indicator (e.g. a textual indicator) from a modal reference cell. In one example relating to the stock function in the Numbers application, the textual indicator is “Dividend Yield,” which is determined from the modal reference cell, C 1 , which is referenced in the expression statement. 
     As may be appreciated, modal attributes may require precise value matching, as unexpected values (e.g., values outside the enumerated list of acceptable attribute values) may result in a function execution error. Accordingly, after the textual indicator is identified (e.g., either via manual entry or via accessing a referenced cell&#39;s data), the process  140  evaluates or determines the modal attribute to be used by the evaluation statement by determining a modal attribute that correlates to the textual indicator (block  146 ). The process  140  may identify the corresponding modal attribute by mapping and/or matching the textual indicator to a modal attribute of an enumerated list of modal attributes. In the context of the stock function, the indicator to be mapped and/or matched to a modal attribute may include variations of one of the modal attribute values, including but not limited to: abbreviations, spellings, punctuation, capitalizations, and so forth. A string search of the textual indicator may search for these variations in the textual indicator, to find a best matching modal attribute value for the textual indicator. For example, for the modal attribute of “Dividend_Yield”, the textual indicator could include, but is not limited to: Div. Yield, Div_Yield, div_yield, dividend_yield, div yield, dividend yield, and so forth. The string search may search for these variations and determine that “Dividend_Yield” is the appropriate value of the enumerated set of available values for the modal attribute. 
     Upon mapping the indicator to the corresponding modal attribute, the process  140  determines a solution to the evaluation statement (e.g., the formula) (block  148 ). The process  140  may use the corresponding modal attribute in the evaluation statement, in place of the indicator value. This may ensure that one of the enumerated modal attributes is provided in the evaluation statement, rather than a freeform indicator value. 
     The process  140  then displays (block  150 ) the solution to the evaluation statement. The above process  140  for evaluating the evaluation statement may be further understood with reference to  FIG. 7 . 
       FIG. 7  illustrates an example of the spreadsheet application interface screen  100  illustrating an evaluation statement evaluated in the spreadsheet application in accordance with aspects of the present disclosure. As discussed above, the interface screen  100  includes a structured table  102 . The structured table  102  is defined, in part by the uppermost row  112  (e.g., the header row  158 ) and the leftmost column (e.g., the header column  160 ). Some of the cells  110  in the table  102  may contain one or more evaluation statements. 
     For example, an editing window  152  depicts an evaluation statement  154  (e.g., a formula) in an editing mode. The evaluation statement (e.g., a formula)  154  includes a function  156  that processes data in accordance with a set of attributes  157 . In some instances, the attributes  157  may contain references to cells (e.g., cell identifiers  166 ) where a value is stored for use as the attribute  157 . For example, a first attribute  170  in the evaluation statement  154  of  FIG. 7  indicates that cell A 2  stores a value to be used as the first attribute  170 . Similarly, a second attribute  172  of the evaluation statement  154  indicates that cell C 1  stores a value to be used as the second attribute  172 . 
     In this example, the evaluation statement  154  uses a stock function  159 . The stock function  159  uses a freeform search value as the first attribute  170 . The stock function  159  uses one of a set of enumerated modal attribute values as the second attribute  172 . Accordingly, the second attribute  172  is a modal attribute. 
     Starting with the first attribute  170 , in the current embodiment, the header column  160  includes certain search criteria  164  that may be useful in the evaluation statement  154 . In the illustrated embodiment, the search criteria  164  includes stock ticker names or stock abbreviations associated with various company names (e.g., AAPL for Apple, Inc., TWTR for Twitter, Inc., etc.). The search criteria  164  may vary and may include other updatable search criteria including, but not limited to, non-financial data, such as geographical data, weather data, or other data for use with non-financial functions that can be updated. As described above, the evaluation statements  154  include one or more cell identifiers  166  (e.g., referenced cells) to specify the one or more cells that include values to be used as the attribute. In the illustrated embodiment, a first cell indicator references cell A 2  of the table  102 . The value associated with cell A 2 , here “AAPL” is used as the first attribute  170  of the evaluation statement  154 . 
     Turning now to a discussion of the second attribute  172 , the second cell indicator  172  references cell C 1  of the table  102 . As mentioned above, the second attribute  172  is a modal attribute that uses one of a set of enumerated modal attribute values. However, the value associated with cell C 1  is not one of the set of enumerated modal attribute values, but instead is an indicator (e.g., textual indicator  162 ) that does not explicitly match the formatting of one of the enumerated modal attribute values. Accordingly, the textual indicator  162 , here “Dividend Yield”, provides an indication of the modal attribute to be used in the evaluation statement  154 , but is not explicitly formatted as one of the enumerated set of modal attribute values. 
     As will be discussed in more detail below, the textual indicator  162  may provide a more desirable formatting, but may break the evaluation statement  154  when not formatted in a manner expected by the function  156  (e.g., is not one of the enumerated attribute values). Accordingly, the indicator  162  may be mapped to the formatting of the modal attribute prior to use in the evaluation statement  154 . The one or more textual indicators  162  are provided in contrast to values  163  that have a rigid formatting that explicitly match a modal attribute to be used in the evaluation statement  154 . In other words, in embodiments where no mapping and/or matching to modal values is present, values  163  that explicitly match the modal attribute must be used. According, the explicit modal attribute “Dividend_Yield” must be supplied. In contrast, in embodiments where the textual indicators  162  can be mapped and/or matched to a modal attribute, less-rigid formatting may be used. For example, “Dividend Yield” may be mapped to the modal attribute “Dividend_Yield”. 
     In some embodiments, an alternative editing window  180  may be utilized to edit the evaluation statement  154 . Here, the alternative editing window  180  is used by the user to edit the evaluation statement  154  by manually inserting the indicator  162 , instead of referencing a cell. Accordingly, as illustrated, the modal attributes  168  may be entered in text format, rather than referencing certain cells  110  or providing an explicit modal attribute. For example, the first attribute  170 ′ corresponds to cell A 2  of the table  102 , but is referenced by referring to the contents of the cell A 2  (here “AAPL”). Similarly, the second attribute  172 ′ correlates to cell C 1  of the table  102 , but is referenced by referring to a freeform text entry that does not explicitly match formatting of a modal attribute (here “Dividend Yield”). 
     The modal attributes  168  (e.g., the second modal attribute  172 ) may then be updated by mapping textual indicators  162  to a modal attribute from an enumerated list of modal attributes. To map the textual indicators  162  to the modal attributes  168  to the enumerated list of modal attributes, the textual indicator  162  is first evaluated. In the preceding example, one of the textual indicators  162  is “Dividend Yield.” The textual indicator  162  is evaluated by accessing a library to access a list of the modal attribute values. That is, the library may contain a set of expected modal attribute values for use with the evaluation statement  154 . In some embodiments, the expected modal attribute values may include variations of the modal attributes  168 , including but not limited to, abbreviations, alternative spellings, misspellings, variations in capitalizations, and so forth. For example, the library may contain the following enumerated list of modal attributes for “Dividend Yield”: Div. Yield, Div_Yield, div_yield, dividend_yield, div yield, dividend yield, etc. In other embodiments, such derivations may be determined based upon a string search. 
     By accessing the library of expected modal attributes and/or performing the string search, the process  140  evaluates the textual indicators  162  by performing a matching sequence. That is, the process  140  attempts to match a partial string between the textual indicator  162  and the set of expected modal attributes (i.e., the list of enumerated modal attributes). The process  140  may define a match between the textual indicator  162  and a first expected modal attribute of the set of enumerated modal attributes when a threshold of matching is met. In some embodiments, the textual indicator  162  may have an associated textual frequency. Textual frequency may be defined as a matched number of characters, a percentage of matched characters, a closest match, and so forth between the textual indicator  162  and the enumerated list of modal attributes. The threshold of matching may be met when the textual frequency exceeds a target. In one embodiment, the textual indicator  162  that has the highest textual frequency is matched to the modal attribute of the enumerated list of modal attributes. Alternatively, the user may disable this feature of the process  140  so that the match between the textual indicator  162  and the first expected modal attribute of the set of enumerated modal attributes occurs only when there is an exact match. 
     When the textual indicator  162  and the first expected modal attribute of the set of expected modal attributes are matched to the threshold, the process  140  then sets or assigns an expected modal attribute to the modal attribute of the set of enumerated modal attributes that has the closest match. In the preceding example, if the user entered “Div Yield,” rather than “Dividend Yield,” the process  140  would match the “Div Yield” variation of the modal attribute  168  to the enumerated modal attribute value of “Dividend Yield.” The process  140  then uses the expected modal attribute value (here “Dividend Yield”) to solve the evaluation statement  154 . The matching process and subsequent solving of the evaluation statement  154  may be further understood with reference to  FIGS. 8-9 . 
     By matching indicators to modal attribute values, additional flexibility in evaluation statement generation is provided. This may result in a much improved user experience, as user preferred values may be used to specify attribute values, while reducing a number of erroring function calls caused by unexpected modal attribute values. 
     Auto-Population of Evaluation Statements and/or Attribute Values 
     Having discussed flexible function calls, the discussion now turns to auto-population features within an expression statement.  FIG. 8  illustrates an example of the spreadsheet application interface screen  100 , illustrating auto-population of attributes of the evaluation statement  154  to be evaluated in the spreadsheet application in accordance with aspects of the present disclosure. In the illustrated embodiment, the alternative editing window  180  is utilized by the user to edit the evaluation statement  154 , which may include pre-populated attributes based upon features of the spreadsheet. Here, for example, the header cell A 2  value may be used to pre-populate a search field  190  of a stock information pop-up box  192 . Thus, the search field  190  is pre-populated with the value “APPLE” from header cell A 2 . The stock information pop-up box  192  may include a search results list  194  that provides results associated with the search field  190  and, optionally, results that appear regardless of information in the search field  190 . 
     A user may select a particular one of the results from the results list  194 , which may associate an expected format of value (e.g., a stock symbol in this example) with the evaluation statement  154  of the cell B 2 . The selected value from the results list  194  to associate with cell A 2 , in this example is “AAPL”, which is used as the first attribute  170  of the evaluation statement  154 . 
     Accordingly, a new GUI  196  may be provided that indicates “AAPL” as the search symbol, as shown in  FIG. 9 . In the GUI  196 , data  197  (e.g. stock information) may be retrieved and presented (e.g., by accessing or retrieving the data, identified in part upon the data in the search field in real-time). The data  197  may include current data when selection  199  (e.g., latest quote) is selected or historical data when selection  201  (e.g., historical quote) is selected. 
     A modal attribute value to use in an evaluation statement of the underlying cell (e.g., cell B 2 ) may be selected via a modal attribute value selector  198 . In the GUI  196 , the modal attribute selector  198  may be pre-populated based upon a spatially-related header cell. For example, header cell B 1  may provide an indication of a modal attribute value to pre-populate in the modal attribute selector  198 . As described above, the value associated with cell B 1 , in some situations, may not be one of the set of enumerated modal attributes. Rather, the value associated with cell B 1  may be an indicator (e.g., textual indicator  162 ) that does not explicitly match the formatting of one of the enumerated modal attributes. The textual indicator  162  (here “Volume”) provides an indication of the expected modal attribute (here “volume”) to be used in the evaluation statement  154 , but is not explicitly formatted as one of the enumerated set of modal attributes. Accordingly, the process  140  may be used, when necessary, to map the textual indicator  162  to the corresponding modal attribute value from an enumerated list of modal attribute values. The process  140  evaluates the textual indicators  162  by performing a matching sequence. Here, the process  140  matches the textual indicator  162  (here “volume”) to the appropriate modal attribute of the enumerated list of modal attributes  168  (here “Volume”). Upon matching the textual indicator  162  and the second modal attribute  172 , the process  140  proceeds to pre-populate the modal attribute selector  198 . 
     In some embodiments, the evaluation statement  154  may be generated upon an indication to generate the evaluation statement. For example, the user could select the “Done” option  200 , indicating that each of the proper selections is made and the evaluation statement should be generated. The evaluation statement  154  is then generated, using the modal attribute value selected by the modal attribute value selector  198  as the second cell indicator  172 . From there, the evaluation statement  154  may be solved. 
     Automated Evaluation Statement Generation 
     Until now, the discussion of the present techniques has pertained to utilization of evaluation statements  154 , as specified for a particular cell  110 . Inputting the evaluation statements  154  one at a time may be time consuming for the user. As discussed herein, in one implementation, in order to facilitate more efficient formatting of the evaluation statements  154  in the spreadsheet application, some or all of the evaluation statements in the cells  110  may be filled across the spreadsheet, to fill in adjacent cells  110  of the spreadsheet application, as explained further with reference to  FIG. 10 .  FIG. 10  depicts a process  220  for filling adjacent cells in the spreadsheet application in response to a drag indication, in accordance with aspects of the present disclosure. 
     The process  220  includes receiving a drag-fill request via a GUI from the cell  110  having an evaluation statement  154 , such as a stock function  159  (block  212 ). The process  220  further includes identifying a first header cell that correlates to an attribute value (block  224 ). In one example, the attribute value correlates to an identifier of the stock (e.g., a stock symbol, such as AAPL for Apple, Inc., TWTR for Twitter, Inc., etc.). 
     The process  220  includes identifying a second header cell that correlates to the modal attribute value (block  226 ). As mentioned above, examples of the modal attribute value  168  may include volume, price, etc. 
     The process  220  includes setting attribute values for new evaluation statements  154  created in response to the drag-fill request, by using the first header cell in a spatially-related row and/or the second header cell in a spatially-related column as the first header cell in response to the drag-fill request (block  228 ). In other words, the process  220  identifies the first header cell as being associated with the first attribute  170  value and establishes that values of spatially-related header cells may be used to fill the first attribute of evaluation statements of cells that are similarly spatially-related. Thus, when a first cell includes an evaluation statement that includes a first header column cell reference and/or value as its first attribute, an evaluation statement for a cell below the first cell may use the header column cell reference and/or value of the header column cell below the first header column cell as its first attribute. Similarly, when a first cell includes an evaluation statement that includes a first header column cell reference and/or value as its first attribute, an evaluation statement for a cell above the first cell may use the header column cell reference and/or value of the header column cell above the first header column cell as its first attribute. 
     Further, when a first cell includes an evaluation statement that includes a first header row cell reference and/or value as its first attribute, an evaluation statement for a cell to the right of the first cell may use the header row cell reference and/or value of the header column cell to the right of the first header row cell as its first attribute. Similarly, when a first cell includes an evaluation statement that includes a first header row cell reference and/or value as its first attribute, an evaluation statement for a cell to the left of the first cell may use the header row cell reference and/or value of the header row cell to the left of the first header column cell as its first attribute. 
     These spatially-related features may also work in diagonal relatedness. For example, while a diagonally positioned cell may not be directly positioned below or next to the first cell, the horizontal and/or vertical positioning of the cell to the first cell may still be used to identify a proper attribute. 
     The process  220  includes setting modal attributes for the evaluation statement  154  of the set of sells using the second header cell(s) in a spatially-related row or a spatially-related column as the second header cell in response to the drag-fill request (block  230 ), similar to the manner discussed above with regard to block  228 . Specifically, the process  220  identifies the second header cell that is spatially-related to a header cell used in the first cell of a source evaluation statement being dragged from. The spatial-relatedness of the source evaluation statement with the new evaluation statement defines the spatially-related header cell to reference in the new evaluation statement. 
     The header cell may include the textual header  162  that is associated with the second header cell that can be used to update and fill the next cell by mapping the textual indicator  162  to a corresponding modal attribute  168 , as described above with reference to  FIGS. 7-9 . As mentioned above, the textual indicator may need to be matched to one of an enumerated set of modal attribute values before evaluation of the evaluation statement. Accordingly, the techniques discussed above may be performed to match to an expected modal attribute. 
       FIGS. 11-12  illustrate an example of a screen illustrating the drag-fill indication of  FIG. 10  of the spreadsheet application in accordance with aspects of the present disclosure. In the illustrated embodiment, the user performs a dragging motion as indicated by arrow  240  to provide a drag-fill indication  242 . By performing the dragging motion, the dragged-to cells of the table  102  can be filled out by identifying a first header cell  243  correlating to an attribute value  244  and setting the attribute values  244  for newly created evaluation statements of the drag operation, as described above. 
     In the illustrated embodiment, the attribute value  244  is an abbreviation of a company name to identify a stock (e.g., AAPL for Apple, Inc., TWTR for Twitter, Inc., etc.), which is found in header cell A 2 , which is spatially-related to the cell B 2 , which stores the source evaluation statement  247  (e.g., the evaluation statement being dragged from in the drag operation). In response to the dragging motion (e.g., in a downward direction  246 ), the attribute values  244  for the cells  110  below cell B 2  are updated and filled in using the header cells that are similarly spatially-related. For example, the evaluation statement  154  associated with the cell B 2  outputs the value “Apple Inc.” when the evaluation statement  154  is solved. When the dragging motion is performed, the evaluation statement  154  associated with cell B 3  (indicated by arrow  248 ) is updated to include “TWTR” for the first attribute. This occurs because the cell A 3  is spatially-related to cell A 2  (e.g., the cell used for the first attribute of the evaluation statement in cell B 2 ) similarly to the spatial-relatedness between the source cell B 2  and the destination cell B 2  (e.g., the cell being dragged to in the drag operation), in that these cells are spatially-related by being one cell below the original cell. Accordingly, when the evaluation statement  154  associated with cell B 3  is solved, the value of cell B 3  would read “Twitter, Inc.”. 
     Similarly, in response to the dragging motion (e.g., in a downward direction  246 ), the attribute values  244  for the cells B 4  and B 5 , indicated by arrows  250  and  252 , respectively, are updated and filled in with “TSLA” and “FB”, respectively. As such, the evaluation statement  154  associated with the cell B 4  outputs the value “Tesla Inc.” when the evaluation statement  154  is solved, while the cell B 5  outputs the value “Facebook Inc.” when the evaluation statement  154  associated with cell B 5  is solved. 
     As described above, the process  220  may identify the second header cell as having the textual header  162  that is associated with the second header cell that can be used to update and fill the next cell by mapping the textual indicator  162  to a corresponding modal attribute  168 . In other words, in response to the dragging motion (e.g., in a right direction  256 ), the textual indicator  162  is mapped to the expected modal attribute  168 . By way of example, in response to the dragging motion, the adjacent cells  110  are updated in a similar spatially-related manner. For example, the evaluation statement  154  associated with cell D 2  would be updated to reference the identifier AAPL (e.g., because D 2  and B 2  are in the same row  2 ) and the modal attribute  168  of Price (e.g., because the header cell B 1  used for the modal attribute of the evaluation statement in cell B 2  is two columns to the left of the header cell D 1 , as the source cell B 2  is two cells to the left of destination cell D 2 ). The value in header cell D 1  may be matched to an enumerated modal attribute value “price”, which is used as the modal attribute value for an evaluation statement stored in cell D 2 . Accordingly, when the evaluation statement  154  for cell D 2  is solved, cell D 2  would display the price of Apple&#39;s stock. 
     In the cell E 3 , the evaluation statement  154  associated with cell E 3  would be updated to reference the identifier TWTR and the modal attribute  168  value of Open. When the evaluation statement  154  for cell E 3  is solved, cell E 3  would display the opening price of Twitter&#39;s stock. In the cell F 4 , the evaluation statement  154  associated with cell F 4  would be updated to reference the identifier TSLA and the modal attribute  168  of Volume. When the evaluation statement  154  for cell F 4  is solved, cell F 4  would display the number shares of Tesla&#39;s stock traded in a day. 
     The specific embodiments described above have been shown by of example, and it should be understood that these embodiments may be susceptible to various modifications and alternative forms. It should be further understood that the claims are not intended to be limited to the particular forms disclosed, but rather to cover all modifications, equivalents, and alternatives falling within the spirit and scope of this disclosure. For example, while the discussion herein described a function with a first search attribute and a second modal attribute, any number and type of attributes may be processed using the techniques provided herein.

Metadata:
Filing Date: 20180104
Publication Date: 20190910
Grant Date: 20190910
Priority Date: 20180104
Inventors: GEISLER, JAMES M.
HOGAN, EDWARD P.
PAINE, ZACHARIAH N.
Assignee: APPLE INC
CPC Classifications: [{"code": "G06F40/18", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F40/18", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F16/90344", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F17/18", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F17/17", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06Q40/04", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0484", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06Q40/04", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F17/17", "inventive": true, "first": true, "tree": "[]"}, {"code": "G06F16/90344", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F3/0484", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F17/18", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06F17/246", "inventive": true, "first": false, "tree": "[]"}, {"code": "G06Q40/04", "inventive": true, "first": true, "tree": "[]"}]
Family ID: 67058247