Prenos seznama med delovnimi listi

Pomoč pri delu z MS Excelom
Odgovori
ludak
Prispevkov: 4
Pridružen: Pe Apr 05, 2013 4:14 pm

Prenos seznama med delovnimi listi

Odgovor Napisal/-a ludak »

Pozdravljeni

Upam, da mi boste znali pomagali rešiti moj problem.

Na Listu 1 imam seznam 100 naklučno izbranih ljudi in ni razvrščen. Imam 3 kolone (A, B, in C), Ime, Priimek in Leta. Moja naloga je, da ta seznam spravim na List 2 in ga razvrstim po letih od najnižjega do najvšjega, če pa se pri kom leta podvojijo, pri tistih pa po abecednem redu glede na priimek.

Problem je, da morajo biti povezave med Listom 1 in Listom 2 dinamične (žive?), se pravi, da če na Listu 1 pri nekom popravim katerikoli podatek, se bo na Listu 2 zgodilo isto in posledično na novo razvrstilo. Se pravi copy-paste varianta odpade.

Sam se probaval z funkcija LOOKUP in VLOOKUP, vendar mi nikakor ni uspelo.

Hvala za pomoč
ludak
Prispevkov: 4
Pridružen: Pe Apr 05, 2013 4:14 pm

Re: Prenos seznama med delovnimi listi

Odgovor Napisal/-a ludak »

Gledam razne videe na youtube in sem prišel do ene rešitve, in sicer da grem na nov list in napiše =List1!A1 stisnem enter in povlečem navdol. Je to edina rešitev ali obstaja še kakšna boljša? Problem pa nastane pri filtriranju. Recimo filtriram stolpec C2:C21 od najmanjšega do največjega in se mi recimo v celicah C5, C6 in C7 povsod pojavi vrednost 20. Kako bi potem za te tri celice fittriral stolpec B, da bi bili B5, B6 in B7 razvrščeni po abecedi od a do ž. Se pravi funkcija v funkciji (gnezdenje?). V smislu IF C5=C6=C7 razvrsti B5, B6 in B7 po abecedi. Anyone?


Morda še nasvet za filtriranje pri =RANDBETWEEN? namreč podatke v stolpcu C imam podane s to funkcijo in jih nikakor ne morem filtrirat. Če jih zapišem ročno, dela filter normalno.


Luka
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Prenos seznama med delovnimi listi

Odgovor Napisal/-a admin »

Pozdravljeni,

Na žalost menim, da vaš analoga brez uporabe makrov preprosto ni rešljiva. lahko sicer da se motim, saj ima Excel poln nabor opcij, funkcij, možnosti, čarovnikov in kar je še podobnega; a jaz se ne uspem spomniti nobene, ki bi seznam avtomatično sortirala.. .No ko razmišljam sem pravzaprav 99,9% prepričan, da tega v excelu - brez uporabe makrov! - ne boste uspeli rešiti.

Problem je namreč v dejstvu, da želite vi sortirati seznam na listu 2 ob vsaki spremembi seznama na listu 1 tega pa Excel ne zna oz. nima opcije, ki bi to omogočila. Še najbližje vašim željam se približate z uporabo vrtilnih tabel a tudi slednje je potrebno ročno osveževati ali pa osveževati na čas; ne znajo pa se osveževati ob spremembi vhodnih podatkov.

Za popolno rešitev vašega problema vam tako ostane samo VBA oz. marki...
lp,
Matjaž Prtenjak
Administrator
ludak
Prispevkov: 4
Pridružen: Pe Apr 05, 2013 4:14 pm

Re: Prenos seznama med delovnimi listi

Odgovor Napisal/-a ludak »

Se pravi tudi z VLOOKUP funkcijo nebi šlo?
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Prenos seznama med delovnimi listi

Odgovor Napisal/-a admin »

S funkcijo VLOOKUP bi podate že spravili na drug list... to ni problem... problem vaše naloge je v dejstvu, da želite, da se podatki na drugem listu tudi avtomatično sortirajo...
lp,
Matjaž Prtenjak
Administrator
ludak
Prispevkov: 4
Pridružen: Pe Apr 05, 2013 4:14 pm

Re: Prenos seznama med delovnimi listi

Odgovor Napisal/-a ludak »

Zdravo

Sedaj sem par dni preživel nonstop na youtube-u in spisal nek macro, ki je kar soliden. Imam pa eno vprašanje, zakaj mi ne pusti pisati besedila v stolpec B (pod Priimek)? Medtem ko lahko v stolpec A pišem normalno. Bi pripel macro kodo v priponko, pa ne znam, zato jo bo prilepil kar tu.

Hvala

Private Sub Worksheet_Change(ByVal Target As Range)
Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _
Operator:=xlGreaterEqual, Formula1:="1"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Ime"
.ErrorTitle = "Ime"
.InputMessage = "Vnesite besedilo."
.ErrorMessage = "Vnesite besedilo!"
.ShowInput = True
.ShowError = True
End With
Range("B2").Select
Range(Selection, Selection.End(xlDown)).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateDecimal, AlertStyle:=xlValidAlertStop, Operator _
:=xlGreaterEqual, Formula1:="0.00"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Priimek"
.ErrorTitle = "Priimek"
.InputMessage = "Vnesite besedilo"
.ErrorMessage = "Vnesite besedilo!"
.ShowInput = True
.ShowError = True
End With
Range("C2").Select
Range(Selection, Selection.End(xlDown)).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateTextLength, AlertStyle:=xlValidAlertStop, _
Operator:=xlGreaterEqual, Formula1:="1"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = "Poraba"
.ErrorTitle = "Poraba"
.InputMessage = "Vnesite številko."
.ErrorMessage = "Prosim vnesite številko!"
.ShowInput = True
.ShowError = True
End With
Dim erow As Long
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Range("C:C").Select
Range("A:C").Sort Key1:=Range("C2"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
If Cells(erow - 1, 1).Offset(0, 1) = "" Then
Cells(erow - 1, 1).Offset(0, 1).Select
Else: Cells(erow, 1).Select
End If
End Sub
Odgovori