<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<head>
	<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1">
	<TITLE></TITLE>
	<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1  (Linux)">
	<META NAME="CREATED" CONTENT="20040408;22520700">
	<META NAME="CHANGEDBY" CONTENT="Kevin Carr">
	<META NAME="CHANGED" CONTENT="20040408;22580500">
</head>
<body LANG="en-US" DIR="LTR">
<H2 ALIGN=CENTER STYLE="margin-top: 0in">How to Carry out Simple
Calculations</H2>
<H2 ALIGN=CENTER STYLE="margin-top: 0in">and</H2>
<H2 ALIGN=CENTER STYLE="margin-top: 0in">Format Cells and Sheets in a
Folder.</H2>
<H2 ALIGN=CENTER STYLE="margin-top: 0in">&nbsp;</H2>
<H5 ALIGN=CENTER STYLE="margin-top: 0in"><I>provided by</I></H5>
<H5 ALIGN=CENTER STYLE="margin-top: 0in"><I>the OpenOffice.org
Documentation Project</I></H5>
<H2 ALIGN=CENTER STYLE="margin-top: 0in">&nbsp;</H2>
<P><B>Table of contents :</B> 
</P>
<OL>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="#1">A quick introduction</A>.
	Introduction to the tools available in the Calc environment 
	</P>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="#2">Initial Calculations</A>.
		</P>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="#3">Personalized
	Formatting</A> 
	</P>
	<LI><P STYLE="margin-bottom: 0in"><A HREF="#4">Printing your work</A>
		</P>
	<LI><P><A HREF="#5">Credits</A> 
	</P>
</OL>
<H3 STYLE="margin-top: 0in"><A NAME="1"></A>1. A quick introduction.
Introduction to the tools available in the Calc environment. 
</H3>
<P>Before you start doing those highly advanced calculations that you
will no doubt be spinning off in no time, let's take a brief look at
your work surroundings to familiarize yourself with the tools that
have been made available. 
</P>
<P><IMG SRC="image1.jpg" NAME="Image1" ALIGN=MIDDLE WIDTH=628 HEIGHT=471 BORDER=0><BR>&nbsp;
<BR>&nbsp; <BR>&nbsp; 
</P>
<P>Just below the title bar (the one with the butterfly) you will see
four command toolbars : 
</P>
<UL>
	<LI><P STYLE="margin-bottom: 0in">A <B>Menu toolbar</B> 
	</P>
	<LI><P STYLE="margin-bottom: 0in">A <B>Function toolbar</B> 
	</P>
	<LI><P STYLE="margin-bottom: 0in">An <B>Object toolbar</B> 
	</P>
	<LI><P>A <B>Calculation toolbar</B> 
	</P>
