Print side | Luk vindue

formel eller macro

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Formler
Forum beskrivelse: Hjælp til formler i regneark og/eller brugen af disse.
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=2831
Udskrevet den: 02.Maj.2024 kl. 01:47


Emne: formel eller macro
Besked fra: hejstrup
Emne: formel eller macro
Posteringsdato: 20.Nov.2016 kl. 12:26
Hej. Jeg vil sammenkøre oplysninger fra 2 ark i et tredje, og reducere antal linjer hvor der er dobbeltforekomster, se i vedhæftede, kan ikke rigtigt finde den gode løsning!'Star uploads/392/Test.xlsx" rel="nofollow - uploads/392/Test.xlsx
//hejstrup


-------------
vh hejstrup



Svar:
Besked fra: Inaktiv profil
Posteringsdato: 20.Nov.2016 kl. 15:44
Her er et forslag for v1
(v1 og f1 skal være opstillet i forlængelse af hinanden og være sorteret efter klokkeslæt for at det virker)

uploads/1409/Sammenkøre_2016-11-20_15-43-55.xlsx" rel="nofollow - uploads/1409/Sammenkøre_2016-11-20_15-43-55.xlsx


Besked fra: hejstrup
Posteringsdato: 20.Nov.2016 kl. 17:59
Det er desværre ikke optimalt, måske en misforståelse, jeg har vist ikke gjort det præcist nok. Se bort fra ark1 det er blot en oversigt over det er skal ske.
De data der er liste i ark v1 og ark f1 skal sammenstilles i ark vf1, samtidig med de liste kronologisk oppe fra og ned efter klokkeslæt. Oven i det hele skal de data der er to ens linier af i enten v1 eller f1 viser på en l linie med et 2 i antal.
Kan det overhovedet laves uden en macro ?
//hejstrup

-------------
vh hejstrup


Besked fra: Inaktiv profil
Posteringsdato: 20.Nov.2016 kl. 19:49
Det er nok bedre du stiller spørgsmålet under Makro og VBA.


Besked fra: excelent
Posteringsdato: 23.Nov.2016 kl. 18:55
Indsæt følgende kode i et alm. modul:

Sub KopierUnikke()
Sheets("vf1").Select ' Arket hvor resultat skal ende
Dim rng_v1 As Range
Dim rng_f1 As Range
Dim coll As New Collection
Set rng_v1 = Sheets("v1").Range("A2:A6")
Set rng_f1 = Sheets("f1").Range("A2:A6")

On Error Resume Next
For Each c In rng_v1 ' opret unik liste på tider
coll.Add c.Value, CStr(c.Value)
Next
For Each c In rng_f1
coll.Add c.Value, CStr(c.Value)
Next
On Error GoTo 0

For Each c In coll ' skriv liste i ark kolonne A
t = t + 1
Cells(t + 1, "A") = Format(c, "hh:mm")
Next
' sorter liste
Range("A2:A8").Sort key1:=Range("A2"), Order1:=xlAscending

Set rng_v1 = Nothing
Set rng_f1 = Nothing
Set coll = Nothing
End Sub



-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!


Besked fra: excelent
Posteringsdato: 23.Nov.2016 kl. 19:07
Indsæt følgende formler i Ark vf1

B2 =HVIS.FEJL(LOPSLAG($A2;'v1'!$A$2:$E$6;2;FALSK);LOPSLAG($A2;'f1'!$A$2:$E$6;2;FALSK))
C2 =HVIS.FEJL(LOPSLAG($A2;'v1'!$A$2:$E$6;3;FALSK);LOPSLAG($A2;'f1'!$A$2:$E$6;3;FALSK))
D2 =MAKS(TÆL.HVIS('v1'!$A$2:$A$6;A2);TÆL.HVIS('f1'!$A$2:$A$6;A2))
E2 =HVIS.FEJL(LOPSLAG($A2;'v1'!$A$2:$E$6;5;FALSK);LOPSLAG($A2;'f1'!$A$2:$E$6;5;FALSK))

kopier formlerne nedad


-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!


Besked fra: hejstrup
Posteringsdato: 23.Nov.2016 kl. 19:29
Hej excelent. Jeg går ud fra det er enten den ene eller anden af dine to løsninger ?
Eller skal der både laves macro og formler ?
Jeg får det afprøvet, du skal nok få svar.
//hejstrup

-------------
vh hejstrup


Besked fra: excelent
Posteringsdato: 23.Nov.2016 kl. 19:54
Det er begge
Start med at køre makro som henter tiderne
Når du har dem, så kan du lave opslag med formlerne

-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!


Besked fra: hejstrup
Posteringsdato: 23.Nov.2016 kl. 21:52
Takker, er næsten i mål, jeg kører både Excell 2007 og Excel Office 365.

-------------
vh hejstrup



Print side | Luk vindue