# Dagens OpenOffice.org-tips
Author: [Borttaget]

**Villkorlig formatering i OpenOffice.org – oanvändbart?**  
Många, eller i alla fall några, förfasar sig lite då och då på en mycket frustrerande begränsning i OpenOffice.org Calc, alltså kalkylprogrammet i OpenOffice.org, det som motsvaras av Excel i MS Office. Begränsningen gäller villkorlig formatering, som går ut på att man bara kan definiera tre (3) olika villkor. Ni som använder Excel skrattar säkert högt och börjar referera till Excel '97 och liknande, som hade samma tillkortakommande. När det gäller nuvarande version av Excel har jag sett lite olika versioner av hur många villkor som tillåts, alltifrån 64 stycken till hur många som helst. Detta spelar nog en mindre roll eftersom få ens orkar bry sig om att försöka knappa in ens 50 villkor, men det är betydligt fler än 3 i alla fall.  
  
När det gäller OpenOffice.org Calc så ligger det faktiskt ute en buggrapport, eller snarare en önskan om förbättring i denna aspekt, sedan 2002 som ingen brytt sig nämnvärt om, tyvärr. Ska dock tillägga i ärlighetens namn, att ganska många av de buggar och förbättringsönskningar jag själv rapporterat om faktiskt slagit igenom, så jag finner det ändå lite konstigt att just denna finess fått vänta, trots att ett antal personer visat intresse för den.  
  
**Problem**  
Anta att du kanske har någon lista av något slag över ett antal personer som förekommer på ett antal olika ställen i tabellen. Förmodligen i en och samma kolumn, men det spelar ingen roll. För att göra det lite lättare att direkt se alla förekomster av en viss person är ju då praktiskt om man kunde färgmärka alla genom att tilldela en viss bakgrundsfärg, helst automatiskt då. Är jag då blå så ser jag ju direkt att jag är med där, där och där. Men är man tio personer så räcker ju inte tre villkor särskilt långt. Är man typ 100 personer så är det nog ändå ingen bra idé eftersom det ändå kommer att bli för många färger som är för lika varandra, men det är en annan femma.  
  
**Krystad nödlösning 1**  
Detta med antalet kan man komma runt på flera olika sätt, exempelvis genom att skriva makron som använder ”lyssnare” (listeners) på olika objekt, exempelvis celler eller cellområden och vidtar åtgärder när någon cell ändrats. Detta är dock inget för gemene man att pyssla med och till och med jag själv tycker att det är lite knepigt, trots viss vana genom åren.  
  
**Krystad nödlösning 2**  
Man kan ju också tänka sig att man skapar en dialogruta för inmatning av sina data och sedan låter ett makro placera dit uppgifterna på rätt ställe, formaterat och klart. Inte heller det är någon bra ”gemene-man-lösning”, för det kräver ju lite kodning, det också. Dessutom måste man ju designa en dialogruta…  
  
**Krystad nödlösning 3**  
Ett annat sätt är ju att mata in sina data på ett kalkylblad utan formateringar och sedan skapa ett annat kalkylblad som man har för att titta på, med automatisk formatering.  
  
OpenOffice.org är ju formatmalls-baserat. Lär man sig att använda formatmallar från början kommer allting att gå väldigt smidigt och man kan enkelt göra stora förändringar i stora dokument med minimal ansträngning.  
  
Ett knep är ju då, om vi håller oss till exempelproblemet ovan med ungefär tio personer som ska synas på ett kalkylark, att skapa ett antal formatmallar som har de bakgrundsfärger, teckensnitt och annat som man önskar i olika situationer. Dessa ger man passande namn, nämligen samma namn som personerna. Så om Tabell2 är organiserat på samma sätt som Tabell1 och vi matat in våra data i Tabell1 samt att Tabell2 då är det kalkylark vi vill titta på, så kan man ju då exempelvis i B22 i Tabell2 skriva:  
  
\=Tabell1.B22 & FORMATMALL(Tabell1.B22)  
  
Dock returnerar funktionen FORMATMALL 0 (noll), så vi kommer att få en ovälkommen nolla i cellen. Den kan vi visserligen göra oss av med, men det börjar redan att se lite osmidigt ut:  
  
\=VÄNSTER(Tabell1.B22 & FORMATMALL(Tabell1.B22);LÄNGD(Tabell1.B22))  
  
Tanken med FORMATMALL() är nog att man ska använda det på numeriska värden, exempelvis:  
  
\=A1 \* B3 / C37 + FORMATMALL("BLABLABLA")  
  
Då formatmall returnera noll förändrar ju inte det värdet på resultatet i detta fall.  
  
**Mindre krystad lösning – den lösning som hela detta ”dagens tips” handlar om**  
Skapa en formatmall för varje namn, exempelvis så att formatmallen ”Gustav” innebär vit text på blå bakgrund, ”Bengt” får svart text på ljusröd bakgrund och så vidare.  
Markera de celler, eller hela rader eller kolumner, där namnen kan förekomma.