</UL>
<P>The <B>Menu toolbar</B> contains the main menus of the Calc
module. The <B>Function toolbar</B> provides user access to function
icons such as <B>Open, Save, Copy, Cut, Paste</B> and other common
tasks in OpenOffice.org. The <B>Object toolbar </B>comprises a set of
tools that are specific to calculation and cell formatting (number
format, text alignment, borders). Finally, the <B>Calculation toolbar</B>
is intended for the entry of formulae necessary for your
calculations, and also shows you the position of the cursor within
the spreadsheet.</P>
<P>&nbsp;</P>
<P><I><B>NB</B> : Some people believe that these toolbars can not be
changed, but this is not actually true. It is in fact possible to
modify the icons and the associated functions according to your needs
by clicking on the right mouse button of the main toolbar or the
Object toolbar. A context-sensitive menu will then appear. Next,
choose `<B>Configure</B>' or `<B>Customize</B>' in order to change
the contents of the toolbar. You can also select `<B>Visible Buttons</B>'
and add or remove the buttons of your choice. You can also add an
extra toolbar from the same context-sensitive menu, called <B>Options
toolbar </B>which , by default, is not shown. This bar contains
several additional buttons that are in fact useful positioning or
modification tools.</I></P>
<P>&nbsp;</P>
<P ALIGN=LEFT><IMG SRC="Image3.jpg" NAME="Image2" ALIGN=RIGHT WIDTH=30 HEIGHT=394 BORDER=0>On
the left of the screen, you will notice the <B>Instrument toolbar
</B>(shown here on the right). This toolbar provides the tools that
you will need to work with your spreadsheet. The basic functions of
the toolbar are explained in this `How-to'. At the bottom of the
screen, you will notice the <B>Status Bar</B>. This bar provides
essential information such as the sheet that you're currently working
on, the page style, and in normal mode, the sum of the cell in which
the cursor is situated.</P>
<P ALIGN=LEFT>&nbsp;</P>
<P><I><B>NB :</B> A right mouse button click in the box where Sum is
written will give you access to a context-sensitive menu that
proposes other choices, such as mean, maximum, minimum...</I></P>
<P>You will also notice that the folder you have just opened contains
three worksheets by default, indicated by the presence of three small
tabs above the Status Bar and bearing the names : Sheet1, Sheet2,
Sheet3.</P>
<P>The spreadsheet is represented as a grid comprising cells, with
each cell bearing a unique reference. A cell is referenced by its
column (vertical reference), given here as a letter (e.g. A...Z
etc.), and its line (horizontal reference), given here as a number
(e.g. 1...65000 etc.), These references appear as grey column and
line headers on the spreadsheet. Thus, the first cell in the first
line (the one at the uppermost left hand corner) bears the reference
A1.</P>
<H3 STYLE="margin-top: 0in"><A NAME="2"></A><B>2. Initial
Calculations</B></H3>
<P>If you 've jumped to this section without having read the
preceding paragraphs, it might be a good idea to go back and read
them now anyway, since the terms that will be used here were
introduced previously. However, if you too impatient, tired, excited
or even bored to do that , read on and we'll take a look at how to
carry out additions with Calc !</P>
<P>As mentioned above, the boxes that you see formed by the grid are
called cells. You can enter text, numbers or formulae in these cells.
Of course, the whole &quot;raison d'etre&quot; of a spreadsheet
application is to be able to carry out calculations within these
cells. 
</P>
<P>Anyway, enough of the waffle, let's go and try our first
calculation ! : 
</P>
<OL>
	<P>In the cell A1 type (without the quotes) &quot;=3&quot; 
	</P>
	<P>Then press `<B>Enter</B>' on your keyboard 
	</P>
	<P>And you should see &quot;3&quot; appear in the cell, since the
	result of the calculation appears automatically. 
	</P>
</OL>
<P>Your cursor should now be in the cell immediately below the cell
A1, but if you click once more in cell A1, you will see the
mathematical operation that you have just entered shown in the
<B>Calculation toolbar</B> .</P>
<P>Let's carry on : now type 6 in cell A2 and we'll request the
result of the addition of cell A1 to cell A2 and have the result
displayed in cell A3. Here's how it's done :</P>
<OL>
	<P>Place the cursor in cell A2, and type 6 
	</P>
	<P>Confirm this data entry by pressing the button '<B>Enter</B>',
	and your cursor will move to cell A3 
	</P>
	<P>Type (without quotes) &quot;=A1+A2&quot; 
	</P>
	<P>Confirm with `<B>Enter</B>', and you will see the result
	displayed as &quot;11&quot; in cell A3 
	</P>
</OL>
<P>This last calculation was carried out using the cell references
and not discreet values.</P>
<P>Let's go ever onward, and try adding up a whole column of cells,
i.e. a range. Click on Sheet2 to get a clear sheet.</P>
<OL>
	<P>Type in some numbers in cells A1 to A9 
	</P>
	<P>Confirm with `<B>Enter</B>', and the cursor will move to cell A10
		</P>
	<P>Type (without quotes) &quot;=sum(A1:A9)&quot; 
	</P>
	<P>Confirm with `<B>Enter</B>', and you will view see the result of
	the addition displayed in cell A10, and the formula will be visible
	in the Calculation bar.</P>
