Primerjanje dveh listov

Pomoč pri delu z MS Excelom
Odgovori
Alcatraz_
Prispevkov: 3
Pridružen: Sr Avg 17, 2005 12:23 pm

Primerjanje dveh listov

Odgovor Napisal/-a Alcatraz_ »

Pozdravljen

Zanima me, kako naj primerjam list1 z listov2 tako da se mi bodo vsi ki so na obeh listih prepisali v list3 iz lista1 pa zbrisali.

Hvala za pomoč

Luka
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Pozdravljen
Zanima me, kako naj primerjam list1 z listov2 tako da se mi bodo vsi ki so na obeh listih prepisali v list3 iz lista1 pa zbrisali.
Napisali ste malce nerazumljivo:
- ne poveste, ali gre za primerjavo podatkov, formul, predmetov,...
- ne poveste, kam naj bi se ti podatki prepisali v list3

Verjetno gre za primerjavo podatkov in vi bi želeli kodo, ki bi to izvedla.
Eh,... malce diši po domači nalogi :lol: , naloge, pa so za to, da se človek kaj nauči :? , raznih programčkov pa se tu tudi ne piše :(, vendarle pa je lepo če komu pomagaš - zato naj bo le namig, ostalo pa sam,...

Z zanko For Each c In Range("...") preverite podatke, z If stavkom v zanki pa podatke prepišite in zbrišite.

Lp, pa malo zabave :wink:
Alcatraz_
Prispevkov: 3
Pridružen: Sr Avg 17, 2005 12:23 pm

Odgovor Napisal/-a Alcatraz_ »

Stenly napisal/-a:Pozdravljen
Zanima me, kako naj primerjam list1 z listov2 tako da se mi bodo vsi ki so na obeh listih prepisali v list3 iz lista1 pa zbrisali.
Napisali ste malce nerazumljivo:
- ne poveste, ali gre za primerjavo podatkov, formul, predmetov,...
- ne poveste, kam naj bi se ti podatki prepisali v list3

Verjetno gre za primerjavo podatkov in vi bi želeli kodo, ki bi to izvedla.
Eh,... malce diši po domači nalogi :lol: , naloge, pa so za to, da se človek kaj nauči :? , raznih programčkov pa se tu tudi ne piše :(, vendarle pa je lepo če komu pomagaš - zato naj bo le namig, ostalo pa sam,...

Z zanko For Each c In Range("...") preverite podatke, z If stavkom v zanki pa podatke prepišite in zbrišite.

Lp, pa malo zabave :wink:

Hvala, za pomoč.
Res da diši po domači nalogi samo to ni.
lp
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Z for each zanko bi bilo težko, ker bi moral potem v vseh listih nekako zadeti isto celico. Spodaj pripenjam kodo, ki bo to izvedla (meni namreč to ne diši po domači nalogi, temveč po čiščenju podatkov, ki je v poslovnem okolju dokaj pogosto ...). Je pa koda pisano tako šolsko, da se lahko iz nje marsikaj naučite :).

Koda: Izberi vse

' www.matjazev.net
' 17.08.2005
Sub KopirajInBrisi()
    Dim VhodniList1 As Worksheet
    Dim VhodniList2 As Worksheet
    Dim IzhodniList As Worksheet
   
    Set VhodniList1 = ActiveWorkbook.Worksheets("List1")
    Set VhodniList2 = ActiveWorkbook.Worksheets("List2")
    Set IzhodniList = ActiveWorkbook.Worksheets("List3")
   
    Dim Podrocje As Range
    Set Podrocje = VhodniList1.UsedRange
    
    Dim x As Long, y As Long
    For y = 1 To Podrocje.Rows.Count
        For x = 1 To Podrocje.Columns.Count
            If (VhodniList1.Cells(y, x).Value = VhodniList2.Cells(y, x).Value) Then
                IzhodniList.Cells(y, x).Value = VhodniList1.Cells(y, x).Value
                VhodniList1.Cells(y, x).Value = ""
            End If
        Next
    Next
End Sub
lp,
Matjaž Prtenjak
Administrator
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Ponovno pozdrav

Ob moji ideji prilagam še kodo

Koda: Izberi vse

Sub Makro1()
'
    For Each c In Range("A1:D100")
     If Worksheets("List1").Range(c.Address).Value = Worksheets("List2").Range(c.Address).Value Then
        Worksheets("List3").Range(c.Address).Value = Worksheets("List1").Range(c.Address).Value
        Worksheets("List1").Range(c.Address).ClearContents
     End If
    Next c
End Sub
V tej kodi pregleduje A1:D100

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

Odgovor Napisal/-a admin »

:) Res je, tudi tako se da.

Je pa to počasnejše, ker mora vsakič računati indekse iz naslova neke celice (To ni kritika, samo razlaga; in upam da vas ne bom odvrnil od nadalnje pomoči).

