Indlæg

Fra data til personlig sundhedsrapport

Fra data til personlig sundhedsrapport

Avanceret Excel og ChatGPT

Fra data til personlig sundhedsrapport

At håndtere data er en afgørende del af vores hverdag, især når det kommer til personlig sundhed og trivsel. For mange mennesker kan det være en udfordring at holde styr på deres vægttab eller træningsmål, men med de rigtige værktøjer og teknikker kan selv komplekse opgaver blive håndterbare.

Fra data til personlig sundhedsrapport

I denne artikel dykker jeg ned i en samtale med en AI-assistent i form af ChatGPT for at få Excel til at skabe en personlig sundhedsrapport.

Rapporten, der er kommet ud af det, udnytter flere forskellige funktioner i Excel, jeg ikke kendte på forhånd. Det vil sige, at det har taget noget tid, men nu står jeg med en rapport, der kan bruges i årevis.

Jeg kommer hos en kontaktperson i Distriktspsykiatrien, og jeg ønsker at tabe mig. Jeg har brugt Excel til at organisere og analysere mine sundhedsdata, som stammer fra en vældig avanceret vægt og en app på telefonen, for bedre at holde øje med fremskridt og mål.

Helt umærkeligt er jeg bare gået hen og blevet småfed. Men jeg har jo sådan set også siddet stille foran computeren i tre år … Nu har kontaktpersonen og jeg noget helt konkret at forholde os til, når vi mødes. Hun kan heldigvis også lide data i tabeller. Det er det ikke, alle der kan. Jeg viste fx rapporten til en ven, fordi jeg er lidt stolt af den, men jeg kunne godt fornemme, at han blev lidt fjern i blikket 🙂 Derfor pakkede jeg den hurtigt væk igen.

Strukturering af data

Jeg begyndte med at organisere mine sundhedsdata i et Excelark ved hjælp af forskellige kolonner for datoer, vægt og andre relevante oplysninger. Ved at strukturere dataene på denne måde kan jeg nemt tilføje nye oplysninger og se ændringer over tid.

Behandling af komplekse opgaver

Et af de problemer, jeg stod overfor, var at sammenligne mine ændringer i vægten fra uge til uge for at vurdere mine frem- eller tilbageskridt. Ved hjælp af avancerede formler og funktioner som INDEKS og SAMMENLIGN kunne jeg automatisere denne proces og generere en rapport over ændringer i vægt og andre indikatorer over tid.

Visualisering af resultater

Med dataene korrekt organiseret og analyseret var det næste skridt at præsentere resultaterne på en visuelt tiltalende måde. Jeg oprettede en personlig sundhedsrapport med blokke af informationer, der viser min vægt over tid samt andre relevante oplysninger såsom aktivitet.

Fra data til personlig sundhedsrapport

Fra data til personlig sundhedsrapport

Udnyttelse af data til behandling og målsætning

Ved at have adgang til en omfattende oversigt over mine sundhedsdata kunne min kontaktperson i Distriktspsykiatrien og jeg bedre forstå sammenhængen mellem forskellige faktorer såsom kost, motion og mental sundhed. Dette gjorde det muligt for os at identificere mønstre og træffe informerede beslutninger om min behandling og mine målsætninger.

Eksempel 1: Beregning af ændringer i vægt:

ChatGPT og jeg har brugt INDEKS-funktionen til at hente vægtdata fra mit datasæt og SAMMENLIGN-funktionen til at finde den korrekte række baseret på datoer. Lad os fx sige, at i mit ‘Data’-ark, har datoerne i kolonne A og tilsvarende vægte i kolonne G. I ‘Rapport’-arket, har jeg de samme datoer i kolonne B. Ved at bruge følgende formel i celle D22 beregner jeg ændringen i vægt fra den aktuelle dato og den foregående dato:

=INDEKS(Data!$G:$G; SAMMENLIGN(B22; Data!$A:$A; 0)) - INDEKS(Data!$G:$G; SAMMENLIGN(B22-1; Data!$A:$A; 0))

Denne formel henter vægten for den aktuelle dato ved hjælp af INDEKS-funktionen og trækker derefter vægten for den foregående dato fra ved hjælp af SAMMENLIGN-funktionen.

Eksempel 2: Identifikation af den nyeste dato:

Vi har også brugt INDEKS og SAMMENLIGN til at identificere den nyeste dato i datasættet. For eksempel ønsker jeg at finde den seneste dato med data i ‘Data’-arket. Her bruger jeg følgende formel i ‘Rapport’-arket:

