Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

VBA - Pobieranie danych z pliku do pliku na podstawie indeksu

18 Jul 2012 10:59 1765 3
  • Level 10  
    Witam,

    Mam mały problem do rozwiązania i wydaje mi się, że możecie pomóc w jakiś sposób.
    Problem można rozwiązać za pomocą makra lub wydaje mi się, za pomocą formuły.

    Otóż.

    Mam 2 pliki: plan i plan2.

    W pliku plan znajdują się kolumny:

    Indeks -> C
    Potrzeba -> G
    Realizacja -> BY

    W pliku plan znajduje się wiele arkuszy i tam gdzie arkusz nazywa się AL 01 to tylko taki bierzemy pod uwagę.

    W pliku "plik 2" mamy również kolumny:
    Indeks ->AL
    Potrzeba ->AD
    Realizacja ->AE

    I teraz na podstawie indeksu pobieramy dane z pliku "plan" do pliku "plan2". Dane dotyczące tych dwóch kolumn "Potrzeba" i "Realizacja". Tablicę w pliku "plan" trzeba zdefiniować na stałe w rozmiarze: C3-BY245 ponieważ potem występują jeszcze inne obliczenia i to mogłoby stanowić problem.

    W załączniku dwa pliki prezentujące mniej więcej w czym rzecz.

    Zrobiłem formułę:

    Code:
     =WYSZUKAJ.PIONOWO(AL5;[plan.xlsx]AL 04!$C$3:$G$245;7;0)


    i jest błąd #ADR!
    Chciałbym odnaleźć indeks z komórki AL5 w tablicy, która mieści się w zakresie C3-G245 i wpisać wartość z kolumny G czyli 7 (tam znajduje się wartość, która jest przypisana do danego indeksu. Z formuły wynika, że wszystko powinno być ok. Niestety nie jest:/



    Pozdrawiam i z góry dzięki za pomoc.
  • Level 2  
    Zamiast

    Code:
    =WYSZUKAJ.PIONOWO(AL5;[plan.xlsx]AL 04!$C$3:$G$245;7;0)


    powinno być

    Code:
    =WYSZUKAJ.PIONOWO(AL5;[plan.xlsx]AL 04!$C$3:$G$245;5;0)


    Kolumna G jest piątą kolumną w Twoim zakresie danych.
  • Level 10  
    Mam funkcję:
    Code:
    =SUMA.JEŻELI('[plan.xlsx]AL 04'!$C$3:$C$245;AL5;'[plan.xlsx]AL 04'!$G$3:$G$245)


    Ta funkcja działa poprawnie. Jednak teraz pojawił się problem dodatkowy.

    Otóż w kilku przypadkach jest taka sytuacja, że mam kilka parametrów w tym samym wierszu jednak w innych kolumnach. I teraz zamiast AL5 musiałoby być:

    Jeżeli spełnia albo AL5 albo AM5 albo AN5 to wówczas sumuj i jeżeli np. spełnia w 1,2 lub 3 przypadki to te przypadki powinny się zsumować.
  • Moderator of Programming
    Dodaj dla wszystkich kryteriów: =SUMA.JEŻELI()+SUMA.JEŻELI()+...