Gå til innhold

Får ikke excel-kode til å fungere.


BenWhittaker

Anbefalte innlegg

Hei! Har fått god hjelp her tidligere og prøver igjen. :)

 

Jeg har en kolonne med fødselsdatoer som hentes ut av et system. Jeg skal sammenligne disse med fødselsdatoer i et annet system for å finne fellesnevnere (av praktiske årsaker ift bemanningslister etc).

 

Utfordringen er at fødselsdatoene fra det ene systemet står slik:

01.01.1980 00:00:01

 

I det andre systemet står datoen på samme måte, men uten den siste tallrekka med klokkslett eller hva det er for noe. Jeg forsøker derfor å fjerne de siste sifrene med en kode.

 

Jeg skriver:

=venstre(A1;10)

for å gjøre dette.

 

Men resultatet blir ikke som ønsket. Jeg får opp en (for meg uforståelig) tallrekke, som for eksempel:

31343,0000

 

Jeg har forsøkt å markere kolonnene og formatere som tekst/dato/tall/standars etc uten at det utgjør noen forskjell.

 

Jeg skulle tro dette var en ganske enkel sak, men har nå knotet med det i flere timer. Er det noen som greier, og gidder, å hjelpe meg? Si ifra hvis mer informasjon er nødvendig og jeg skal forsøke å svare etter beste evne.

 

Takk så lenge.

Lenke til kommentar
Videoannonse
Annonse

Hvis vi forutsetter norsk versjon av Excel:

=DATO(DELTEKST(A1;7;4);DELTEKST(A1;4;2);VENSTRE(A1;2))

Merk for øvrig at den lange tallrekken fort kan vise seg å være riktig (altså at Excel "leser" dataene korrekt), eksempelvis er 31343 tallet som representerer 23. oktober 1985. Prøv å endre tallformatet på tallene til dato, og se om ikke det blir mindre uforståelig da. =)

Lenke til kommentar

 eksempelvis er 31343 tallet som representerer 23. oktober 1985. Prøv å endre tallformatet på tallene til dato, og se om ikke det blir mindre uforståelig da. =)

 

Nemlig. Hiver meg på i folkeopplysningens navn. I Excel (og Windows og SQLserver og mye annet) er 1 ett døgn, og slike tall, datoer, er antall døgn siden tidenes morgen. For Bill Gates og gjengen var tidenes morgen nyttårsaften til år 1900. For Steve Jobs & co var tidenes morgen først nyttårsaften til år 1904. Go figure.

Ordentlige nerder irriteres over at Microsoftkalenderen påstår at 1900 var skuddår. Den feilen ble lagt inn for å sikre kompatibilitet med noen gamle greier dengang da.

I Unixbaserte systemer er tid antall sekunder siden tidsenes morgen, som for dem var nyttårsaften til 1970. Omregningen til Windows er å først dividere med antall sekunder i døgnet (86400) og så legge til antall døgn mellom 1900 og 1970.

Slik går nå dagan. Eller sekundan :)

 

Beste hilsen Harald

  • Liker 1
Lenke til kommentar

Jeg har skrevet koden og får da opp riktig fødselsdato som dd.mm.åååå

 

[...]

Problemet er at formelen ikke fungerer etter at jeg har brukt koden =tekst(a1;"dd.mm.åååå") . Det virker som excel ikke registrerer fødselsdatoen når jeg sammenligner kolonnene pga det er en formel i bunn.

 

 

Funksjonen 'tekst' vil, som det ganske åpenbart ligger i navnet, returnere en tekst. Det ser tilsynelatende riktig ut i den forstand at du får frem noe som fremstår som en dato på formen dd.mm.åååå, men det er like fullt tekst og ikke en dato.

 

Dette kan du dobbelsjekke ved å sette tallformatet til 'Standard'. En "ekte" dato vil da vises som et tall, hvilket både jeg og Harald allerede har forklart.

 

Dersom du heller bruker formelen jeg ga tidligere, så får du returnert en ordentlig dato - og setter du riktig tallformat ('dd.mm.åååå', eller 'kort dato' dersom du bare velger rett fra knapperaden) så vises den også slik du ønsker.

 

