Viser opslag med etiketten diagram. Vis alle opslag
Viser opslag med etiketten diagram. Vis alle opslag

lørdag den 18. marts 2017

Nyt i LibreOffice 5.4: Pivotdiagrammer

Det er godt nok tidligt, men allerede nu kan vi begynde at glæde os til næste version af LibreOffice. Version 5.3 udkom i slutningen af januar i år, og version 5.4 kan forventes omkring august eller september.

Det kan du læse mere om på denne side: libreofficedk.blogspot.dk/p/blog-page.html

Pivotdiagrammer

Pivottabeller er et virkningsfuldt værktøj til at vende og dreje, manipulere og opsummere et datasæt i regnearket for at få værdifulde oplysninger vist.

For at få en hurtig visuel repræsentation af informationerne, kan pivotdiagrammer anvendes. Et pivot-diagram kan oprettes ud fra pivottabeller, og hvis pivottabellen bliver ændret, så gør pivotdiagrammet automatisk opdateret.

Pivottabeller har været tilgængelig i LibreOffice i lang tid, men der har hidtil ikke været pivotdiagrammer.

Pivotdiagrammer vil blive frigivet i LibreOffice 5.4.

Diagrammet er et normalt diagram, blot er datakilden ikke som normalt kolonner, rækker og celler, men en kæde direkte til en pivottabel.


Det har tidligere været muligt at oprette et diagram med en pivottabel som kilde, og opdatering i data har da også resulteret i opdatering af diagrammet. Men ændringer i pivottabellen har ikke resulteret i automatisk opdatering (ændring) i diagrammet. Det er tilfældet nu, hvor eksempelvis tilføjelse af en ny dimension i pivottabellen automatisk slår igennem i diagrammet.

Udvikleren Tomaž Vajngerl, som er betalt af Nantes Métropole og Ville de Nantes, har lavet en lille video, hvor funktionen kan opleves.
Video: https://youtu.be/xRulORXWhP8

Blog-indlæg på engelsk: https://tomazvajngerl.blogspot.dk/2017/03/pivot-charts-in-libreoffice-part-1.html




torsdag den 22. december 2016

Regneark for eksperter

Er du en haj til regneark, eller vil du gerne være en haj?

Så kan du sikkert have interesse i to vejledninger som er målrettet universitetsstuderende. Niveauet er forholdsvis højt, men jeg tror alligevel de fleste kan få nytte af eksemplerne.

Introduktion til statistik

Dana Lee Ling er professor ved universitetet i Mikronesien, og har blandt sine mange akademiske opgaver, at undervise sine studerende i statistik. Han har skrevet en vejledning  “Introduction to Statistics Using LibreOffice Calc”.

Vejledningen introducerer emner som populationer og prøver, måling af middelværdi og spredning, visualisering af data, parrede data og scatter-diagrammer, sandsynlighed, fordelinger, normalfordelingen, og z-værdier, konfidensintervaller for middelværdien, hypotesetest mod en kendt populations middelværdi og hypotesetest af to prøver middelværdier.

Du kan finde vejledningen (engelsk) her: http://www.comfsm.fm/~dleeling/statistics/text5.html
 

Problemløsning (solver-funktion)

Er du mere til problemløsning har Harvard University og MIT offentliggjort en introduktion til anvendelsen af "Problemløser...". Funktionen kan løse både lineære og ikke-lineære programmeringsfunktioner.

Denne vejledning er en trin-for-trin guide som fører dig igennem opgaven:
1) Indlæs problemløseren til dit regneark
2) Definer problemet og skriv formler for formål og begrænsninger
3) Løs problemet

Du kan finde vejledningen (engelsk) her: https://courses.edx.org/asset-v1:MITx+CTL.SC2x_2+2T2016+type@asset+block/Solver_Tutorial_and_Debug_v1.pdf

fredag den 14. oktober 2016

Calc makro: Diagram fra ukendt antal rækker

Her er så den samlede makro, som opretter et linjediagram på baggrund af de udfyldte celler (uanset hvor mange rækker).

Resultatet:



Makroen:

REM  *****  BASIC  *****

Sub GetAllCells
  Dim oSheet
  Dim oCell
  Dim nEndCol As Integer
  Dim nEndRow As Integer
  oSheet = ThisComponent.Sheets.getByName("Statistik")           
  nEndCol = getLastUsedColumn(oSheet)
  nEndRow = getLastUsedRow(oSheet)
  oCell = oSheet.GetCellByPosition( nEndCol + 1, nEndRow + 1 )     
  Print oCell.AbsoluteName
  oAddress = oSheet.getCellRangeByPosition(0,0,nEndCol,nEndRow)
  oArea= oAddress.AbsoluteName     'på formen A3:B4
  CreateChart (oArea)              'her kalder vi næste subrutine
