Just nu i M3-nätverket
Gå till innehåll

EXCEL ─ Räkna upp stegvis för varje instans


MvS
 Share

Rekommendera Poster

Hej!
Nu har jag slitit mitt hår i förtvivlan över ett problem som jag tycker borde vara busenkelt för Excel att klara men jag måste tänka helt fel  - det är i alla fall vad Excel tycker...
Problemet:

Har en databas på ett Excel-ark där data är importerat från en släktdatabas. Vid importen kommer alla fält och poster i lodrät formering men jag vill transponera data så att fälten kommer vågrätt för vidare export till Access. Varje post ligger alltså travad under den andra där varje fält upprepas i respektive post vilket gör en tabell på 230 poster att bli nästan 8000 rader i Excel-arket!
Vad jag vill göra:

Jag vill försöka separera posterna med primärnycklar i form av ID, ett för varje person. Så jag tänkte först i min naiva enfald att det bara går att fixa med villkorsformel, men ack vad jag bedrog mig!

1531786345_Bild1.jpg.0051366bc621b3f7dc883156a7ede880.jpg

Jag har försökt med ett "OM" villkor att få Excel att för varje återkommande "ID" paginera så att Varje "ID" räknas upp ett steg från 1, 2, 3.. osv samt att alla andra fältnamn får samma värde som respektive "ID" typ:

ID 1

FNAMN 1

ENAMN 1

ADRESS 1

TELEFON 1

ID 2

FNAMN 2

ENAMN 2

ADRESS 2

TELEFON 2

etc. men det är fullkomligt tji att få till det då det blir lätt en massa cirkelreferenser som ställer till det!

Någon på E-forum som har ett listigt knep att delge hur jag ska få till det?

 

 

 

 

 

Redigerad av MvS
Länk till kommentar
Dela på andra webbplatser

Markera det du vill ha ut

image.png.ca0466325f9514d61c48f502fbbbb849.png

 

Välj Copy i Excel

image.png.26dd54bb2c1939ece25bca47a9b623d4.png

 

Markera den cell du vill ha in datan i rader

Välj Paste - Transpose

image.png.a413fbe794ba65fe6381d009cf07ad8a.png

 

Nu ska du ha din data i kolumner istället för rader

 

image.png

Redigerad av Automan
Dublett av en bild
Länk till kommentar
Dela på andra webbplatser

Tack för svar!

Vore det så enkelt... Nä, det enda som då sker är att jag får 8000 kolumner i stället för rader och det blir lika illa...

Jag vill försöka ge unika ID:n åt alla 230 posterna så att jag därifrån kan ställa upp en matris med EN uppsättning fältrubriker.
//Magnus

Länk till kommentar
Dela på andra webbplatser

21 minuter sedan, skrev MvS:

Nä, det enda som då sker är att jag får 8000 kolumner i stället för rader och det blir lika illa...

Jag vill försöka ge unika ID:n åt alla 230 posterna så att jag därifrån kan ställa upp en matris med EN uppsättning fältrubriker.

Ok, prova med följande lösning förutsatt att din data ligger som i mitt exempel nedan

 

image.png.347eb6deb0a3b21b69b1faaba814e1b0.png

 

Skapa en rubrik för dina 2 kolumner

Lägg därefter till ett filter för bägge kolumnerna

Välj att visa endast ID i kolumn 1

Kopiera alla ID:n i kolumn 2 och lägg dem i din kolumn för ID

Upprepa detta för FNAMN, ENAMN, ADRESS, TELEFON.

 

image.png.21e36c32dd3400e62e67b45d6dc63740.png

 

Det blir en del manuellt arbete, men då du bara behöver upprepa detta 5 gånger för att få ditt resultat kanske det duger som lösning.

 

 

 

 

Redigerad av Automan
Förtydligande om kopiering
  • Gilla 1
Länk till kommentar
Dela på andra webbplatser

Postad (redigerade)
16 timmar sedan, skrev MH_:

Nu lekte jag lite med en GED-com fil

cell C2

=OM(ÄRFEL(SÖK("@ INDI";$A2));"";$A2)

cell D2

=OM(C2="";"";OM(PASSA("*"&D$1&"*";$A3:$A$8000;0)<PASSA("*@ INDI*";$A3:$A$8000;0);INDEX($A3:$A$8000;PASSA("*"&D$1&"*";$A3:$A$8000;0));" "))

Kopiera högerut och kopiera ner formelraden

 

Den kollar alltså efter "@ INDI" för att bestämma startrad.

Sen tittar den efter texten i rubriken (rad1) och returnerar nästa förekomst före nästa "@ INDI"

 

Ähh, lek med det.

Hej!
Stort tack för ditt engagemang ─ Det var precis i de här banorna jag också tänkte! Bilden jag bifogade tidigare var schematisk (för att jag ville se principen bakom en kodning) och när jag försöker omsätta din kod med de skarpa referenserna verkar det inte funka, sannolikt för att jag satt dessa fel...

Jag bifogar ett "tvättat" utdrag från originalfilen med 5 poster så att du kan se strukturen i GEDCOM-filen, och om du har tid & lust är jag dig tacksam om du kan titta på den och ge förslag på åtgärd.

 

mvh

//Magnus

 

P.S

För att förtydliga:
Jag vill alltså skapa ID:n som vidhäftas respektive post i.e. skapa primärnyckel för varje person i databasen!

Ds

 

Bok1.xlsx

Redigerad av MvS
Länk till kommentar
Dela på andra webbplatser

2 timmar sedan, skrev MvS:

Hej!
Stort tack för ditt engagemang ─ Det var precis i de här banorna jag också tänkte! Bilden jag bifogade tidigare var schematisk (för att jag ville se principen bakom en kodning) och när jag försöker omsätta din kod med de skarpa referenserna verkar det inte funka, sannolikt för att jag satt dessa fel...

Jag bifogar ett "tvättat" utdrag från originalfilen med 5 poster så att du kan se strukturen i GEDCOM-filen, och om du har tid & lust är jag dig tacksam om du kan titta på den och ge förslag på åtgärd.

 

mvh

//Magnus

 

P.S

För att förtydliga:
Jag vill alltså skapa ID:n som vidhäftas respektive post i.e. skapa primärnyckel för varje person i databasen!

Ds

 

Bok1.xlsx 13 kB · 3 downloads

Jag hittade nu formeln för att plocka ut ID:
=OM([@DATA]="INDI";EXTEXT([@KAT];LÄNGD([@KAT])-1;1);"")

Det returnerar aktuellt post # men bara i de instanser där "INDI" förekommer. Lekte med idén att i OM-satsens "annars" (dvs längst till höger i strängen) hitta en relativ referens till föregående (ovanstående) cell om strängen returnerar "Falskt" men hittills gått bet!

Alltså, jag vill att formeln ger, om villkoret inte uppfylls, värdet från den relativa cellen ovanför (som inte är rubrikcell) . Kan det ordnas med t ex INDIREKT i någon elegant kombination?
//Magnus

 

Länk till kommentar
Dela på andra webbplatser

Briljant! 

Du fick till det med flersiffrigt ID också (det grejade inte jag)!
Där ser man ─ Det behövdes alltså inga jätteoperationer för att greja detta, det var väl det jag kände... Less is more! (Den Ockhams:ka Rakkniven är fortfarande giltig!)*

???

Stort tack för dina inputs!

//Magnus

 

* Läs mer om Ockhams Rakkniv här >>>

Länk till kommentar
Dela på andra webbplatser

 Share



×
×
  • Skapa nytt...