Date: prev next · Thread: first prev next last


Den 2 februari 2013 14:24 skrev Jan Öhman <Jan_Ohman@glocalnet.net>:
Hej!
Jag sitter och "klurar" runt några formler.

Några oväntade resultat dök upp.
Ska det vara så?
_____________________________________-

Det ena.
Antag att i cellen
- B2 finns inget
- B3 står det "100.-" och i
- B4 står det "100:-"
(inte samma tecken efter 100)

I nedanstående celler finns samma formel.
- C2 innehåller formel "=SÖK(".-";B2;1)" och i
- C3 innehåller formel "=SÖK(".-";B3;1)" och i
- C4 innehåller formel "=SÖK(".-";B4;1)"

Resultatet för mig blev i cell
- C2 "#Värde"
- C3 "4"
- C4 "4"

Jag hade förväntat mig att få "#Värde"-fel i både cell C2 och C4,
eftersom jag söker något som inte finns i cell B4...

Tycker inte att det stämmer - på ett sätt.
Får Ni samma resultat?

Det är korrekt. Se hjälpen:
SÖK
Returnerar positionen för ett textsegment i en teckensträng. Du kan
ange var sökningen ska börja. Söktexten kan vara ett tal eller en
teckenföljd. Sökningen är inte versalkänslig.
Sökningen stöder reguljära uttryck. Du kan till exempel skriva "all.*"
om du vill hitta den första förekomsten av "all" följt av vilka tecken
som helst. Om du vill söka efter text som också är ett reguljärt
uttryck måste du skriva \ före varje tecken. Du kan aktivera och
inaktivera den automatiska utvärderingen av reguljära uttryck i
Verktyg – Alternativ – LibreOffice Calc – Beräkna.


"." betyder ”valfritt tecken”. Om du menar en punkt och inget annat,
måste du skriva ”\.”:
=SÖK("\.-";B2;1)"

________________________________

Nästa överraskning jag fick var följande.

Antag att i cellerna .:
- B10 finns 10 kr
- B11 finns 9,95
- B12 är tom

Formeln i cellerna
- C10 är =TEXT(B10;"###.##")
- C11 är =TEXT(B11;"###.##")
- C12 är =TEXT(B12;"###.##")

Resultatet i Cell
- C10 blev "10"
- C11 blev "9,95" (komma inte punkt)
Har att göra med dina språkinställningar, skulle jag tro.

Ur hjälpen:
=TEXT(12,34567;"###.##") returnerar texten 12,35
=TEXT(12.34567;"000.00") returnerar texten 012.35

Verkar som att rad två är felaktig där, något som kanske bör ändras
på! Niclas, är du där…? :P
Dessutom verkar det inte stämma heller. Efter lite experimenterande
verkar det som att du hellre ska använda kommatecken som decimal.
Använder du exempelvis punkt som tusentalsavgräånsare och komma som
decimaltecken verkar det fungera som väntat. Gör man tvärt om blir det
”inge bra”…

Exempel:
A1 = 1234567,89
=TEXT(A1;"###.###.###,###") → 1.234.567,89 → OK.
=TEXT(A1;"###,###,###.###") → 1234567,89,. → Oväntat resultat. Kanske
helt enkelt ett otillåtet skrivsätt?
=TEXT(A1;"### ### ###,###") → 1 234 567,89 → Snyggt, svenskt och väntat. OK.
=TEXT(A1;"### ### ###.###") → 1 234. 568 → Oväntat igen.

Det verkar kort sagt som att man helt enkelt ska använda kommatecken
och inget annat som decimalseparator.
Den svenska hjälptexten borde alltså ändras till:
=TEXT(12,34567;"###,##") returnerar texten 12,35
=TEXT(12.34567;"000,00") returnerar texten 012,35


- C12 blev ","
Däremot mer oväntat. Kanske man skulle rapportera som en bugg?
Även ”0” ger detta resultat, för övrigt.

Anger du istället "##0,##” får du ett lite snyggare resultat: 0 → 0,
<tom cell> → 0. Dock misstänker jag att du inte vill ha 0 som resultat
av en tom cell.


"Komma" (inte punkt) i C11 kan jag acceptera,
men I cellen C12 hade jag förväntat mig "tomt".
"Kommat" kommer inte med i cellen C10

Problemet löstes med följande formler i C10 - C12 .:
=OM(B10<>"";TEXT(B10;"#####.##");"")
=OM(B11<>"";TEXT(B10;"#####.##");"")
=OM(B12<>"";TEXT(B10;"#####.##");"")


Skall TEXT funktionen lämna ifrån sig ett "komma" på tom inmatning?

Något man kanske borde fråga utvecklarna om. Frågar du mig är svaret i
alla fall nej.

Anger jag formeln (varför man nu vill göra det)
=TEXT("";"###.##") följer inte "kommat" med.

När det gäller cellers egenskaper så är värde och text två skilda
egenskaper. En tom cell har värdet 0. Förr hade även celler med ren
text i värdet 0, men numera får man ett felmeddelande istället om man
försöker göra en matematisk beräkning på en cell med text i. För att
komma runt detta anger man istället N(A1) för att få fram cellens
värde, alltså 0 om cellen bara innehåller text.


Johnny Rosenberg


//Jan

-- 
For unsubscribe instructions e-mail to: users+help@sv.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/sv/users/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.