</OL>
<P>By typing the colon [ : ] between the cell references, you have
told the software that you want to add up the values in the range of
cells from A1 to A9. The range is indicated on the screen by a red
border.</P>
<P>By typing `sum ()', you are telling the software the type of
mathematical operation that you want to carry out on the referenced
cells that are between parentheses.</P>
<P><B><I>NB</I></B> : <I>You'll probably have noticed when you
started to type `<B>sum</B>', that Calc suggested the completion of
the formula. This is the <B>Autocomplete </B>function, with which it
suffices to press `<B>Enter</B>' if you agree with the suggestion
made by StarOffice, and your cursor will be positioned automatically
between the parentheses so that all you have to do is enter the
ranges.</I></P>
<P>Right, let's do it again, only this time we'll replace the colon
by a semi-colon (;) between A1 and A9. You'll notice that the result
is completely different. In this case, you have only added up the
contents of cell A1 to those of cell A9 and not the range. Thus, in
order to add two ranges of cells, you would type &quot;=sum(A1:A9;B1:B9)&quot;.</P>
<P>You can also select the ranges to be added together using the
mouse. After having typed &quot;= sum(&quot; into the target cell,
click on the first cell and whilst holding the mouse button down,
drag the mouse to the last cell of the range, and then let go of the
mouse button, and you will see the end of the formula inserted in
automatically into the Formula bar.</P>
<P><I><B>NB</B> : If the number that is displayed is too big to be
displayed completely in the cell, it will be replaced by a series of
musical flat symbols (<B>###</B>). In order to adjust the size of the
cell, all you have to do is click on the right-hand column separator
of any given column and drag the separator rightwards (to broaden) or
leftwards (to narrow). The same function can be reached through the
command <B>Format - Column - Optimal width</B>.</I></P>
<P><U>About references</U></P>
<P>It is important to grasp the basics of references when you want to
carry out calculations on cells containing formulae.</P>
<P STYLE="text-decoration: none">A relative reference is a range
whose references are adjusted when the formula is moved : <BR>e.g.. :
if you copy the formula &quot;=sum(A1:A9)&quot; to column B, it will
become &quot;=sum(B1:B9)&quot; 
</P>
<P STYLE="text-decoration: none">An absolute reference is used when a
calculation has to refer to a precise cell of the spreadsheet. This
is written for example $A$1 to designate the absolute reference for
column A and line 1. Thus $A1 is used as the absolute reference to
column A and A$1 for the absolute reference to line 1. 
</P>
<P STYLE="text-decoration: none">Now that we've finished learning
about simple calculations, let's exercise our brains (and fingers)
with some subtractions,&nbsp; multiplications and divisions ! 
</P>
<H3 STYLE="margin-top: 0in"><A NAME="3"></A>3. Personalized
formatting 
</H3>
<P>Your spreadsheet contains three sheets, Sheet1,2,3. We'll give
each sheet a name (after all, it does make it easier to remember them
!). Right-mouse button click on the tab of Sheet1, and a
context-sensitive menu will appear offering you to `<B>Rename</B>'
Click on this option. In the following window, enter the name you
wish your sheet to have and click on `<B>OK</B>', the sheet will then
display the new name in the tab. 
</P>
<P>You'll also have noticed that this context-sensitive menu offers
you the choice&nbsp; of inserting or deleting the sheet as well as
moving or copying it. Each time, a windowed dialog box will allow you
to specify your precise choice. 
</P>
<P>Let's do some work on cell formatting. Suppose you want to enter
the title of your spreadsheet over several sheets, do as follows : 
</P>
<UL>
	<P>Select all the sheets in which the title is to appear. Then with
	the mouse, click on the first cell and drag the mouse to the last
	cell of the title . 
	</P>
	<P>In the menu toolbar, select : <B>Format - Merge Cells- Define</B>
		</P>
</UL>
<P>More often than not, you will want to centre the title over the
selected cells. In order to do so :</P>
<UL>
	<P>Select the title cell 
	</P>
	<P>In the menu toolbar, select: <B>Format - Cells</B> 
	</P>
	<P>In the dialog box that appears, select the tab&nbsp; `<B>Alignment</B>'
		</P>
	<P>Click on the button `<B>Center</B>' 
	</P>
	<P>You can also select&nbsp; other options in this dialog box if you
	wish 
	</P>
	<P>Click on `<B>OK</B>' 
	</P>