Ha koll på vilken av cellerna i området som är den markerade. Det brukar vara en liten ram runt den. I detta exempel antar vi att det blev A1, men om det blev en annan cell måste A1 i den mycket enkla formeln nedan bytas ut mot den cell som är markerad, annars kommer fel celler att bli formaterade.

Klicka nu Format ? Villkorlig formatering… och se till att Villkor 1 är ibockat. Det är det förmodligen.

I en ruta strax därunder är ”Cellvärdet är" förvalt. Ändra till ”Formeln är”.

Fältet till höger blev nu större och ett fält försvann. I det breda fältet skriver du nu: OM(A1<>"";FORMATMALL(A1))

Klicka ”OK” för att stänga dialogrutan ”Villkorlig formatering”.  
  
Prova nu att mata in något som har samma namn som en existerande formatmall. Givetvis måste detta ske i en av de celler du markerade innan du öppnade dialogrutan ”Villkorlig formatering”. Cellens format kommer nu omedelbart att ändras när du trycker Enter.  
  
På detta sätt kan du ha i princip hur många villkor som helst, det är ju bara högsta tillåtna antalet formatmallar som begränsar, och hur många det är, är för mig okänt.

I exemplet ovan förutsätter jag ju också att man inte matar in något som inte har en motsvarande formatmall. Man skulle kanske kunna tänka sig att man bakar in någon sorts felhantering i detta, men det känns inte helt nödvändigt, för om man råkar stava fel så ser man ju omedelbart att formatet i cellen inte ändrades och då inser man nog ganska snart att man stavat fel.  
  
Det ska väl också sägas att det luktar lite specialfall om detta. Det är nog lite svårare att tillämpa på numeriska värden, exempelvis. Dock blir det ju inte omöjligt eftersom du med ovanstående metod kan använda nästlade OM-satser i dialogrutan ”Villkorlig formatering”, exempelvis OM(A1>2;OM(A1>3;OM(A1>4;OM(A1>5;FORMATMALL("BLÅ");FORMATMALL("GRÖN"));FORMATMALL("GUL"));FORMATMALL("RÖD"));FORMATMALL("Standard")). I just detta exempel har vi alltså fem villkor:

1: A1 = 2 ? ”Standard”  
2: 2 < A1 = 3 ? ”RÖD”  
3: 3 < A1 = 4 ? ”GUL”  
4: 4 < A1 = 5 ? ”GRÖN”  
5: A1 > 5 ? ”BLÅ”  
  
Testade just detta och det fungerar också. Lite bökigare dock än första exemplet med namn, så det blir nog ändå en viss förbättring när OpenOffice.org överger den märkliga begränsningen på tre villkor.

Vet inte om någon begrep vad jag skrev om här ovan, men om det behövs någon exempelfil eller liknande kan jag ju försöka åstadkomma en sådan och lägga upp här på ett eller annat sätt. Tror inte att ODF-filer går att ladda upp här, men jag kan ju i så fall ladda upp den någon annanstans och bifoga en länk eller så. Som om någon över huvud taget har orkat traggla sig igenom denna text…

