Indlæg

,

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.

, ,

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

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

Jeg er fascineret af ChatGPT

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

Man kan være lidt bange for “AI” (Artificial Intelligence), eller man kan være begejstret.

  • Hvis jeg var Google, ville jeg være bange.
  • Jeg er bruger, så jeg er begejstret.

Tænk om vi i en tid, hvor der mangler arbejdskraft, kunne få AI til at løse alle de opgaver, der ikke kræver menneskelig indsigt? Sygeplejersker, psykologer, psykiatere (for nu at blive i min egen lille verden) kræver mennesker og relationer, men vi mangler dem. Hvis nu alle “dumme-opgaverne” kunne løses af robotter/med kunstig intelligens, ville vi kunne frigøre menneskerne.

Retfærdighedens idé er et krav om lighed

En dag skrev en af mine læsere, at det indenfor juraens verden var en farlig vej at gå. Jeg er slet ikke enig.

Det skyldes den for længst afdøde professor Alf Roos, der allerede i 1953 (og i den uændrede udgave i 1966 som jeg læste efter i 1986 …) blandt andet skrev at: retfærdighedens idé er et lighedskrav. Lighedskravet medfører, at det lige skal behandles lige (“Om ret og retfærdighed” side 353). Mange mener, at en afgørelse er “uretfærdig”, når de ikke kan lide den – men det er noget sludder.

Forestiller man sig nu, at man sætter den unge fuldmægtig til at undersøge al retspraksis på et givent område, for at afgørelserne vil blive retfærdige = “lige”, bliver vedkommende jo aldrig færdig. Enhver, der modtager afgørelsen, kan helt berettiget tillade sig at tvivle på dens rigtighed, for har fuldmægtigen nu fået det hele med?

Stopper man løbende afgørelser med bagvedliggende årsager ind i et system af en eller anden slags, er sikkerheden, for at de fremtidige afgørelser bliver fuldkommen retfærdige, langt større. Systemet vil på halve sekunder kunne samle al præcedens og spytte en virkelig retfærdig afgørelse ud.

Vi mangler radiologer og radiografer

TV Avisen kl. 7 viste den store mangel på radiologer og radiografer. Vi har selve udstyret, men det står ubrugt hen i tomme lokaler. Hvis vi fodrede AI med al (eller i det mindste størstedelen) af deres viden, kunne flere mennesker blive undersøgt.

Lige nu er status, at man bliver nødt til at nedprioritere nogle patienter med store smerter, fordi fx mennesker, der har været ude for eksempelvis et trafikuheld, må komme først.

Jeg kan ikke se, hvorfor vi ikke skulle prøve at drage nytte af AI.

Amerikansk infiltration?

Nogle mener, at de AI-modeller, der findes lige nu, er amerikaniserede og dybt konservative. Det kan godt være, det ved jeg ikke noget om. Men man kan jo lade være at bede om svar, der forudsætter holdninger.

Indledningsvist var jeg også selv meget kritisk over for AI, men jo mere jeg bruger det, jo mere begejstret er jeg. Jeg fandt ret hurtigt ud af, at mine første spørgsmål var uegnede. Eksempelvis spurgte jeg, hvem min far var, og det kom der et temmelig forvrøvlet svar ud af.

Her har du mine andre artikler om ChatGPT.

Jeg er så glad for det, at jeg har besluttet mig for at betale $20 pr. måned for den mest kendte version: https://chat.openai.com/ der er bedst kendt under navnet ChatGPT. Ved at betale får man nyeste version.

Når man ikke kan skrive makroer, kan ChatGPT hjælpe

Jeg ville så gerne lære at skrive makroer i Excel, men det er som om, min hjerne ikke egner sig til det. Og når man ikke ved, hvad en given funktion kaldes, kan man heller ikke søge med Google. Men ChatGPT kan. Og den leverer svaret på under et sekund. Det vigtige er, at problemformuleringen er helt præcis. Det er jo trods alt bare en robot.

