,

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.

3 Svar
    • Stegemüller
      Stegemüller siger:

      @ Kenneth

      Velkommen til. Tak for din kommentar, der lige skulle godkendes først, da du ikke tidligere har kommenteret her (spam-hensyn). Fra nu af vil du stryge lige igennem.

      Jeg troede man kunne dele, men der tog jeg fejl (jeg spurgte lige ChatGPT).

      Men jeg kopierer herunder lidt fra samtalen, så du kan se eksempler:

      ChatGPT

      Jeg beklager, at du stadig oplever problemer med makroen. Jeg vil forsøge at hjælpe med at fejlfinde situationen yderligere. Her er nogle trin og ting at overveje:

      Åbn begge filer i samme Excel-session: Forsøg at åbne både “fil1.xlsm” og “fil2.csv” i det samme Excel-program og derefter køre makroen. Dette kan forhindre, at Excel lukker den ene fil, før makroen fuldfører sin opgave.

      Kontroller om makroen køres korrekt: For at sikre, at makroen faktisk udføres, kan du tilføje en midlertidig besked eller dialogboks i begyndelsen eller slutningen af makroen ved hjælp af VBA-kode som denne:

      vba

      MsgBox “Makroen blev kørt!” ‘ Dette viser en meddelelsesboks

      Dette vil hjælpe dig med at bekræfte, om makroen faktisk bliver udført, eller hvis der opstår en fejl tidligt i processen.

      Fejlmeddelelser: Hvis du stadig ikke ser nogen ændringer i kolonne D i “fil1.xlsm,” skal du tjekke om der vises nogen fejlmeddelelser, når makroen kører. Hvis der er fejlmeddelelser, kan de give vigtige oplysninger om, hvorfor makroen ikke fungerer.

      Brug en anden metode: Hvis makroen stadig ikke fungerer, kan du overveje at bruge en alternativ metode til at udføre denne opgave. For eksempel kan du bruge Excel’s indbyggede funktioner som VLOOKUP eller MATCH i stedet for VBA.

      Prøv disse trin og overvejelser, og se om de hjælper med at løse problemet. Hvis du fortsat har problemer eller opdager yderligere oplysninger, der kan hjælpe med fejlfinding, er du velkommen til at dele dem, og jeg vil gøre mit bedste for at hjælpe dig videre.
      User
      You
      Hej igen. Jeg opgiver makroen og prøver i stedet med LOPSLAG (det danske ord).

      Jeg har indsat værdierne fra fil2.csv i nye kolonner A og B. I kolonne C har jeg sat JA ud for alle disse rækker. Jeg har formateret kolonne B som tal og sorteret dem i stigende orden.

      Jeg vil hente værdien fra den tredje kolonne i tabelmatrixen (altså kolonne C). Dvs. når jeg har fx ID’et 995 i kolonne B, og jeg også har ID 995 i kolonne G, så vil jeg gerne sætte “JA” i kolonne H til højre for 995. Jeg vil søge præcist efter opslagsværdien fx 995. Derfor skriver jeg SAND.

      Er det korrekt?

      Jeg synes jeg forstår LOPSLAG, men har det problem, at Excel sætter en pling ‘ foran min formel. Det kommer fx til at se sådan ud: ‘=LOPSLAG(G4;A4:C595;3;FALSK)

      Hvordan udgås det?
      ChatGPT
      ChatGPT

      Dit forslag om at bruge LOPSLAG (VLOOKUP) til at løse dette problem lyder korrekt. Her er en forklaring på din formel:

      =LOPSLAG(G4;A4:C595;3;FALSK)

      G4 er opslagsværdien, som du søger efter.
      A4:C595 er din tabelmatrix, hvor ID’erne findes i kolonne A, og “JA” eller andre værdier i kolonne C er, hvad du vil hente.
      3 angiver, at du vil have resultatet fra den tredje kolonne i din tabelmatrix (kolonne C).
      FALSK betyder en præcis opslag, så den vil kun finde en nøjagtig match.

      Det ser ud til, at din formel er korrekt opsat.

      Når det kommer til pling ‘ foran formelen, er det Excel’s måde at angive, at cellen indeholder en tekstformel. Dette ændrer dog ikke selve formelens funktionalitet. Du kan ignorere pling ‘ og indtaste formlen uden den. Excel vil automatisk tilføje det, når du trykker Enter.

      Så når du indtaster formelen, kan det se sådan ud:

      =LOPSLAG(G4;A4:C595;3;FALSK)

      Når du trykker Enter, vil Excel tilføje pling ‘ automatisk:

      ‘=LOPSLAG(G4;A4:C595;3;FALSK)

      Du kan uden problemer bruge formelen uden at inkludere pling ‘ i formelen.
      User
      You
      Men jeg kan ikke få Excel til at hente værdierne fra kolonne C (der hvor der står JA). Der sker ikke noget, når jeg trykker Enter.
      ChatGPT
      ChatGPT

      Det er forståeligt, hvis Excel ikke trækker værdierne fra kolonne C, når du bruger formlen. Dette skyldes, at LOPSLAG (VLOOKUP) normalt bruges til at hente værdier fra den første kolonne i tabelmatrixen.

      Hvis du ønsker at trække værdier fra kolonne C (hvor der står “JA”), når der er et match, kan du overveje at bruge INDEKS og SAMMENLIGN-funktionerne i stedet. Her er en formel, der skal gøre jobbet:

      =HVIS(ERFEJL(INDEKS(C4:C595; SAMMENLIGN(G4; A4:A595; 0))); “”; “JA”)

      Lad mig forklare denne formel:

      SAMMENLIGN(G4; A4:A595; 0) sammenligner værdien i G4 med værdierne i området A4:A595 og returnerer placeringen af ​​en nøjagtig match eller #NAVN? hvis der ikke er nogen match. Dette bruges til at finde placeringen af ID’et.

      INDEKS(C4:C595; …) bruger placeringen fundet af SAMMENLIGN til at trække værdien fra kolonne C.

      HVIS(ERFEJL(…)) bruges til at håndtere tilfælde, hvor der ikke er noget match. Hvis der ikke er nogen match, returnerer den en tom streng “”, ellers returnerer den “JA.”

      Denne formel bør hjælpe dig med at trække værdierne fra kolonne C, når der er et match i kolonne A. Du kan indsætte denne formel i kolonne H (eller en hvilken som helst anden kolonne efter dit valg) ved siden af ID’erne i kolonne G, og den skal automatisk udfylde “JA” for matches og forblive tom for ikke-matches.

      Svar

Trackbacks & Pingbacks

  1. […] Som jeg har beskrevet i en tidligere artikel, var jeg på jagt efter en nemmere måde at opdele stamdata om mine direkte aner i Excel. ChatGPT genererede en VBA-makro på sekunder, der sparede mig for timevis af manuelt arbejde. […]

Skriv en kommentar

Vil du deltage i debatten?

Du er mere end velkommen!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *