OpenOffice.org Calc functions, part 1: Understanding functions
A function is a pre-defined calculation entered in a cell to help you analyze or manipulate data in a spreadsheet. All you have to do is add the arguments, and the calculation is automatically made for you. Beginners might be content to use Calc for lists, but, for advanced users, functions are the main reason for spreadsheets. If you understand functions, then you can start to use the real power of a spreadsheet.
In Part 1 of this article, I'll give a brief overview of functions and how they operate. Then, in Part 2, I'll talk about how to work with them, and give some examples of what they can do.
Calc includes over 350 functions to help you analyze and reference data. Many of these functions are for use with numbers, but many others are used with dates and times, or even text. A function may be as simple as adding two numbers together, or finding the average of a list of numbers. Alternatively, it may be as complex as calculating the standard deviation of a sample, or a hyperbolic tangent of a number.
Typically, the name of a function is an abbreviated description of what the function does. For instance, the
FV function gives the future value of an investment, while
BIN2HEX converts a binary number to a hexadecimal number. By tradition, functions are entered entirely in upper case letters, although Calc will read them correctly if they are in lower or mixed case, too.
A few basic functions are also represented by symbols. For instance,
SUM, which adds arguments, can also be entered as
PRODUCTION, which multiplies arguments, can also be entered as
Each function has a number of arguments used in the calculations. These arguments may or may not have their own name. As user, your job is to enter the arguments needed to run the function. In some cases, the arguments will have pre-defined choices, and you may need to refer to the online help to understand them. More often, however, an argument is a value that you enter manually, or one already entered in a cell or range of cells on the spreadsheet. In Calc, you can enter values from other cells by typing in their name or range, or --unlike the case in some spreadsheets -- by selecting cells with the mouse. Should the values in the cells change, then the result of the function is automatically updated.
Strictly speaking, when all the arguments are entered and a function is ready to run, it becomes a formula. These terms are sometimes used interchangeably, but the distinction is worth preserving, because a formula can use functions as an argument.
For compatibility's sake, both functions and their arguments in Calc have almost identical names to their counterparts in MS Excel. However, both Excel and Calc have functions that the other lack. Occasionally, too, functions with the same names in Calc and Excel have different arguments, or slightly different names for the same argument -- neither of which can be imported to the other. However, maybe nine-tenths of functions can be imported between Calc and Excel without any problems.
Understanding the Structure of Functions
Except for simple functions such as
*, all formulas have a similar structure. If you use the right tool for entering a formula (a subject for Part 2), you can escape learning this structure, but it is still worth knowing for troubleshooting.
To give a typical example, the structure of a formula to find cells that match an entered search criteria is:
= DCOUNT (Database;Database field;Search_criteria)
Like most formula, this one starts with an equal sign. It is followed by the
DCOUNT, the name of the function.
After the name of the function comes its arguments. All arguments are required, unless specifically listed as optional.
Arguments are added within the brackets, and separated by semi-colons, with no space between the arguments and the semi-colons. Many arguments are a number. A Calc function can take up to thirty numbers as an argument. That may not sound like much at first. However, when you realize that the number can be not only a number or a single cell, but also an array or range of cells that contain several or even hundreds of cells, then the apparent limitation vanishes.
Other arguments may be a column label, a mathematical constant, or a value unique to that function.
Depending on the function, arguments may have to be entered with straight quotation marks. However, this requirement is not consistent. Otherwise similar formulas may differ only in this requirement, and no simple rule tells you which is which. You simply have to know or check the requirements in the online help.
The only exception to these structural rules are basic arithmetical functions entered with symbols. For example, instead of entering
=SUM(2;3), you can enter
As well as being used on its own, a function can be an argument in a larger formula. A formula, however, is limited by the fact that it can only do one function at a time. And that means that you need to make sure that functions are done in the right order if the formula is going to work.
To help set the order for functions in a multiple function formula, you use parentheses within parentheses. When the formula is run, Calc does the innermost function first, then works outwards. For example, in the simple calculation
=2+(5*7), Calc multiples
7 first. Only then is
2/code> added to the result to get
The placement of functions within sets of parentheses is called nesting. Basically, it reduces a function that could run on its own to an argument in the formula. For example, in
=2+(5*7), the formula
(5*7) is nested within the larger formula of
In other words, the nested function becomes an argument of another function.
This relation is more obvious when doing a calculation using a function with a name. For all purposes,
is the same formula as
=2+(5*7). However, when
PRODUCT are used, then the relation is clearer.The fact that the
PRODUCT function comes after a semi-colon and in a set of parentheses for the
SUM function makes it clear that
PRODUCT is an argument for
SUM. In addition, the fact that the inner pair of parentheses is around
(5;7) makes clear that this operation is done before the one defined by the outer pair of parentheses.
To get an idea of what nested functions can do, imagine that you are designing a self-directed learning module. During the module, students do three quizzes, and enter the results in cells A1, A2, and A3. In A4, you can create a nested formula that begins by averaging the results of the quizzes with the formula
=AVERAGE(A1:A3). The formula then uses the IF function to give the student feedback that depends upon the average grade on the quizzes. The entire formula would read:
=IF(AVERAGE(A1:A3) >85; "Congratulations! You are ready to advance to the next module"; "Failed. Please review the material again. If necessary, contact your instructor for help")
Depending on the average, the student would either receive the message for congratulations of failure.
Notice that the nested formula for the average does not require its own equal sign. The one at the start of the equation is enough for both formula.
If you are new to spreadsheets, the best way to think of functions is as a scripting language. I've used simple examples in order to explain more clearly, but, through nesting of functions, a Calc formula can quickly become complex.
For instance, a few years ago, when I was thinking of writing a book on OpenOffice,org, Kohei Yoshida offered to me the following as an example of what a formula can do:
This is a formula for calculating the distance between two locations in kilometers, based on their longitudes and latitudes. In the formula, cells E3 and E4 give the longitude and latitude respectively of one location, while cells E8 and E9 give the same information for the other.
If you examine this formula, you'll soon understand that the comparison of functions to a scripting language is not much exaggerated. That's why an expert formula writer can earn money comparable to an experienced programmer's.
Of course, you may not have such elaborate purposes. But, in Part 2, I'll talk about how to work with functions and some of the simple uses that any user may find for them.
Bruce Byfield is a computer journalist who writes regularly for the Linux.com and Linux Journal web sites.
Bruce Byfield (nanday)
|Dynamic DNS—an Object Lesson in Problem Solving||May 21, 2013|
|Using Salt Stack and Vagrant for Drupal Development||May 20, 2013|
|Making Linux and Android Get Along (It's Not as Hard as It Sounds)||May 16, 2013|
|Drupal Is a Framework: Why Everyone Needs to Understand This||May 15, 2013|
|Home, My Backup Data Center||May 13, 2013|
|Non-Linux FOSS: Seashore||May 10, 2013|
- Dynamic DNS—an Object Lesson in Problem Solving
- Making Linux and Android Get Along (It's Not as Hard as It Sounds)
- Using Salt Stack and Vagrant for Drupal Development
- New Products
- RSS Feeds
- A Topic for Discussion - Open Source Feature-Richness?
- Validate an E-Mail Address with PHP, the Right Way
- Drupal Is a Framework: Why Everyone Needs to Understand This
- Readers' Choice Awards
- The Secret Password Is...
- All the articles you talked
1 hour 34 min ago
- All the articles you talked
1 hour 37 min ago
- All the articles you talked
1 hour 39 min ago
6 hours 3 min ago
- Keeping track of IP address
7 hours 54 min ago
- Roll your own dynamic dns
13 hours 8 min ago
- Please correct the URL for Salt Stack's web site
16 hours 19 min ago
- Android is Linux -- why no better inter-operation
18 hours 35 min ago
- Connecting Android device to desktop Linux via USB
19 hours 3 min ago
- Find new cell phone and tablet pc
20 hours 1 min ago
Enter to Win an Adafruit Pi Cobbler Breakout Kit for Raspberry Pi
It's Raspberry Pi month at Linux Journal. Each week in May, Adafruit will be giving away a Pi-related prize to a lucky, randomly drawn LJ reader. Winners will be announced weekly.
Fill out the fields below to enter to win this week's prize-- a Pi Cobbler Breakout Kit for Raspberry Pi.
Congratulations to our winners so far:
- 5-8-13, Pi Starter Pack: Jack Davis
- 5-15-13, Pi Model B 512MB RAM: Patrick Dunn
- 5-21-13, Prototyping Pi Plate Kit: Philip Kirby
- Next winner announced on 5-27-13!
Free Webinar: Hadoop
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers
Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.
Some of key questions to be discussed are:
- What is the “typical” Hadoop cluster and what should be installed on the different machine types?
- Why should you consider the typical workload patterns when making your hardware decisions?
- Are all microservers created equal for Hadoop deployments?
- How do I plan for expansion if I require more compute, memory, storage or networking?