Det kan være, jeg gør noget helt forkert, men jeg kan ikke lade være med at skrive til maskineriet, som var det et menneske, for jeg får menneskelige svar retur. Herunder ser du min dialog med ChatGPT fra i formiddag. Det er bare for sjov, men det er fascinerende.


User:
Hej igen

Du har tidligere hjulpet mig med en makro i Excel, som jeg viser nederst og den fungerer meget fint!

Her prøver jeg at forklare, hvad “vi” allerede har, og hvilken udbygning, jeg ønsker din hjælp til.

Makroen tilbyder en rulleliste/drop down-liste i kolonne K, hvor den henter de mulige værdier i kolonne N. Det er supergodt! Jeg ved ikke, om du mener, vi skal udbygge den, eller hvad der er bedst at gøre. Det er årsagen til, at jeg viser den her.

I kolonne G skriver jeg et ID på mine direkte aner. På forhånd har jeg også listet alle de direkte aner, jeg på nuværende tidspunkt kender. De findes i kolonne B. I kolonne A har jeg bare skrevet ordet ”Ja” ud for alle de direkte aner.

Ved hjælp af fx denne indeks og sammenlign: =INDEKS(A:A;SAMMENLIGN(G996;B:B;0)) i kolonne H henter jeg ordet ”Ja” fra kolonne A. Dvs. hvis jeg i kolonne H har ”Ja” ved jeg, at det er en direkte ane. Dem formaterer jeg med lidt farve, så de er lette at se. På dansk kalder vi formateringen fra Excel for ”Bemærk”.

Problemet er: Når jeg ønsker at analysere filen ved fx at sortere værdierne lidt, er det som om, formateringen hænger ved cellen og ikke værdien. Jeg mener: Hvis jeg fx sorterer efter en dato fra kolonne L, så er det ikke længere den rigtige formatering. Hvis jeg fx har formateret E996:H996 med ”Bemærk” så er det stadig disse celler, der er formaterede, også selvom der ikke længere efter sorteringen står en direkte ane i række 996.

Det er lidt svært at forklare. Forstår du, hvad jeg mener?

Nu kunne jeg godt tænke mig, at formateringen ikke afhænger af rækken men af indholdet i kolonne H.

Kan det lade sig gøre?

Herunder finder du den makro, “vi” allerede har:

Private Sub Worksheet_Change(ByVal Target As Range)
‘Code by Sumit Bansal from https://trumpexcel.com
‘ To allow multiple selections in a Drop Down List in Excel (without repetition)
Dim Oldvalue As String
Dim Newvalue As String
Application.EnableEvents = True
On Error GoTo Exitsub
If Target.Column = 11 And Target.Row > 1 And Target.Row < 5001 Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else: If Target.Value = “” Then GoTo Exitsub Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = “” Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & “, ” & Newvalue
Else:
Target.Value = Oldvalue
End If
End If
End If
End If
Application.EnableEvents = True
Exitsub:
Application.EnableEvents = True
End Sub

ChatGPT:
Forstår godt problemet med formatering, der ikke følger med værdien ved sortering. I Excel er celleformatering standardmæssigt knyttet til cellen og ikke værdien i cellen, hvilket kan være frustrerende i nogle situationer som den, du beskriver.

En måde at løse dette på er at bruge en VBA-makro, der automatisk genanvender formateringen baseret på værdien i kolonne H. Dette kunne laves sådan, at hver gang værdierne i kolonnen ændrer sig (f.eks. ved sortering), tjekkes der for “Ja” i kolonne H, og den tilhørende række formateres passende.

Her er et forslag til, hvordan dette kan implementeres:

vba

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Range
Dim rng As Range

‘ Din eksisterende kode kan være her

‘ Tjekker kun kolonne H for ændringer
If Not Intersect(Target, Columns(“H”)) Is Nothing Then
Set rng = Intersect(Target, Columns(“H”))