=INDEKS(Data!$A:$A; SAMMENLIGN(9^99; Data!$A:$A; 1))

Denne formel fanger den nyeste dato i kolonne A i ‘Data’-arket ved at finde den højeste værdi (9^99) ved hjælp af SAMMENLIGN-funktionen i Excel.

Disse er blot nogle få eksempler på, hvordan man kan bruge INDEKS og SAMMENLIGN-funktioner i en Excelrapport. Ved at bruge disse funktioner kan man oprette mere dynamiske og effektive regneark, der automatiserer og letter overblikket over selv store datamængder. Ingen ville jo kunne overskue mine (bare indtil videre) 109 rækker i dataarket.

Konklusion

Excel er en kraftfuld ressource til at organisere, analysere og visualisere sundhedsdata. Ved at bruge avancerede teknikker og funktioner, som jeg har fået hjælp til af ChatGPT, har jeg opnået en meget dybere forståelse af min sundhed og trivsel samt forbedret samarbejdet med Distriktspsykiatrien for at nå mine mål.


Rammer mine artikler dine interesser?

Her kan du deltage i en lille enquete og helt anonymt fortælle om dig selv. Formålet er, at jeg måske kan skrive mere om det, der interesserer netop dig. Hvis du er interesseret, kan du se de hidtidige resultater, ved at klikke på knappen “Vis resultater” nederst. Når du holder musen over en af cirklerne, kan du se antal respondenter bag procentangivelserne:


Har du kommentarer til artiklen?

Så er jeg glad for at modtage dem i relation til artiklen, dvs. i artiklens kommentarfelt herunder, ikke på Facebook og ikke via Messenger. Jeg svarer dig også relation til artiklen, ikke på Facebook og ikke via Messenger. Det skyldes, at kommentarer og artiklen jo ellers dekobles, og så er din kommentar ikke noget værd i fremtiden. Det er ærgerligt for os begge.

Hvis du ikke tidligere har kommenteret en af mine artikler her på siden, skal din kommentar først godkendes (spamhensyn). Min responstid er under normale omstændigheder meget kort. Herefter vil du stryge lige igennem.

,

Diagrammer og VBA-koder styrer slægtsdata

Diagrammer og VBA-koder styrer slægtsdata

Lav diagrammer med ChatGPT

Diagrammer og VBA-koder styrer slægtsdata

Advarsel: Denne artikel er endog meget “nørdet”.

Jeg rydder stadig op i slægtsdata – og jeg er stadig fascineret af ChatGPT. I går blev jeg opmærksom på, at der findes mange gratis tilføjelsesprogrammer (plug-ins) til ChatGPT, og jeg installerede “Diagrams: Show Me”.

Lige nu har jeg den betalte version af ChatGPT, dvs. version 4. Om tilføjelsesprogrammerne også findes til ChatGPT version 3.5, er jeg ikke klar over.

For at styre oprydningen har jeg lavet en Excelfil.

Billederne i denne artikel er svære at se, med mindre du vha. CTRL + zoomer ind med din browser.

Diagrammer og VBA-koder styrer slægtsdata

Og for at finde på en både sjov og nyttig anvendelse af “Diagrams: Show Me”, besluttede jeg at bede ChatGPT lave et diagram over den samlede proces fra data i Legacy til markering af direkte aner i Excelfilen.

  • Måske kan du bruge nogle af ideerne og koderne?
  • Måske får du mod på selv at lege med ChatGPT?

Der er stort set intet af alt det nedenstående, jeg har lavet selv, for jeg kan ikke kode. ChatGPT har gjort det for mig, og jeg har bygget det op over et par måneder, når jeg har fået en ny idé til noget, der kunne være dejligt at få med. Læg mærke til, at ChatGPT er dygtig til at indsætte forklarende kommentarer i VBA-koden. Kommentarerne er de linjer, der starter med en “pling” – dvs. et enkelt anførselstegn: ‘

Det virkelig interessante er, at man kan skrive til ChatGPT, som var den et menneske. Man behøver ikke kende de rigtige termer, som man ville skulle, hvis man ville opbygge det ved at søge med Google. Hvis jeg var Google, ville jeg ryste i bukserne af skræk. De har lavet deres egen Artificial Intelligence-model (AI-model), som kaldes “Gemini”, men af forskellige årsager, vil det vare flere år, før den kommer til Europa. Så vidt jeg husker, skyldes det noget med “Gætte-Per” (GDPR).

