Prepis podatkov s pogojem na določeno mesto

Pomoč pri delu z MS Excelom
Odgovori
zvonem
Prispevkov: 95
Pridružen: Če Sep 29, 2005 10:54 pm

Prepis podatkov s pogojem na določeno mesto

Odgovor Napisal/-a zvonem »

Na "Listu1" imam tabelo v katero vpisujem troje vrst podatkov: Datum, "Podatek A" in "Podatek B". Na "Listu2" imam seznam vseh možnih "Podatkov A", poleg vsakega pa bi rad iz "Lista1" prekopiral samo tisti "Podatek B", ki ustreza "Podatku A" (datum v tem primeru zanemarim).
Primer:
List1 Podatek A Podatek B
Jaka 15

List2 Podatek A Podatek B
Miha
Jaka 15
Neža
Upam, da sem bil kolikor toliko razumljiv.[/b]
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

To vam bo rešila funkcija VLOOKUP, ki sprejme 4 parametre,
  1. Kaj iščete (v vašem primeru A2)
  2. Območje kjer iščete (v vašem primeru List1!B2:C100)
  3. Stolpec iz katerega vrednost želite (stolpec glede na območje), v vašem primeru torej 2
  4. False (tu vnašajte konstatno false (true ima poseben pomen))
Torej v celico B2 na listu 2 vpišete formulo:

Koda: Izberi vse

=VLOOKUP(A2; List1!B2:C100; 2; false)
nekaj o funkciji VLOOKUP si lahko preberete tukaj, zelo veliko tematik s podrobnimi navodili pa imate tudi v forumu. Zgoraj izberite opcijo IŠČI in vpišite VLOOKUP.
lp,
Matjaž Prtenjak
Administrator
zvonem
Prispevkov: 95
Pridružen: Če Sep 29, 2005 10:54 pm

Odgovor Napisal/-a zvonem »

Matjaž, hvala za odgovor. Tabeli sem dodal še stolpec, v katerem sem z "IF" funkcijo določil, da mi ob danem pogoju izpiše 1, oziroma 0, če pogoj ni izpolnjen. Sedaj pa bi rad na List2 prekopiral samo tiste vrstice, ki imajo v tem dodatnem stolpcu 1. Prekopiral bi rad samo vrednosti, brez formul. Hvala že vnaprej.
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Tole pa ne bo šlo s funkcijo VLOOKUP, saj so vse vrednosti enake 1, VLOOKUP pa vedno najde samo eno vrednost (prvo). V vašem primeru vam bolj priporočam razvrščanje po stolpcu z pogojem in ročno kopiranje vseh vrstic, kjer je pogoj 1.
lp,
Matjaž Prtenjak
Administrator
zvonem
Prispevkov: 95
Pridružen: Če Sep 29, 2005 10:54 pm

Odgovor Napisal/-a zvonem »

V tem primeru funkcija VLOOKUP res ne pomaga. Posnel sem macro, ki mi prekopira samo vrednosti treh stolpcev in 31 vrstic, zadnji stolpec (v katerem so samo enke in ničle) razvrsti padajoče (najprej enke, nato ničle), sedaj pa bi rad prekopiral samo zapise z vrednostjo 1 (seveda brez tega dodatnega stolpca). Ko se postavim na prvi zapis in poizkušam najti zadnji zapis (kombinacija tipk: CTRL+END+puščica navzdol), mi kurzor skoči na zadnjo kopirano celico, to je v 31 vrstico, ki pa je vsebinsko prazna. Nekje na tem forumu sem nekoč rešitev že našel (macro), pa se bojim, da je to bilo še pred sesutjem prvega foruma.
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Makro napišite drugače. Na listu1 se sprehodite od prve do zadnje vrstice in če je v kolon E enica potem celice iz te vrstice kopirajte na list2.
lp,
Matjaž Prtenjak
Administrator
zvonem
Prispevkov: 95
Pridružen: Če Sep 29, 2005 10:54 pm

Odgovor Napisal/-a zvonem »

Matjaž - ne gre. Malo premalo izkušenj imam z VBA-jem. Prilagam del kode, ki mi sicer prekopira prvo vrstico, ne pa tudi ostalih. Nekje na začetku je napaka, pa pojma nimam kako bi stvar rešil.

Koda: Izberi vse

' izbira zapisov z vrednostjo 1
    Range("u2").Select
    Dim celica As Integer
    celica = ActiveCell.Offset(1, 0)
    For celica = 1 To 31
        If ActiveCell = 1 Then
            ActiveCell.Offset(0, -5).Select
                Selection.Copy
                ActiveCell.Offset(0, 6).Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
            ActiveCell.Offset(0, -5).Select
                Selection.Copy
                ActiveCell.Offset(0, 6).Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
            ActiveCell.Offset(0, -5).Select
                Selection.Copy
                Range("u2").Offset(0, 6).Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
            ActiveCell.Offset(0, -5).Select
                Selection.Copy
                Range("u2").Offset(0, 6).Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
            ActiveCell.Offset(0, -5).Select
                Selection.Copy
                Range("u2").Offset(0, 6).Select
                ActiveSheet.Paste
                Application.CutCopyMode = False
            ActiveCell.Offset(0, -5).Select
        End If
    Next
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Preden greva na makro... Kaj pa napredni filter? Z naprednim filtrom lahko ustrezne podatke prekopirate na drug list.
lp,
Matjaž Prtenjak
Administrator
zvonem
Prispevkov: 95
Pridružen: Če Sep 29, 2005 10:54 pm

Odgovor Napisal/-a zvonem »

Ravno sem hotel napisati, da mi je problem uspelo rešiti s filtrom. Matjaž, vseeno najlepša hvala.
Odgovori