‘ Gennemgår alle ændrede celler i kolonne H
For Each cell In rng
If cell.Value = “Ja” Then
‘ Formaterer cellerne fra E til H i den pågældende række
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = RGB(255, 255, 0) ‘ Gul baggrund
Else
‘ Fjerner formatering
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = xlNone
End If
Next cell
End If

‘ Gendanner event håndtering
Application.EnableEvents = True
End Sub

Denne makro vil køre, når der sker ændringer i kolonne H. Hvis en celle i kolonne H ændres til “Ja”, vil den tilsvarende række fra E til H få en gul baggrund. Hvis værdien ændres til noget andet, vil formateringen blive fjernet.

Du kan tilføje denne del til din eksisterende Worksheet_Change makro, eller lave det som en separat makro, afhængigt af hvad der passer bedst til din brug.

Håber det hjælper!

User
Tusind tak. Jeg tester og vender tilbage til dig.

ChatGPT
Det lyder godt! Tag dig endelig den tid, du har brug for til at teste det, og vend tilbage, hvis du har flere spørgsmål eller støder på problemer. God fornøjelse! 😊

User
Hvis jeg nu vil implementere dit forslag i den eksisterende makro, hvordan skal hele makroen så se ud (jeg er ikke god til VBA)

ChatGPT

Selvfølgelig, her er din eksisterende makro kombineret med den nye del, der håndterer formatering baseret på værdien i kolonne H:

VBA:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oldvalue As String
Dim Newvalue As String
Dim cell As Range
Dim rng As Range

Application.EnableEvents = True
On Error GoTo Exitsub

‘ Din eksisterende kode for kolonne K
If Target.Column = 11 And Target.Row > 1 And Target.Row < 5001 Then
If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then
GoTo Exitsub
Else
If Target.Value = “” Then
GoTo Exitsub
Else
Application.EnableEvents = False
Newvalue = Target.Value
Application.Undo
Oldvalue = Target.Value
If Oldvalue = “” Then
Target.Value = Newvalue
Else
If InStr(1, Oldvalue, Newvalue) = 0 Then
Target.Value = Oldvalue & “, ” & Newvalue
Else
Target.Value = Oldvalue
End If
End If
End If
End If
End If

‘ Ny kode for at håndtere formatering i kolonne H
If Not Intersect(Target, Columns(“H”)) Is Nothing Then
Set rng = Intersect(Target, Columns(“H”))
For Each cell In rng
If cell.Value = “Ja” Then
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = RGB(255, 255, 0) ‘ Gul baggrund
Else
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = xlNone
End If
Next cell
End If

Exitsub:
Application.EnableEvents = True
End Sub

Sub UpdateYellowBackgrounds()
Dim cell As Range
Dim LastRow As Long

LastRow = Cells(Rows.Count, “H”).End(xlUp).Row

For Each cell In Range(“H2:H” & LastRow)
If cell.Value = “Ja” Then
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = RGB(255, 255, 0)
Else
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = xlNone
End If
Next cell
End Sub

Indsæt denne samlede makrokode i din VBA-editor ved at erstatte den eksisterende Worksheet_Change makro. Dette skulle kombinere funktionaliteten af din eksisterende drop-down listehåndtering i kolonne K med den nye formateringshåndtering i kolonne H.

Håber det hjælper!

User
Fedt! Jeg tester

ChatGPT
Fantastisk! God fornøjelse med testningen, og tøv ikke med at vende tilbage, hvis du har yderligere spørgsmål eller støder på nogle udfordringer. 😊

User
Jeg tror, det fungerer super fint! Mange tak. Nu har jeg to udfordringer:

1) Jeg lavede en test, der viste, at de fik gul baggrund. Men der var også nogle streger omkring cellerne, jeg skulle have væk, derfor formaterede jeg alt tilbage til “Normal”.

2) Hvordan kører jeg bare makroen og får alle de gule felter tilbage?