End Sub


Sub CreateChart (sDataRng)          'Modtager parameter
  sName = "Statistik-diagram"
  oSheets = thisComponent.Sheets
  oSheet = oSheets.getByName("Statistik")
  oAddress = oSheet.getCellRangeByName( sDataRng ).getRangeAddress()
  oCharts = oSheet.getCharts()
  If NOT oCharts.hasByName(sName) Then
    oRect       = createObject("com.sun.star.awt.Rectangle")
    oRect.X     = 10000    '1/100mm
    oRect.Y     = 1000
    oRect.width = 20000
    oRect.Height= 10000

    oCharts.addNewByName(sName, oRect, Array(oAddress), True, False)
  End If

  oChart = oCharts.getByName( sName )
  oChart.setRanges(Array(oAddress))
  oChart.HasRowHeaders=True
  oChart.HasColumnHeaders=True
  oChartDoc = oChart.getEmbeddedObject()

  oTitle = oChartDoc.getTitle()
  oTitle.String = "Nyhedsbrevet"

  ' Create a diagram.
  oDiagram = oChartDoc.createInstance( "com.sun.star.chart.LineDiagram" )
  oChartDoc.setDiagram( oDiagram )
  oDiagram = oChartDoc.getDiagram()
  oDiagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS
End Sub

Function GetLastUsedColumn(oSheet) As Integer
  Dim oCursor
  oCursor = oSheet.createCursor
  oCursor.GotoEndOfUsedArea(True)
  GetLastUsedColumn = oCursor.RangeAddress.EndColumn
End Function

Function GetLastUsedRow(oSheet) As Integer
  Dim oCursor
  oCursor = oSheet.createCursor
  oCursor.GotoEndOfUsedArea(True)
  GetLastUsedRow = oCursor.RangeAddress.EndRow
End Function

Makro i regneark: Opret et diagram

Jeg har tidligere beskrevet hvordan de importerede data kan vises i et diagram. Det kan du læse om her: https://libreofficedk.blogspot.dk/2016/10/indlse-en-fil-linje-for-linje-makro.html

Men det kunne være spændende hvis vi kan oprette diagrammet "on the fly". Formålet er naturligvis at vi senere vil kombinere det med vores viden fra denne artikel https://libreofficedk.blogspot.dk/2016/10/vi-vil-gerne-et-skridt-videre-med-det.html hvor vi fandt ud af hvor mange rækker der er i regnearket.

Men først skal vi finde ud af hvordan vi opretter et diagram. Makroen er herunder, men jeg vil ikke gå i detaljer.

Læs gerne kommentarerne i koden:


REM  *****  BASIC  *****
Sub CreateChart

  sName = "Statistik-diagram"
    'Dataområdet (som vi senere laver om):
  sDataRng = "A1:B101"

  oSheets = thisComponent.Sheets
  oSheet = oSheets.getByName("Statistik")
  oAddress = oSheet.getCellRangeByName( sDataRng ).getRangeAddress()
  oCharts = oSheet.getCharts()
  If NOT oCharts.hasByName(sName) Then
    oRect       = createObject("com.sun.star.awt.Rectangle")


    'Placering:
    oRect.X     = 10000    '1/100mm
    oRect.Y     = 1000


    'Størrelse:
    oRect.width = 20000
    oRect.Height= 10000

    ' True betyder kolonne overskrifter.
    ' False betyder ingen række-overskrifter.
    oCharts.addNewByName(sName, oRect, Array(oAddress), True, False)
  End If

  oChart = oCharts.getByName( sName )
  oChart.setRanges(Array(oAddress))
  oChart.HasRowHeaders=True
  oChart.HasColumnHeaders=True
  oChartDoc = oChart.getEmbeddedObject()

    'Her danner vi titlen:
  oTitle = oChartDoc.getTitle()
  oTitle.String = "Nyhedsbrevet"

    'Opret diagrammet:
  oDiagram = oChartDoc.createInstance( "com.sun.star.chart.LineDiagram" )    'Linjediagram
  oChartDoc.setDiagram( oDiagram )
  oDiagram = oChartDoc.getDiagram()
  oDiagram.DataRowSource = com.sun.star.chart.ChartDataRowSource.COLUMNS    'Data i kolonner
End Sub


søndag den 25. oktober 2015

LibreOffice 5.1: Sidepanel til formatering af diagrammer