Denne datoen kan du så bruke videre enten til "dato-matematikk" (f.eks. sammenlikning mot andre datoer), eller som grunnlag for andre funksjoner som handler om dato og tid (f.eks. år(), måned(), dag(), ukedag() etc.). Du kan også sette andre varianter av tallformat, slik at datoen vises f.eks. på formen 'mandag 1. januar 2018' (i så fall skal tallformatet være 'dddd d. mmmm åååå').

Endret av Horge
Lenke til kommentar

Takk for svar! Jeg må bare si at jeg ikke har noen som helst opplæring i Excel og derfor er litt tunglært.

 

Vedlagt har jeg forsøkt å bruke koden som du sendte, men det blir ikke den samme datoen, som du kan se.

 

Jeg har sjekket formateringen og det står som "dato". Hvis jeg kjører "standard" blir tallet "309".

 

Takk igjen for hjelpen.

post-314662-0-37123700-1512667127_thumb.jpg

Lenke til kommentar

Hvis du kan anonymisere excelfilen, og legge ut to rader med info fra originalen så blir det mye enklere å se hvor feilen ligger. Sett ut fra bildet så blir spørsmålet hva som faktisk ligger i celle O2 (for det er rad 1 og 2 vi ser?) - det står 29.06.1997, men er dette tekst eller dato?

 

Hvis du setter tallformatet til 'tall' på celle O2, hva får du da?

  • Liker 1
Lenke til kommentar

Hvis du kan anonymisere excelfilen, og legge ut to rader med info fra originalen så blir det mye enklere å se hvor feilen ligger. Sett ut fra bildet så blir spørsmålet hva som faktisk ligger i celle O2 (for det er rad 1 og 2 vi ser?) - det står 29.06.1997, men er dette tekst eller dato?

 

Hvis du setter tallformatet til 'tall' på celle O2, hva får du da?

Hei! Jeg er bortreist og er tilbake ved pc'en på tirsdag - da skal jeg prøve! Takk så lenge. :)

Lenke til kommentar

Hei!

Jeg forsøkte å gjøre som du beskrev uten hell.

Vedlagt er et anonymisert excel-ark. Det jeg ønsker er da altså å fjerne «00:00:01» som står bak fødselsdatoen i fødselsdato-kolonnen. Dette må gjøres ved hjelp av en kode fordi det er en stor mengde data og det tar altfor lang tid å gjøre det manuelt.

Videre skal jeg sammenligne fødselsdatoene i ark 1 med fødselsdatoene i ark 2. Tallene i ark 2 hentes ut av et annet system og har derfor riktig format.

Er det noen som greier å finne ut hvordan jeg kan bruke koden riktig? I så fall er jeg meget takknemlig!

 

EDIT:

Jeg måtte laste filen opp gjennom mobiltelefonen og det ser ut som at "00:00:01" da ble borte. I min fil står fødselsdatoene i det anonymiserte arket på følgende måte:

 

01.08.1970  00:00:01

03.05.1982  00:00:01

02.12.1990  00:00:01

 

Ta eventuelt og kopier fødslesdatoene som skrevet over og lim inn i excel-arket for å riktig utgangspunkt.

 

EDIT2:

For ordens skyld, jeg har allerede forsøkt å endre formatering på cellene. Har forsøkt alle alternativer uten hell. I tillegg har jeg brukt koden som er skrevet overfor, men det blir ikke riktig resultat. (Se screenshot over.)

Anonymisert til hjelp.xlsx

Endret av BenWhittaker
Lenke til kommentar

Både kolonne A og B i filen du lastet opp er korrekt formatert som dato, hvilket Harald altså har forklart at egentlig er tallverdier.
 
Det som trolig stikker kjepper i hjulene for deg er at disse tallverdiene ikke er et heltall, men har fått med seg ,0000115741 som desimal - hvilket utgjør ett sekund når man gjør om tallverdien til å vises som dato og tid.
 
For å bli kvitt desimalene så er det flere alternative veier til mål. Hvis man ønsker å holde seg i tankegangen dato og tid, så vil denne formelen lage en dato basert på år, måned og dag fra A2.
 

=DATO(ÅR(A2);MÅNED(A2);DAG(A2))

En enklere variant er strengt tatt bare å avrunde tallverdien som ligger bak datoen. I så fall kan du f.eks. gjøre noe så banalt som disse variantene:
 

=AVRUND(A2;0)
=HELTALL(A2)
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...