![Tungan ute](http://datorn.ifokus.se/tiny3/plugins/emotions/img/smiley-tongue-out.gif "Tungan ute")![Skrattande](http://datorn.ifokus.se/tiny3/plugins/emotions/img/smiley-laughing.gif "Skrattande")

## Comment 1
Author: [Borttaget]

Jippie! Eller hur?

Jaså, inte det? Men jag tyckte det var bra i alla fall. Det är väl kanske så att det bara är jag här som använder OpenOffice.org över huvud taget, eller så kan det ju också vara så att de två andra som använder det redan kände till denna elementära funktion, som faktiskt inte fanns för bara några få versioner sedan.

Eller så skrev jag för långt så att ingen orkade läsa. Det gjorde jag, va? Attans också… Får ta till mig av denna svidande kritik tills nästa gång…

Eller så sover alla nu eftersom det är måndag snart och folk kanske jobbar eller något, istället för att som jag, ha semester i **ytterligare två veckor**! He he he… Och jag har redan haft tre…

\*Njuter\*

## Comment 2
Author: Jalking

Fortsätt gärna ge smarta tips om OO. Det uppskattas!

Jag tillhör en kategori OO-användare  som jag tror är ganska stor. Jag _vill_ använda OO, men kör oftast MS Office av gammal vana. Ibland startar jag OO och konstaterar att det är ett riktigt bra program som jag borde använda istället för MS, sen blir det ändå MS när jag jobbar "skarpt". Dina OO-tips kan nog hjälpa till att leda in oss ofrälsta på den rätta vägen.

Betr. tipset ovan började jag läsa men kom fram till att det är en funktion jag aldrig har använt i Excel och troligen inte kommer att använda i OO heller. Skummade igenom sista halvan. (Jag tillhör inte de avancerade kalkylprogramsanvändarna.)

## Comment 3
Author: [Borttaget]

Jag blir lätt opedagogisk när jag väl börjar skriva. Vill säga allt på en gång och det går ju inte… Försökte i alla fall med rubriker i fetstil så att det skulle vara lite lättare att följa. Tänkte att många kanske finner det onödigt att traggla igenom rubrikerna om krystade nödlösningar och då ser man ju enkelt vad man kan hoppa över. Men jag ser nu att den egentliga lösningen i texten blev lite väl lång och att kanske ytterligare någon rubrik hade varit på sin plats, men man lär sig väl lite för varje gång man försöker.

Kanske en missvisande titel också, det där med dagens tips. Det låter ju som att det kommer ett tips varje dag, och det gör det nog inte… Just detta kom av anledningen att jag råkade se det när jag läste en bugg-rapport om just begränsningen med tre villkor. Har själv försökt med liknande knep, speciellt några av de ”krystade nödlösningarna” jag nämner, men det blir ju lite bökigt.

Jag har själv heller inget större behov av detta, utan det brukar räcka bra med tre villkor i mina tillämpningar, men jag har ju sett ganska ofta att folk efterfrågar fler villkor, så jag tänkte att nu när jag råkade se detta tips, som faktiskt inte fungerade när jag själv försökte en liknande lösning för något år sedan, kunde jag ju gärna dela med mig av det, nu när det tydligen plötsligt skulle fungera. Kanske är det någon här som frustrerats av samma sak tidigare.

Denna lösning är ju givetvis inte lika enkel som om man hade haft möjlighet till oändligt antal villkor redan från början, men jag tycker ändå inte den är särskilt krånglig och den lilla formel man får skriva behöver man ju bara skriva en gång, sedan kan man ju kopiera cellens format vart man vill.

Idag är det ju en annan dag, och jag tror inte att jag kommer att skriva ett långt beskrivande tips idag, så det får bli ett kort tips, lite relaterat till mitt förra:

**Dagens tips**

Använd **formatmallar** så mycket som möjligt och håll inte på att formatera manuellt. Det kommer garanterat att löna sig i längden. Ett första steg är då att trycka F11 för att få upp vilka formatmallar man redan har. Dessa kan man högerklicka på för att ändra dem eller skapa nya.

Ni som använder exempelvis Ubuntu, som har Go-OO förinstallerat, snarare än OpenOffice.org (Go-OO är en variant på OpenOffice.org) har helskärm kopplad till F11. Använd då menyerna istället: Format ? Formatmallar och formatering. Givetvis går det att koppla den, liksom allt annat i menyerna, till ett kortkommando: Verktyg ? Anpassa…

Ge formatmallarna vettiga namn.

Man kan länka formatmallar till andra formatmallar. Exempelvis om du länkar till formatmallen MinFormatmall som du gett en teckenstorlek på 12, så kommer den nya formatmallens teckenstorlek att anges i procent av denna, säg att vi väljer 110%. Ändrar du sedan MinFormatmalls teckenstorlek till 14 så kommer den nya formatmallens teckenstorlek att fortfarande vara 110% av MinFormatmall, det vill säga även den nya formatmallens teckenstorlek kommer att öka i motsvarande grad, det vill säga från 13,2 till 15,4.

Hur som helst, vad du än gör i OpenOffice.org, som har med format att göra, så kommer formatmallarna in på ett eller annat sätt. Skapa hellre en ny formatmall, om möjligt, än att börja fippla med manuell formatering. Vill du exempelvis ändra dina rubriker senare, och de förekommer på hundratals ställen, är det enkelt att bara ändra i formatmallen så blir hela dokumentet ändrat på en gång.

Det finns formatmallar för annat än bara stycken och celler också, så klart: Teckenformat, sidformat och så vidare.

Sidformat är ju användbart i OpenOffice.org Writer (ordbehandlaren), framför allt. Man kanske inte vill ha sidnummer på första sidan och man kanske vill ha sidnummer på ena sidan på udda sidor och på andra sidan på jämna sidor. Då kommer sidformatmallarna väl till pass. Redan från början har du några användbara mallar som du kan gå in och ändra i, exempelvis mallar för just udda och jämna sidor som är länkade till varandra: Om en sida använder Udda-mallen kommer nästa sida att använda Jämn-mallen och tvärt om, tills man själv bryter mönstret med en annan mall.

För den som vill veta mer finns ju alltid Hjälp. Vill man söka på nätet så kan det vara bra att veta att Formatmallarna kallas Styles på engelska.

Även ni som använder MS Office kan ju förmodligen med fördel använda formatmallar, men det verkar inte inte som att man blir lika uppmuntrad att göra det där. Det är väl kanske därför en del får problem när de byter till OpenOffice.org, att de använder det på samma sätt som de använde MS Office. Gör inte det.

När man läser om folks problem av formatkaraktär i OpenOffice.org Writer i forum och mail-listor bottnar problemen ofta i att man inte använt formatmallar från början. Då blir det så klart lite extrajobb om man ska införa dem i efterhand, men även det lönar sig nog i de flesta fall.

Men kontentan av dagens tips  kan man nog ändå tillämpa på det mesta här i livet:

**Gör rätt från början!**

Hm… det blev visst lite långt ändå till sist och denna gång helt ostrukturerat… Dags att göra lite frukost här, tror jag…

Ha det bra!