I regneark er det muligt at formatere diagrammer vha. af et nyt værktøj i sidepanelet. På den måde undgår du at åbne en dialog ovenpå dit regneark og diagrammet og du kan også se resultatet af ændringerne mens du udfører dem.


onsdag den 1. april 2015

Regneark eller tabeller i Writer

Denne artikel er skrevet i forlængelse af artiklen "Felter og formularer", som du kan læse her: http://libreofficedk.blogspot.dk/2015/03/felter-og-formularer.html.

Tabeller i Writer fungerer stort set som komplette regneark med samme muligheder for at foretage både simple, men også komplekse beregninger. F.eks. er det ikke noget problem at beregne f.eks. sum eller gennemsnitsværdi af tal i andre celler.

Når din markør står i en tom celle, skal du blot starte beregningen med et lighedstegn, hvilket helt automatisk får værktøjslinjen Formel til at blive synlig.


Her kan du f.eks. skrive ordet ”sum” og med musen markere de celler, som du vil beregne summen for.


Klikker du på ikonet Formel [fx], får du vist en undermenu, hvor du kan finde en lang række forskellige beregninger, som du kan bruge. Det kan være nyttigt, hvis du skriver tilbud eller andre dokumenter, som primært er tekstbaserede, men hvor du har brug for at foretage beregninger.


Hvis du senere ønsker at redigere den indtastede formel, skal du placere markøren i cellen med beregningen, og så trykke på F2. Det får værktøjslinjen Formel til at vise sig igen.

Beregninger mellem flere tabeller

Du kan også henvise fra en tabel til en celle i en anden tabel (i samme dokument). Når du opretter din formel, skal du blot markere cellen eller cellerne i den første tabel. Formlen vil denne gang indeholde navnet på den første tabel, f.eks. =<FørsteTabel.C3>.

Beskyt formlerne

De celler, hvor der er formler, kan let beskyttes, således at du eller en anden bruger ikke fejlagtigt kommer til at fjerne eller ændre formlen. Marker en eller flere celler, højreklik og vælg Celle – Beskyt. Du kan efterfølgende ophæve beskyttelsen på samme måde: Højreklik og vælg Celle – Ophæv beskyttelse. Du kan evt. supplere ved at ændre baggrundsfarven for de beskyttede celler.

Pas på fejlindtastninger

Hvis du foretager beregninger, forudsætter du at der står et tal i cellen. Det kan gå galt, hvis du selv eller en anden bruger indtaster tekst i stedet for tal. Et eksempel kan være en pris, hvor der indtastes ”100 inkl. moms.”. I dette tilfælde vil beregningen ignorere indholdet, og beregningen vil derfor blive forkert.

I et regneark i Calc er det muligt med funktionen Data – Validitet, at sikre at en celle ikke indeholder andet end tal. Det er desværre ikke i Writer muligt at sikre at der i en celle ikke indtastes andet end tal.

Hent data fra et regneark.

Hvis du har brug for at hente data fra et andet dokument, f.eks. et regneark, kan du let gøre det. Du henter altid en hel tabel. I dit regneark markerer du de celler du ønsker at bruge i dit tekstdokument og kopierer (ctrl+c). I dit tekstdokument vælger du Rediger – Indsæt speciel (ctrl+skift+v) – DDE-kæde.
Du kan ikke indsætte data fra en celle i et regneark direkte til en celle i en tabel i Writer. Til gengæld kan du indsætte data fra regnearket i en selvstændig tabel, for efterfølgende at hente data fra den nye tabel med en formel. Den tabel du indsætter fra regnearket kan du evt. placere i en skjult sektion.

Diagrammer

Tabeller i tekstdokumenter kan, på samme måde som data i et regneark, benyttes til at lave diagrammer. Marker de celler i tabellen, som du ønsker skal indgå som datagrundlag, og klik på ikonet opret diagram. Dette vil føre dig til samme guide, som du bruger til at oprette diagrammer med i Calc.


Ændringer i tabellen vil automatisk afspejle sig i det tilknyttede diagram.

Tabelindhold i brødteksten

Hvis du gerne vil have tabelindholdet (tekst, tal eller beregningsresultat til at indgå i din tekst, kan du oprette en krydshenvisning. Du markerer først den celle, hvis indhold dø gerne vil vise et andet sted, og sætte en henvisning (med funktionen ”sæt henvisning”). Når du har gjort det, kan du et sted i teksten (uden for tabellen) tilsvarende indsætte en henvisning (med funktionen ”indsæt henvisning”), hvilket vil resultere i, at indholdet af den pågældende celle, nu vises i brødteksten.