Je pa ClearContents vsekakor veliko boljše kot Value = ""!
lp,
Matjaž Prtenjak
Administrator
Alcatraz_
Prispevkov: 3
Pridružen: Sr Avg 17, 2005 12:23 pm

Odgovor Napisal/-a Alcatraz_ »

hvala obema...
Biasko
Prispevkov: 8
Pridružen: Sr Avg 17, 2005 11:58 am

Odgovor Napisal/-a Biasko »

kaj pa kakšen ukaz VLOOKUP ali kaj takega.

kaj pa recimo da moram posikati podvojene priimke in imam priimek TANTADRUJ na listu1 na listu2 pa TANTADRUG -se pravi da se je nekdo zatipkal , kako bi ugotovil da sta podobna? bral sem o določenih funkcijah samo ne deluje.
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Ne; iskanja "pribljižnih" zadetkov Excel ne omogoča!
lp,
Matjaž Prtenjak
Administrator
DamijanF
Prispevkov: 9
Pridružen: Če Feb 09, 2006 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a DamijanF »

Pozdravljeni,

Lepo lepo, da spet dela ta zelo zelo koristna spletna stran.
Sem jo vmes zelo pogrešal..no sem pač bil prisiljen da sem kakšno stvar sam "odkril" oz. pogruntal.

Sam sem sedaj pred problemom, ko imam dve poročili, vsaka zase imata pomembne podatke v stolpcih, katere bi rad združil in tako dobil samo eno poročilo. Obe poročili imata skupni "imenovalec", po katerem bi lahko združeval, škoda le, da stolpca nimata popolnoma istih podatkov oz. vnosov..no saj potem tudi problema ne bi bilo. :roll:

Sem poskušal z MATCH funkcijo, v kombinaciji z drugimi funkcijami, pa nisem bil zadovoljen..
No, pa sem sedaj naletel na zgoraj napisano formulo, katera je natanko to kar si želim (list1+list2=list3), vendar je ne znam uporabiti oz. mi se ne zažene (formulo sem prilagodil (imena listov) ampak nijente..).
Tud če jo napišem kot function ne dela - no takrat sploh ne, kr niti nimam vnosnih polj potem. Kaj delam narobe? Hvala za odgovor.

P.S.Uporabljam Office 2003 (ang).
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Na žalost, navkljub večkratnemu branju, vašega vprašanja sploh ne razumem.
Poskusite problem opisati še enkrat, pri tem pa upoštevajte, da drugi ne razmišljamo tako kot vi in da morate problem opisati dovolj splošno, da ga lahko razumemo tudi drugi.
lp,
Matjaž Prtenjak
Administrator
DamijanF
Prispevkov: 9
Pridružen: Če Feb 09, 2006 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a DamijanF »

Se opravičujem za nerazumljivo razlaganje.

Najlažje bo na primeru;
list1 ima stolpce A; B;
list2 ima stolpce A; C; D; E

rad pa bi imel
list3 A; B; C; D; E

torej so v stolpcu A vsi enaki podatki (registerske tablice) - torej nekak "ključ". Ampak se ne ujemajo popolnoma- v enem so določene tablice, v drugem ne, in obratno.
Podatkov pa je res ogromno, tako bi rabil zelo dolgo, da iščem registersko v listu1 in potem zraven prekopiram prave stolpce(vrstice) iz lista2.
Tudi s soltiranjem bi trajalo - bi pač vse prilepil na en list, in potem bi pomikal stolpce iz lista 2 navzdol tako da bi dodajal vrstice, da bi se podatki ujemali (LJ XY ; tovorni avto, letnik 95, ...)
če bi jih pa samo združil, pa bi dobil LJ XY; osebni avto, letnik 99, kar pa ni prav.

no...v bistvu sta dve tabeli, ki bi jih bilo potrebno združit..ampak tako, da se bodo podatki ujemali.

Res hvala za tako ažurne odgovore.
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

stvar je dokaj preprosta in vse potrebne rešitve imate že v tem forumu ali v datoteki matjazev_net.chm, ki je ravnotako dosegljiva na mojih straneh. Koraki pa so sledeči:
  1. Oba stolpca A prekopirajte na list3.
  2. Izločite podvojene zapise.
  3. S pomočjo funkcije VLOOKUP iz listov 1 in 2 dpoišite še ostale podatke.
lp,
Matjaž Prtenjak
Administrator
DamijanF
Prispevkov: 9
Pridružen: Če Feb 09, 2006 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a DamijanF »

Hvala za odgovor.

Sicer za "ne avtomatsko delo" sem uporabil MATCH funkcijo v kombinaciji s ISNA in sem potem filitriral tabelo in zraven prilepil drugo.

Se mi je zgoraj navedena formula zdela hitrejša :lol:, ampak je nisem znal uporabit, zato sem tudi pisal.
Odgovori