ChatGPT
Fantastisk at høre, at det ser ud til at fungere!

Angående de uønskede streger omkring cellerne: De kan være et resultat af en tidligere formatering. Du kan fjerne dem ved at vælge de relevante celler, gå til fanen “Startside”, og under “Skrift” finde og klikke på ikonet for kantlinjer (det ligner en lille firkant med streger rundt om). Her kan du vælge “Ingen kantlinje”.

For at køre makroen på alle eksisterende celler i kolonne H og dermed få de gule felter tilbage, kan du tilføje en lille rutine til din eksisterende kode eller køre en separat makro, der går igennem alle rækkerne og tjekker værdierne i kolonne H. Her er et eksempel på, hvordan en sådan separat makro kunne se ud:

vba

Sub UpdateYellowBackgrounds()
Dim cell As Range
Dim LastRow As Long

LastRow = Cells(Rows.Count, “H”).End(xlUp).Row

For Each cell In Range(“H2:H” & LastRow)
If cell.Value = “Ja” Then
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = RGB(255, 255, 0)
Else
Range(“E” & cell.Row & “:H” & cell.Row).Interior.Color = xlNone
End If
Next cell
End Sub

Du kan indsætte denne makro i samme VBA-modul som din eksisterende Worksheet_Change makro. Efter du har gjort det, kan du køre UpdateYellowBackgrounds manuelt for at opdatere de gule felter baseret på værdierne i kolonne H.

User
Det fungerer helt fantastisk. Tusind tak for hjælpen.

ChatGPT
Det var så lidt, jeg er rigtig glad for at høre, at det fungerer for dig! Hvis du har flere spørgsmål eller støder på nye udfordringer, er du altid velkommen til at vende tilbage.

God fornøjelse med dit Excel-projekt! 😊

 

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

 


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.

,

Oprydning med fantastiske Excel og ChatGPT

Oprydning med fantastiske Excel og ChatGPT

Overblik over oprydning i slægtsdata

Oprydning med fantastiske Excel og ChatGPT

I forbindelse med den omsiggribende oprydning i slægtsdatabasen fik jeg idéen om, at det ville være vældig nyttigt at markere hvilke af de 841 gennemgåede personer, der er direkte aner i begge mine familier (adoptivfamilien og den biologiske familie).

Jeg har en Excelfil, hvor jeg i store træk noterer, hvad jeg har foretaget med den enkelte. Nogen videnskab er det selvfølgelig ikke.

Nogle få personer fra begge slægter kan jeg selvfølgelig genkende bare ved at løbe ned over rækkerne, men det er langt fra præcist.

Herunder er lidt af, hvad jeg gik igennem, før det lykkedes

Jeg ved, at mindst én af mine læsere ville kunne gøre det meget smartere 🙂 – men jeg kan desværre ikke skrive makroer, og ChatGPT kunne heller ikke få det til at lykkes trods mange forsøg. Så jeg gjorde det på “husmandsmåden”, og virkede det.

Udfordring 1: Få Legacy til at lave et udtræk med begge slægter vha. Fokusgruppe

Anne Marie Holck fra Legacys forum hjalp med at få dannet et udtræk, der viser direkte aner i begge slægter. Problemet opstod, fordi jeg forsøgte med en makro, der ikke resulterede i noget … Problemet var, at kildedata var mere end mangelfulde. Der kom slet ikke de personer med i udtrækket, jeg forventede. Det var hurtigt og nemt at se, at hverken mine “mormødre” eller “morfædre” var med i udtrækket.

Så jeg lærte om fokusgrupper, der er en genial funktion – især når man har flere familier. Prøv evt. selv:

  1. Gå til “Søg”
  2. Vælg “Forskelligt”
  3. Indstil hvem der skal være udgangspunktet.
  4. Vælg “Fokusgruppe”
  5. Indstil som vist
  6. Bemærk det nederste flueben “Inkluder flere forældre (hvis tilknyttet mere end et par)”. Det var lige det, der skulle bruges
  7. Vælg “Lav liste”
  8. Tryk “Valg”. Vælg “Udskriv” til en kommasepareret fil