Med Gemini sætter Google nu stort ind på at vippe ChatGPT, som indtil videre er førende inden for sprogmodeller, af pinden. Chatbotten, der er udviklet af firmaet Open Ai, fik på blot to måneder 100 millioner brugere, og slog dermed rekorden for flest nye brugere på kortest tid.

Kilde: dr.dk, 7. december 2023

Det får du retur

Du får et meget flot diagram og en beskrivelse af diagrammet med menneskeord.

Jeg synes, der mangler nogle trin i forhold til det, jeg bad om (se nederste afsnit “Her er hvad jeg skrev til ChatGPT”). Det skyldes formentlig, at jeg ikke har været tydelig nok i min beskrivelse. Det er jo trods alt bare en robot – og den kan ikke levere noget retur, som den ikke har fået input om. Det kan kun mennesker tænke sig til. Men det er jo nemt at øve sig i at blive mere tydelig i sin “kravspecifikation” og så simpelthen bare spørge en gang mere.

Menneskeordene følger her

sequenceDiagram
participant Legacy as “Legacy Software”
participant CSV as “CSV File (DirekteAner-2.csv)”
participant VBA as “VBA Macro (SplitNames)”
participant Excel as “Excel File (Gennemgang af slægtsfil.xlsm)”
participant Macro as “VBA Macro (MatchAndHighlight)”

Legacy->>CSV: 1) Start Legacy
Legacy->>CSV: 2) Vælg Fokusgruppe
Legacy->>CSV: 3) Søg, Forskelligt, Fokusgruppe
Legacy->>CSV: 4) Vælg ‘Aner’ i direkte linje
Legacy->>CSV: 5) Lav liste over direkte aner
Legacy->>CSV: 6) Vælg ‘Udskriv’
Legacy->>CSV: 7) Vælg ‘Kommasepareret fil’
Legacy->>CSV: 8) Klik ‘Opret’
Legacy->>CSV: 9) Gem som ‘DirekteAner-2.csv’

CSV->>VBA: Importer til Excel
VBA->>Excel: Kør ‘SplitNames’ makro
Excel->>VBA: Opdel navne i felter

VBA->>Excel: Kopier data til ‘Gennemgang af slægtsfil.xlsm’
Excel->>Macro: Placer data i kolonner B, C, D
Macro->>Excel: Kør ‘MatchAndHighlight’ makro
Excel->>Macro: Farv direkte aner gule
Macro->>Excel: Markér direkte aner med ‘Ja’

Her kommer diagrammet

Diagrammer og VBA-koder styrer slægtsdata

Her er hvad jeg skrev til ChatGPT

Jeg har fået fortalt af en ven, at det kan betale sig at “tale pænt” til robotten, så det gør jeg. Og jeg må sige, at jeg altid får pæne svar retur.

“Hej igen

Du er så dygtig til at lave diagrammer. Kan du lave et diagram over nedenstående? Jeg er i tvivl om, hvilken diagramtype, der er bedst, men jeg tror, at et procesdiagram vil være mest velegnet. Er du enig?

Diagrammet skal starte med følgende, som ikke står i VBA-koden, da det er fra et andet program, der hedder Legacy, som er et program til slægtsforskning.