</UL>
<P>If you want to set a fine border around&nbsp; your table, select
the cells, and from the menu toolbar&nbsp; choose <B>Format - Cells</B>
and click on the tab&nbsp; `<B>Borders</B>'. Choose the thickness of
the border that suits you as well as the border that you wish and
click on `<B>OK</B>'.</P>
<P>You will notice that the dialog box `<B>Cell Attributes</B>'
comprises a certain number of tabbed pages relating to cell
formatting (<B>Fonts, Font Effects, Alignment</B>). You can also
reach these tabbed pages by right-mouse button clicking on a cell and
selecting&nbsp; `<B>Format cells'</B>. And of course, the function
toolbar also contains some of these formatting functions.</P>
<P><IMG SRC="Image2.jpg" NAME="Image3" ALIGN=RIGHT WIDTH=84 HEIGHT=26 BORDER=0>Let's
look at the last three icons of the function toolbar. These three
icons allow you to position text at the top, middle and bottom of a
cell respectively. Very handy !</P>
<P>One last thing, in order to make our cells containing text to
stand out on the sheet from those containing&nbsp; numbers and
formulae, you can use the&nbsp; `<B>Value Highlighting</B>' :</P>
<UL>
	<P>From the menu toolbar, choose <B>View - Value Highlighting</B>, 
	</P>
	<P>You will note that all of the text is displayed in black, all of
	the numbers in blue and all of the formulae in green. 
	</P>
</UL>
<P><I><B>NB :</B> In order to directly format your cell as one
containing text, enter an apostrophe ( ` )&nbsp; into the cell before
typing your word , e.g. : `Price</I></P>
<P>&nbsp;</P>
<P>At last , our sheet is starting to take shape !</P>
<P>Let's look at the page settings now. Perhaps you find it easier to
work with landscape style pages, so do as follows :</P>
<OL>
	<P>From the menu toolbar, choose <B>Format - Page</B> 
	</P>
	<P>Click on the tab `<B>Page'</B> 
	</P>
	<P>At the section 'Orientation', click on the radio button
	`<B>Landscape'</B> 
	</P>
	<P>Confirm with `<B>OK'</B> 
	</P>