Oprydning med fantastiske Excel og ChatGPT

Udfordring 2: Den kommaseparerede fil skal bearbejdes lidt

Filen, Legacy danner, vil se ud nogenlunde som nedenstående. Problemet er, at ID-nummeret (Legacy kalder det for RIN), står i samme felt som navnet. Vi skal kun bruge selve tallet for at komme videre.

Oprydning med fantastiske Excel og ChatGPT

Men det er ikke et reelt problem, for det klarer Excel som en mis. Denne formel trækker tallet ud og placerer det i fx celle B1:

=VENSTRE(A1; FIND(“,”; A1) – 1)

Stå i celle B1. Kopier formlen ind og straks har du noget, der ligner nedenstående:

Oprydning med fantastiske Excel og ChatGPT

  • Det vil sige, at nu har jeg nogle tal/RIN/ID’er, jeg kan sammenligne med tallene fra mit oprindelige store regneark.
  • Alle de tal, der findes i denne lille fil, kan sammenlignes med tallene i det store ark.
  • Hvis tallet findes begge steder, er der tale om en direkte ane fra en af slægterne.
Udfordring 3: Resultatløs tilpasning af det oprindelige ark

Jeg prøvede først med en makro, som ChatGPT skrev for mig, da jeg som nævnt ikke kan skrive makroer/VBA-kode, og min hjerne egner sig ikke til at lære det.

Robotten har været en kæmpe hjælp, idet jeg aldrig giver op overfor uløste problemer. Jeg er parat til betalingsudgaven (GTP-3 Plus eller GPT-4) efter dette. Jeg har brugt lang tid på opgaven, men jeg har sparet oceaner af tid i forhold til den tid, jeg skulle have brugt med Google.

Robotten skal vide, hvad man vil opnå. Man må fortælle, hvad man har i de forskellige kolonner og på to sekunder spytter den et forslag ud. Det er helt vildt. Det havde jeg ikke kunnet Google mig til, for med Google skal man jo fx vide, hvad funktionen hedder for at kunne søge efter den. Det finder ChatGPT selv ud af, når den ved, hvad man vil opnå og hvordan data ser ud.

“Vi” kunne ikke få det til at fungere med makroen. ChatGPT foreslog i stedet LOPSLAG og leverede en formel, men det lykkedes ikke. LOPSLAG er “bundet af”, at den værdi, man vil kigge efter, skal stå i første kolonne. 

Først prøvede jeg at sætte ID-numrene i forreste kolonne, så prøvede jeg med “Ja”, der fortæller mig, at her er en direkte ane. Lige meget hjalp det. Pludselig ville Excel overhovedet ingenting – ikke engang lægge to tal sammen. Det var helt ligegyldigt, hvor hvad stod. “Vi” måtte finde på noget andet.

Udfordring 4: ChatGPT foreslog INDEKS og SAMMENLIGN

Jeg har ofte læst om styrken ved de to funktioner i kombination men har syntes, det så indviklet ud. Nu fandt jeg tilbage til en af Kasper Langmanns (Proximo) videoer på YouTube. Han er god til at forklare og splitte opgaven op i trin, så man forstår, hvad man foretager sig. Det er ikke bare “copy and paste”.

Efter bare fem minutter havde jeg denne formel, som er græsk katolsk overfor, hvilke kolonner data befinder sig i.