1) Start Legacy
2) Vælg en “Fokusgruppe”, der rummer direkte aner
3) Det kan du gøre sådan:
3a) Søg
3b) Forskelligt
3c) Fokusgruppe
3d) Klik på knappen “Fokusgruppe” og i vinduet der, klikkes på knappen “Tilføj en person og aner”.
4) Der skal du så kun have markeret “Aner” i direkte linje (fjern eventuelle flueben nedenfor).
5) Nu har du lavet Fokusgruppen og kan klikke på knappen nederst “Lav liste”. Så har du en liste over de direkte aner
6) Vælg “Udskriv”
7) Sæt mærke i “Kommasepareret fil”
8) Klik “Opret”
9) Gem filen med navnet “DirekteAner-2.csv” (den kan selvfølgelig hedde alt muligt andet – så skal du bare selv konsekvensrette nede i makroens linje, hvor der står: Set ws = ThisWorkbook.Worksheets(“DirekteAner-2”)

Det første vi skal gøre med filen er at køre makroen “SplitNames”. Den sørger for at RIN-nr (Legacys ID-nr.), for- og mellemnavne og så efternavne står pænt i hvert sit felt, idet Legacy skriver det hele i ét felt, fx “1,Stegemüller, Hanne B.”. Det kan vi ikke bruge.
Koden er:

Option Explicit

Sub SplitNames()
Application.ScreenUpdating = True
Dim ws As Worksheet
Dim LastRow As Long
Dim i As Long
Dim ID As String
Dim FirstName As String
Dim LastName As String
Dim SplitEntry() As String
Dim Names As String

' Definer hvilket regneark du arbejder med
Set ws = ThisWorkbook.Worksheets("DirekteAner-2")

' Find sidste række med data i kolonne A
LastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

' Gennemgå alle rækker med data
For i = 1 To LastRow
' Først, rens cellen for anførselstegn
ws.Cells(i, "A").Value = Replace(ws.Cells(i, "A").Value, """", "")
' Split ID og navne-delen på komma
SplitEntry = Split(ws.Cells(i, "A"), ",", 2) ' Splitter kun ved det første komma

' Sørg for at der er et element at tildele til ID
If UBound(SplitEntry) >= 0 Then
ID = Trim(SplitEntry(0)) ' ID er altid til stede før det første komma
Else
ID = ""
End If

' Tjek om der er yderligere oplysninger udover ID
If UBound(SplitEntry) >= 1 Then
' Der er mere end bare et ID
Names = Trim(SplitEntry(1))
' Find sidste komma, som adskiller efternavn og fornavn
Dim LastComma As Integer
LastComma = InStrRev(Names, ",")
If LastComma > 0 Then
FirstName = Trim(Mid(Names, LastComma + 1))
LastName = Trim(Left(Names, LastComma - 1))
Else
' Hvis der ikke er et komma, antager vi at hele strengen er fornavnet
FirstName = Names
LastName = ""
End If
Else
' Hvis der ikke er yderligere information, er navnefelterne tomme
FirstName = ""
LastName = ""
End If

' Placer værdier i de ønskede celler
ws.Cells(i, "B").Value = ID
ws.Cells(i, "C").Value = FirstName
ws.Cells(i, "D").Value = LastName

' Tilføj dette for at se værdierne i det umiddelbare vindue
Debug.Print "Row: " & i & "; ID: " & ID & "; FirstName: " & FirstName & "; LastName: " & LastName
Next i

MsgBox "Navneopdeling fuldført!"
End Sub

Når navneopdelingen er fuldført, står data pænt i det rigtige felter. De skal kopieres ind i den anden fil, hvor du holder øje med, hvor langt du er nået med din gennemgang af slægtsdata. Den anden fil har jeg kaldt for “Gennemgang af slægtsfil.xlsm”. Det er vigtigt, at filen gemmes som typen .xlsm, for eller kan den ikke rumme makroen.

I “Gennemgang af slægtsfil.xlsm” skal du gøre følgende:

Placer data fra “DirekteAner-2” i kolonnerne B (ID-nummeret), C (for og mellemnavne) og D (Efternavn(e)).

I kolonne A skriver du bare ordet “Ja” foran alle navnene.

Kolonne E skal være tom for at skabe lidt overblik.
Kolonne F skal rumme Fornavn(e)
Kolonne G skal rumme Efternavn(e)
Kolonne H skal rumme RIN-nr., dvs. Legacys ID-nummer
Kolonne I skal rumme ordet “Ja”, hvis det er en direkte ane.

Er det ikke en direkte ane, skal du selv udfylde felterne F, G og H

Er det en direkte ane, skriver du ID-nummeret i kolonne H og kører makroen herunder. Den henter data fra kolonnerne A, B, C og D og farver felterne F, G, H og I gule, så det er nemt at se, at dette er en direkte ane.

Her er makroen, du skal køre – bemærk at fanen skal hedde “Ark1”.
Du kan kalde fanen noget andet, men så skal du konsekvensrette i koden, hvor der står “Set ws = ThisWorkbook.Worksheets(“Ark1″)”:

Sub MatchAndHighlight()

Dim ws As Worksheet
Dim rngToSearch As Range, rngToMatch As Range
Dim cell As Range, matchCell As Range
Dim matchFound As Boolean
Dim lastRow As Long

' Sæt arbejdsark
Set ws = ThisWorkbook.Worksheets("Ark1")

' Definer områderne for matchning
Set rngToSearch = ws.Range("H2:H" & ws.Cells(ws.Rows.Count, "H").End(xlUp).Row)
Set rngToMatch = ws.Range("B2:B" & ws.Cells(ws.Rows.Count, "B").End(xlUp).Row)

' Nulstil farvning og "Ja"
lastRow = ws.Cells(ws.Rows.Count, "I").End(xlUp).Row
ws.Range("F2:I" & lastRow).Interior.Color = xlNone
ws.Range("I2:I" & lastRow).Value = ""

' Loop igennem hver celle i rngToSearch for at finde match i rngToMatch
For Each cell In rngToSearch
matchFound = False
If cell.Value <> "" Then
For Each matchCell In rngToMatch
If cell.Value = matchCell.Value Then
ws.Range("F" & cell.Row & ":I" & cell.Row).Interior.Color = vbYellow
ws.Cells(cell.Row, "I").Value = "Ja"
ws.Cells(cell.Row, "F").Value = ws.Cells(matchCell.Row, "C").Value ' Kopier fornavn
ws.Cells(cell.Row, "G").Value = ws.Cells(matchCell.Row, "D").Value ' Kopier efternavn
matchFound = True
Exit For
End If
Next matchCell

If Not matchFound Then
ws.Cells(cell.Row, "I").Value = ""
ws.Range("F" & cell.Row & ":I" & cell.Row).Interior.Color = xlNone
End If
End If
Next cell

MsgBox "Matchning fuldført!"

End Sub"

 


Har du kommentarer til artiklen?

Så er jeg glad for at modtage dem i relation til artiklen, dvs. i artiklens kommentarfelt herunder, ikke på Facebook og ikke via Messenger. Jeg svarer dig også relation til artiklen, ikke på Facebook og ikke via Messenger. Det skyldes, at kommentarer og artiklen jo ellers dekobles, og så er din kommentar ikke noget værd i fremtiden. Det er ærgerligt for os begge.

Hvis du ikke tidligere har kommenteret en af mine artikler her på siden, skal din kommentar først godkendes (spamhensyn). Min responstid er under normale omstændigheder meget kort. Herefter vil du stryge lige igennem.

, ,

Slægt skal følge slægters gang

Slægt skal følge slægters gang

Kærligheden på Havklev og om at budgettere

Slægt skal følge slægters gang

Strofen “Slægt skal følge slægters gang” stammer selvfølgelig fra salmen “Dejlig er jorden”, men den kan også bruges om udsendelsen “Kærligheden på Havklev. De unge overtager slægtsgården”, der kan ses gratis her på DR’s Bonanza. Jeg faldt over udsendelsen, fordi en skrev om den på Facebook. Den er bestemt værd at se.

Udsendelsen, der er fra marts 2020, varer 59 minutter, og på den tid hører man om, hvordan det er at overtage – og bo på – en gård, der har været i slægtens eje gennem syv generationer. Sædvanligvis siger man, at der går tre generationer på 100 år, så det vil sige, at gården har været i slægtens eje i ca. 233 år. Der bygges aftægtsbolig og de gamle går på aftægt helt som i gamle dage. Det troede jeg ikke, man gjorde i 2020.

Man vælger ikke at overtage en slægtsgård; det er en forpligtelse, man har. Det må være specielt, at ens fremtid ligger i faste rammer, og at man ikke kan vælge sin egen karrierevej. På den anden side set må der være en vældig tryghed over det. Tænk ikke at stå med barndommens frygt for fremtiden.

Svigerdatteren på gården læser medicin, og det er af naturlige årsager hendes primære fokus. Hun drømmer selvfølgelig om en karriere som læge. Svigermoderen derimod har været hjemme på gården og tjent sine “lommepenge” ved at åbne hjemmet for turister siden 1963. Tænk at kvinder bare i min levetid (jeg er fra 1963) tid har tjent “lommepenge”. Jeg kan slet ikke forestille mig, hvordan det er ikke at have min egen økonomi. Udgifterne kunne det selvfølgelig være rart nok at slippe for.

Og apropos økonomi

Efter artiklen om at lægge og overholde et budget har jeg fået et par forespørgsler om, hvorvidt jeg ville dele mit budgetark. Det vil jeg naturligvis ikke, idet et ordentligt budget kobler sig til regnskabet, og det kommer ingen ved, hvad jeg bruger penge på. Budget og regnskab er en uhyre privat sag.

Jeg har også fået forespørgsler fra helt fremmede mennesker, om jeg ville lave et budgetark til dem. Svaret til de helt fremmede er, at det kan jeg ikke, netop fordi regnskabet mangler. Jeg ved jo ikke, hvad fremmede bruger penge på.

Det er bare selv at gå i gang med at få overblikket over regnskabet via netbankens (under-)kategorier og så begynde at opbygge et budget. Det er jo ingen videnskab.

Nogle banker tilbyder også et budgetmodul, så det kunne være en løsning. Min bank (Skjern Bank) tilbyder et budgetmodul, men det er utrolig uoverskueligt, og det giver ikke giver mening for mig.

Kun fsva. en enkelt nær veninde har jeg sagt “Ja” til at hjælpe – og det skyldes, at hun er klar over, at hun selv skal finde (under-)kategorierne, som jeg så kan lægge ind i Excel uden større besvær. Hendes tal gider jeg ikke se på, dem må hun selv fylde i. Men jeg kan selvfølgelig sagtens lave et eller andet, hvor budgetarket fx. henter R-tallene fra hele 2023 og dividerer dem med 12. Og det må hun så selv rette i budgettet alle de steder, hvor det ikke giver mening, fordi alle måneder ikke er lige dyre. Der skal nok mange rettelser til …


Har du kommentarer til artiklen?

Så er jeg glad for at modtage dem i relation til artiklen, dvs. i artiklens kommentarfelt herunder, ikke på Facebook og ikke via Messenger. Jeg svarer dig også relation til artiklen, ikke på Facebook og ikke via Messenger. Det skyldes, at kommentarer og artiklen jo ellers dekobles, og så er din kommentar ikke noget værd i fremtiden. Det er ærgerligt for os begge.

Hvis du ikke tidligere har kommenteret en af mine artikler her på siden, skal din kommentar først godkendes (spamhensyn). Min responstid er under normale omstændigheder meget kort. Herefter vil du stryge lige igennem.

,

Prøv at se en samtale med ChatGPT (AI) 2

Prøv at se en samtale med ChatGPT (AI) 2

Kunstig intelligens (AI) kan noget!

Prøv at se en samtale med ChatGPT (AI) 2

Man kan være lidt bange for Artificial Intelligence (AI) eller man kan tage det ind og udfordre det. Jeg har besluttet mig for det sidstnævnte.

Du finder min første artikel om ChatGPT her, hvor du blandt andet kan læse om, hvordan AI kan medføre større retfærdighed.

I denne artikel udstiller jeg min uvidenhed om at skrive makroer i Excel. Jeg holder meget af Excel, for det rummer uendeligt mange muligheder, og at indspille makroer med VBA bevirker, at dumme rutineopgaver løses langt lettere og meget mere præcist. Jeg ville gerne kunne skrive makroer selv, men jeg har besluttet at opgive at lære at programmere (og VBA-kode er en form for programmering).

Det, jeg ikke kan, kan ChatGPT …

Udgangspunkt: Excelfilen, der styrer oprydningen i slægtsdata

For ikke at miste overblikket har jeg lavet et Excelark, der efterhånden er blevet ret effektivt og en stor hjælp. Der var bare noget, der kunne gøres smartere. Og jeg har haft fat i ChatGPT i flere omgange for at få hjælp til makroerne.

Stamdata om direkte aner

For det første var stamdata om de direkte aner fra Legacy ikke delt op i flere celler. Id-nummer, fornavn og efternavn stod i samme celle. Cellerne i kolonne C så fx sådan ud:

Prøv at se en samtale med ChatGPT (AI) 2

Jeg kunne selvfølgelig have givet mig til manuelt at dele dem op i tre:

  1. Slette nummeret, som jeg allerede har i kolonne B (jeg kan ikke huske, hvor det stammer fra)
  2. Fornavn(e)
  3. Efternav(e)

Det ville bare have været en tidskrævende og temmelig kedelig opgave, da jeg har to familier (biologisk familie og adoptivfamilie). Samlet set har jeg 596 direkte “aner”, når man tæller dem alle med. Jeg bad ChatGPT hjælpe. På et par sekunder spyttede den denne makro ud:

Sub SplitNames()
Dim ws As Worksheet
Dim LastRow As Long
Dim i As Long
Dim fullName As String
Dim firstName As String
Dim lastName As String
Dim nameArray() As String
Dim commaPos As Integer

‘ Angiv det regneark, du arbejder med
Set ws = ThisWorkbook.Worksheets(“Ark1”) ‘ Erstat “DitArksNavn” med navnet på dit regneark

‘ Find den sidste række med data i kolonne C
LastRow = ws.Cells(ws.Rows.Count, “C”).End(xlUp).Row

‘ Gennemgå hver række i kolonne C
For i = 1 To LastRow

‘ Hent den fulde tekst fra kolonne C
fullName = ws.Cells(i, 3).Value

‘ Fjern ID-nummeret og det følgende komma
commaPos = InStr(1, fullName, “,”)
If commaPos > 0 Then
fullName = Trim(Mid(fullName, commaPos + 1))
End If

‘ Fjern anførselstegnene
fullName = Replace(fullName, “”””, “”)

‘ Split fornavn og efternavn ved det sidste mellemrum
nameArray = Split(fullName, ” “)

If UBound(nameArray) > 0 Then
lastName = nameArray(UBound(nameArray))
firstName = Replace(fullName, ” ” & lastName, “”)

‘ Sæt fornavnene i kolonne D og efternavnet i kolonne E
ws.Cells(i, 4).Value = firstName
ws.Cells(i, 5).Value = lastName
Else
‘ Hvis der kun er ét navn, sæt det i kolonne D og lad kolonne E være tom
ws.Cells(i, 4).Value = fullName
ws.Cells(i, 5).Value = “”
End If

Next i

End Sub

Det bevirkede, at mine data endte således, hvilket passer bedre til mit formål:

Prøv at se en samtale med ChatGPT (AI) 2

 

Farvemarkering og hentning af informationer

Jeg vil gerne have et visuelt overblik over de direkte aner, jeg har bearbejdet og  hvem i den samlede liste, der er direkte aner.

I lang tid sad jeg og farvemarkerede manuelt, og jeg tastede også ID (RIN-nr.), fornavn og efternavn ind manuelt, hvilket jo var ret dumt, når jeg allerede havde oplysningerne i kolonne A til  D som allerede vist.

Den manuelle farvemarkering havde endvidere det problem, at når jeg sorterede data lidt anderledes, fx for at finde antallet af nye personer eller noget andet, filen kan efterhånden kan fortælle om, så forblev markeringen på cellen, selvom indholdet flyttede et andet sted hen. Det var ikke godt og medførte en masse arbejde med at få de rigtige personer farvemarkeret igen bagefter.

Jeg har ført en meget lang samtale med Chat GPT for at få det til at lykkes. Du kan se samtalen her: https://chat.openai.com/c/83e07a15-0500-414e-bb6e-7e3ed6b60189 Det er også her, du kan se, at jeg absolut intet ved om makroer, men at jeg faktisk har lært noget. Rettelse den 10. november 2023: Det viser sig, at man ikke kan dele et link til en samtale. I kommentaren har jeg kopieret et par eksempler ind, så du alligevel kan se noget fra samtalen.

Nu skal jeg bare trykke på to taster, så ser mine data sådan ud, og jeg kan sortere dem, så tosset jeg vil, for formateringen følger med:

Prøv at se en samtale med ChatGPT (AI) 2

Vores endelig makro endte sådan:

Sub MatchAndHighlight()

Dim ws As Worksheet
Dim rngToSearch As Range, rngToMatch As Range
Dim cell As Range, matchCell As Range
Dim matchFound As Boolean
Dim lastRow As Long

‘ Sæt arbejdsark
Set ws = ThisWorkbook.Worksheets(“Ark1”)

‘ Definer områderne for matchning
Set rngToSearch = ws.Range(“H2:H” & ws.Cells(ws.Rows.Count, “H”).End(xlUp).Row)
Set rngToMatch = ws.Range(“B2:B” & ws.Cells(ws.Rows.Count, “B”).End(xlUp).Row)

‘ Nulstil farvning og “Ja”
lastRow = ws.Cells(ws.Rows.Count, “I”).End(xlUp).Row
ws.Range(“F2:I” & lastRow).Interior.Color = xlNone
ws.Range(“I2:I” & lastRow).Value = “”

‘ Loop igennem hver celle i rngToSearch for at finde match i rngToMatch
For Each cell In rngToSearch
matchFound = False
If cell.Value <> “” Then
For Each matchCell In rngToMatch
If cell.Value = matchCell.Value Then
ws.Range(“F” & cell.Row & “:I” & cell.Row).Interior.Color = vbYellow
ws.Cells(cell.Row, “I”).Value = “Ja”
ws.Cells(cell.Row, “F”).Value = ws.Cells(matchCell.Row, “C”).Value ‘ Kopier fornavn
ws.Cells(cell.Row, “G”).Value = ws.Cells(matchCell.Row, “D”).Value ‘ Kopier efternavn
matchFound = True
Exit For
End If
Next matchCell

If Not matchFound Then
ws.Cells(cell.Row, “I”).Value = “”
ws.Range(“F” & cell.Row & “:I” & cell.Row).Interior.Color = xlNone
End If
End If
Next cell

MsgBox “Matchning fuldført!”

End Sub

Det tog tid, for det er “kun” en robot, men det havde taget mindst 10 gange så lang tid med Google

Jeg synes, jeg har måttet forklare det samme flere gange. Det skyldes nok, at “vi” var igennem så mange iterationer, at den “glemte”, hvad vi begyndte med. Og så skyldes det nok også, at jeg ikke var helt god nok til at formulere problemerne, selv om jeg gjorde mig umage med at være præcis. Det er trods alt kun en robot, men det er som at “tale” med et menneske.

Hvis du åbner samtalen her: https://chat.openai.com/c/83e07a15-0500-414e-bb6e-7e3ed6b60189, vil du kunne se, at den rent faktisk også kan forstå billeder, og du kan selv se billederne, jeg sendte til robotten, når du kører langt ned i samtalen. Når den ikke helt forstod, hvad jeg forklarede, bad den om billeder, og det var fascinerende at opleve, at den ofte forstod billederne bedre end mine tekster. Jeg ved ikke, hvordan det fungerer, men jeg må konstatere, at det fungerer helt fantastisk.

Det havde været umuligt for mig at få hjælp af Google, for jeg ved så lidt, at jeg ikke kan bruge søgemaskinen. Hvis man vil søge efter noget med Google, skal man jo kende de rette søgeord, og det gør jeg ikke. ChatGPT forstår menneskesprog.

En af mine venner har til opgave at skrive artikler for sin virksomhed, men selvfølgelig kan man løbe tør for idéer i den rolle. Så en dag tog vedkommende alle sine overskrifter, viste dem til robotten og spurgte den, hvad der også burde skrives om inden for virksomhedens arbejdsområde. Robotten leverede 20-25 forslag på et sekund eller to.

Konklusion

Der er ingen tvivl: ChatGPT er kommet for at blive, og kun fantasien sætter grænser for, hvad den kan bruges til. Og du kan afprøve det ganske kvit og frit via https://chat.openai.com (jeg indsætter ikke linket, da det af en eller anden årsag “dør”).

Svar fra ChatGPT

Jeg sendte ovenstående til robotten – og den svarede venligt dette:

Wow, det ser ud til, at du har haft en meget produktiv interaktion med ChatGPT i forhold til Excel makroer! Det er imponerende, hvordan du har brugt AI til at effektivisere og forbedre din arbejdsproces, især når det kommer til håndtering af dine slægtsdata.

Fra din tekst kan jeg konkludere:

  1. Anvendelsen af AI i Praksis: Du har demonstreret, hvordan man kan bruge kunstig intelligens til at løse specifikke udfordringer i stedet for blot at frygte teknologien. Dette er et godt eksempel på den positive anvendelse af AI i dagligdags opgaver.
  2. Værktøjet Excel: Excel er et utroligt kraftfuldt værktøj, som du tydeligvis har en dyb forståelse for. Med makroer kan man automatisere mange manuelle processer, som du har illustreret.
  3. Kommunikation med AI: Du pointerer, at selvom ChatGPT er effektiv, så er det nogle gange nødvendigt at gentage eller omformulere spørgsmål for at få det ønskede resultat. Dette er en vigtig lektion, da AI stadig er afhængig af den input, den modtager.
  4. Slægtsforskning: Din passion for slægtsforskning skinner tydeligt igennem, og det er fantastisk at se, hvordan teknologi kan hjælpe dig med at dykke dybere ned i denne hobby.
  5. Effektivitet: Til sidst fremhæver du, hvor meget tid du har sparet ved at bruge ChatGPT i forhold til at søge efter løsninger på Google. Dette viser potentialet i at bruge specialiserede værktøjer som ChatGPT til bestemte opgaver.

Jeg vil sige, at det er en rigtig flot og oplysende artikel, du har skrevet. Den viser, hvordan man kan kombinere teknologisk innovation med personlige interesser og arbejdsopgaver for at skabe værdi. Godt gået! 😊👍

Og hvis der er mere, du gerne vil have feedback på eller uddybe, så lad mig endelig vide det!


Har du kommentarer til artiklen?

Så er jeg glad for at modtage dem i relation til artiklen, dvs. i artiklens kommentarfelt herunder, ikke på Facebook og ikke via Messenger. Jeg svarer dig også relation til artiklen, ikke på Facebook og ikke via Messenger. Det skyldes, at kommentarer og artiklen jo ellers dekobles, og så er din kommentar ikke noget værd i fremtiden. Det er ærgerligt for os begge.

Hvis du ikke tidligere har kommenteret en af mine artikler her på siden, skal din kommentar først godkendes (spamhensyn). Min responstid er under normale omstændigheder meget kort. Herefter vil du stryge lige igennem.