</OL>
<P>In order to check that your sheet has indeed been saved in the
landscape format, click on&nbsp; <B>File - Preview</B> in the menu
toolbar.</P>
<P>Staying now with the page dialog box for a while, you can add a
header, footer, and of course page numbers.</P>
<P>Let's look at this aspect more closely :</P>
<OL>
	<P>From the menu toolbar, choose <B>Format - Page</B> 
	</P>
	<P>Click on the tab `<B>Footer</B>' 
	</P>
	<P>In the window that appears, click on the bow that says&nbsp;
	`<B>Footer on</B>' 
	</P>
	<P>The button `<B>Options</B>' allows you to add a border or
	background to the footer 
	</P>
	<P>Click on the button&nbsp; `<B>Edit</B>' 
	</P>
	<P>In the window that appears, you will see three smaller windows
	and a series of icons. The smaller windows correspond to tabulation
	marks inserted into the footer and the icons to field instructions.
	The one that we're interested in has a musical flat sign (<B>#</B>)
	on it . 
	</P>
	<P>Place your cursor onto the small window that you wish to use 
	</P>
	<P>Click on the icon `<B>Page</B>' (illustrated by a single #), you
	will see the page number written into the selected window 
	</P>
	<P>Click on `<B>OK</B>' to return to the `<B>Page Style</B>' window.
		</P>
	<P>Click on `<B>OK</B>' to close this window. 
	</P>
</OL>
<P><I><B>NB :</B> You can of course insert any text that you want
into the header or the footer, and in the same way, your company or
group logo.</I></P>
<H3 STYLE="margin-top: 0in"><A NAME="4"></A><B>4. Printing your work</B></H3>
<P>It may be that you only want to print part of your spreadsheet, or
even only one sheet, or on the other hand, maybe the whole
workfolder.</P>
<P>In order to print just an area of your sheet proceed as follows :</P>
<UL>
	<P>Select the zone you wish to print with the mouse or the keyboard 
	</P>
	<P>Choose <B>Format - Print ranges... </B>from&nbsp; the menu
	toolbar. 
	</P>
	<P>Click on `<B>Define</B>' 
	</P>
	<P>You will see the selected print range appear on the sheet as two
	slightly darkened grey lines. You can check that you've selected the
	correct area by looking at the preview of the range to be printed. 
	</P>
</UL>
<P><I><B>NB :</B> In the drop-down menu under <B>Format - Print
ranges</B>, you can also add other ranges of your document to be
printed. Select the range and click on Add. This second print range
will be printed on a second page (even though it forms part of the
same sheet screen).</I></P>
<P>In order to print a single sheet from your workfolder:</P>
<UL>
	<P>click on <B>File - Print </B>from the menu toolbar 
	</P>
	<P>In the dialog box that appears, under `<B>Print Range</B>' click
	on the radio button `Pages' and enter the page number that you wish
	to print out. 
	</P>
	<P>Click on `<B>OK</B>' to start printing 
	</P>
</UL>
<P>In the same Print range field of the dialog box, you could also
have indicated for example (2,3) to print page 2 and page 3 or even
(2-5) to print from page 2 to page 5 .</P>
<P>A quicker way is to select the sheets to be printed&nbsp; and then
to click on the print icon in the function bar. To do this :</P>
<UL>
	<P>Click on the sheet tab at the bottom of the sheet and select the
	ones you wish to print by holding down the <B>CTRL</B> key on your
	keyboard. In this way, you do a multiple selection of the sheets 
	</P>
	<P>Click on the icon&nbsp; `<B>Quick printing</B>' in the function
	toolbar. Off it goes ! 
	</P>
	<P>To undo your selection, click once more on the sheet tab and hold
	the <B>CTRL</B> key down.</P>
</UL>
<P>In order to print only certain columns or lines from your sheet :</P>
<UL>
	<P>Select the lines or columns to print 
	</P>
	<P>Select `<B>File - Print</B>' from the menu toolbar 
	</P>
	<P>In the dialog box that appears, click on the box `<B>Selection</B>'
	in `Print range' 
	</P>
	<P>Click on `<B>OK</B>' 
	</P>
</UL>
<H3 STYLE="margin-top: 0in"><A NAME="5"></A><B>5. Credits</B></H3>
<P><B>Author</B> : Sophie Gautier</P>
<P><B>Thanks to</B> : Alexander Thurgood for his precious help</P>
<P><B>Intgr by</B> : Gianluca Turconi</P>
<P><B>Last modified</B> : January 16, 2002</P>
<P><B>Contacts</B> : OpenOffice.org Documentation Project
<A HREF="http://documentation.openoffice.org/index.html">http://documentation.openoffice.org/index.html</A></P>
<P><B>Translation</B> : Alexander Thurgood 
</P>
<P>&nbsp;</P>
</body>
</HTML>