=INDEKS(A:A;SAMMENLIGN(G24;B:B;0))

  • Sammenhold evt. disse punkter med det nederste billede, men det kan være svært at se
  • I kolonne A har jeg (helt dumt – men det virker) skrevet “Ja” ud for de 592 direkte aner
  • I kolonne B har jeg numrene på de 592 direkte aner. Numrene stammer fra =VENSTRE(A1; FIND(“,”; A1) – 1) i csv-filen, og som jeg bare har kopieret ind i den store fil.
  • Fx indeholder celle G24 nummer “995”, som er min mormors fars ID.
  • Kolonne H er som udgangspunkt tom. Den skal fodres med “Ja”, der hentes fra kolonne A.
  • Og helt lavpraktisk kigger funktionen så ovre i kolonne B for at se, om den også kan finde “995” der.
  • Hurra det kan den, og så returnerer den et “Ja” i kolonne H.

Så er der selvfølgelig “problemet” med, at alle de personer, der ikke findes begge steder (fordi de ikke er direkte aner).

Hvis jeg var bedre, end jeg er, kunne Excels returnering af #I/T sikkert være løst smartere. “Koden” vises, når der ikke er et match. Jeg lavede bare på to minutter lidt sortering frem og tilbage og slettede alle #I/T’erne. Det virkede strålende.

Og da de alligevel var sorterede, gav jeg dem lidt kulør. Og bagefter sorterede dem tilbage til den oprindelige dato for gennemgang, så jeg ikke mister det forkromede overblik, jeg endelig har fået.

Udfordring 5: Tænk hvis jeg kunne huske, hvorfor jeg ville markere de direkte aner

Jeg kan simpelthen ikke huske, hvad det var, der fik idéen om denne markering til at opstå. Men det må da være smart?

Da jeg fik idéen, besluttede jeg, at den var værd at bruge tid på. Og så har jeg lært en masse og jeg elsker læreprocesserne.

Oprydning med fantastiske Excel og ChatGPT


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.

,

ChatGPT får travlt med psykiatrien

ChatGPT får travlt med psykiatrien

Den kommende podcast

ChatGPT får travlt med psykiatrien

Eftersom jeg aldrig har stået bag en podcast før, spurgte jeg ganske enkelt ChatGPT om tips. Jeg spurgte:

Hvordan laver man en god podcastserie? Mit overordnede tema er psykiatri i alle facetter

Jeg fik dette svar:

“At lave en god podcastserie om psykiatri i alle facetter kræver grundig planlægning, forskning og udførelse. Her er nogle trin, der kan hjælpe dig med at komme i gang:

  1. Definer dit mål og formål: Beslut dig for, hvad du ønsker at opnå med din podcastserie. Ønsker du at informere, oplyse, skabe bevidsthed eller starte en samtale? Definér også din målgruppe og tænk på, hvad de vil være interesserede i at høre.
  2. Lav en oversigt over emner: Psykiatri er et bredt emne, så det kan være nyttigt at lave en liste over relevante emner, du gerne vil dække. Dette kan omfatte forskellige psykiske lidelser, behandlingsmetoder, historiske perspektiver, personlige historier og meget mere. Organisér dine emner i en logisk rækkefølge for at sikre en sammenhængende fortælling.
  3. Gennemfør forskning: Dyk ned i hver af dine emner og udfør grundig forskning for at opbygge en solid viden om psykiatriens forskellige facetter. Læs bøger, undersøg videnskabelige artikler, lyt til eksperter og interview folk, der har erfaring inden for psykiatriområdet. Det er vigtigt at sikre, at dine oplysninger er nøjagtige og troværdige.
  4. Planlæg episoderne: Lav en detaljeret plan for hver episode. Definér hovedemner, underemner og vigtige pointer, du ønsker at dække. Dette vil hjælpe dig med at strukturere dine episoder og sikre, at du holder fokus og undgår at afvige for meget.
  5. Skab et engagerende format: Overvej hvilket format der vil fungere bedst for din podcastserie. Vil du have en fortællende stil, interviews med eksperter eller personlige historier? Variation i dit format kan være med til at fastholde lytterne og holde dem interesserede.
  6. Optagning og redigering: Anskaf et kvalitetsmikrofon- og optagelsesudstyr for at sikre god lydkvalitet. Optag dine episoder i et stille rum og sørg for, at alle deltagere er klart hørlige. Når optagelserne er færdige, redigerer du dem omhyggeligt for at fjerne unødvendige pauser, støj og fejl. Vær også opmærksom på at tilføje passende musik og lydeffekter for at forbedre lytteoplevelsen.
  7. Udgivelse og markedsføring: Vælg en pålidelig podcastværttjeneste, hvor du kan uploade og distribuere dine episoder. Opret en visuel identitet for din podcast med et professionelt coverbillede og en beskrivelse, der fanger lytternes interesse. Promover dine episoder på sociale medier, i relevante online fællesskaber og ved at invitere gæster eller eks”

Det slutter lidt sært med “eks”, som jeg ikke ved, hvad der menes med. Men pyt med det.

Herefter spurgte jeg:

Kan du foreslå hvilket kvalitetsmikrofon og -optageudstyr, der er bedst? Hvad skal jeg gå efter?

Jeg fik dette svar:

“Der er mange gode mikrofoner og optageudstyr til rådighed på markedet, og valget afhænger af dine specifikke behov og budget. Her er nogle populære mikrofoner og optageudstyr, der ofte anbefales til podcasting:

  1. Mikrofoner:
    • Audio-Technica ATR2100x-USB: En alsidig dynamisk mikrofon med både USB- og XLR-forbindelse, der giver mulighed for tilslutning til computeren eller lydinterface.
    • Shure SM58: En klassisk dynamisk mikrofon, der er kendt for sin holdbarhed og fremragende lydkvalitet.
    • Rode PodMic: En dynamisk mikrofon specielt designet til podcasting, der leverer klare og fyldige stemmeoptagelser.
    • Blue Yeti: En kondensatormikrofon med USB-forbindelse, der er let at bruge og leverer god lydkvalitet.
  2. Lydinterface:
    • Focusrite Scarlett 2i2: Et populært valg til podcasting med to indgange og gode mikrofonforforstærkere.
    • PreSonus AudioBox USB 96: Et pålideligt lydinterface med to indgange og en simpel betjening.
    • Behringer U-Phoria UM2: Et prisvenligt lydinterface med en mikrofonindgang og en instrumentindgang.
  3. Tilbehør:
    • Boom-arm: En justerbar arm, der monteres på dit bord og holder mikrofonen i den ønskede position.
    • Popfilter: En skærm, der monteres foran mikrofonen for at reducere uønskede plosiver og luftstøj.
    • Shock mount: En montering, der reducerer støjen fra vibrations og håndtering, når mikrofonen er monteret på en boom-arm eller stativ.

Det er vigtigt at bemærke, at lydkvaliteten også afhænger af din optagemiljø og efterbehandling. Sørg for at optage i et lyddæmpet rum uden forstyrrelser og overvej at bruge en lydisolering eller akustisk behandling for at forbedre lydens kvalitet.”

Der er sparet mange søgninger med Google

Det havde taget lang tid at Google de tilsvarende resultater. ChatGPT svarede på sekunder. Jeg er er fascineret af Artificial Intelligence (AI), der er meget bedre til at svare, end jeg havde været til at spørge med Google.

Projektet kommer til at koste lidt, men det går nok. Hele eller dele af udstyret kan muligvis skaffes brugt.

Deltagere

Jeg har fået mange gode tilsagn om deltagelse: en professor, en overlæge, en farmaceut, en medarbejder i Distriktspsykiatrien/FAC-T, en psykolog osv. Jeg gætter på, at de har sagt ja, fordi de tror, at det kan blive et seriøst projekt.

Det bliver spændende. Jeg regner med at præsentere en blanding af min personlige historie og så deltagernes faglighed.


Her kommer du til menupunktet “Psykiatri”, hvor du kan navigere mellem alt, jeg i årenes løb har skrevet om bipolar affektiv sindslidelse og Aspergers syndrom.


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.