Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA Excel - obliczanie wartości z kilku arkuszy

dj_rey 06 Mar 2016 23:41 1041 10
  • #1 06 Mar 2016 23:41
    dj_rey
    Poziom 4  

    Byłbym wdzieczny za zrobienie makra dla wyliczania wartości dla arkusza total
    Poniżej opis co ma wyliczać:

    Kolumna H i T
    przykład dla komórki H4
    w komórkce H4 do której przypisany jest kod z komórek F4, G4 (050) ma zliczać ilość wierszy z arkusza abc przy których w kolumnie A znajduje się kod 050 i w kolumnie F jest symbol BA
    otrzymana wartość powinna zostać pomniejszona o wartość z kolumny B przy której znajduje się ten sam kod (050) w kolumnie A
    w zakładce total. Jeśli wartość jest ujemna to powinno zamieniać ją na 0
    czyli w arkuszu abc jest 6 wierszy które mają kod 050 w kolumnie A i symbol BA w kolumnie F
    otrzymana wartość powinna zostać pomniejszona o wartość z komórki B10 (3) i w total powinno wyjśc nam 3

    przykład dla komórki T4 (dwa kody 901 i 501)
    w komórkce T4 do której przypisane są dwa kod z komórek R4, S4 (901 i 501) ma zliczać ilość wierszy
    z arkusza abc przy których w kolumnie A znajduje się kod 901 i 501 i w kolumnie F jest symbol BA
    otrzymana wartość powinna zostać pomniejszona o wartość z kolumny B przy której znajdują się ten sam kody (901 i 501) w kolumnie A
    w arkuszu total
    czyli w arkuszu abc jest 5 wierszy dla kodu 901 i 6 wierszy dla kod 501 w kolumnie A i symbolem BA w kolumnie F
    otrzymana wartość powinna zostać pomniejszona o wartość z kolumny B z przypisanymi kodami z kolumny A
    czyli w tym przypadku z komórki B1 (wartość 1) i w powinno nam wyjść 5+6-1=10

    Kolumna J i V
    przykład dla komórki J4
    w komórkce J4 do której przypisany jest kod z komórek F4, G4 (050) ma zliczać ilość wierszy
    z arkusza xyz spełniających wszystkie warunki, przy których w kolumnie A znajduje się kod 050, w kolumnie F jest symbol BA,
    w kolumnie D jest liczba 300 lub 301 i w kolumnie E pierwsze trzy cyfry numeru to 450 lub 451 lub 550
    Dla kodu 0502 wiersze spełniające wszystkie warunki i taka wartość powinna znajdować się w komórce J4





    dla kolumny V odpowiadają kody z kolumn R, S

    Kolumna K i W
    przykład dla komórki K5
    w komórkce K5 do której przypisany jest kod z komórek F5, G5 (202) ma zliczać ilość wierszy
    z arkusza xyz spełniających wszystkie warunki, przy których w kolumnie A znajduje się kod 202, w kolumnie F jest symbol BA,
    w kolumnie D jest liczba 200 i w kolumnie E pierwsze trzy cyfry numeru to 250 lub 260
    Dla kodu 202 jest 1 wiersz spełniający wszystkie warunki i taka wartość powinna znajdować się w komórce K5

    dla kolumny W odpowiadają kody z kolumn R, S

    Kolumna I i U
    przykład dla komórki U4
    w komórkce U4 do której przypisane są kody z komórek R4, S4 (901 i 501) ma zliczać ilość wierszy
    z arkusza xyz przy których w kolumnie A znajduje się kod 901 i 501 i w kolumnie F jest symbol BA
    oraz pomniejszona o wartości z komórek V4 i W4
    czyli w arkuszu xyz jest 7 wierszy dla kodu 901 i 8 wierszy dla kodu 501 z kolumny A i symbolu BA z kolumny F otrzymana wartość (15) ma być pomniejszona o wartości z komórek V4 (3) i W4 (2). Suma jaką powinniśmy otrzymać to 10
    Otrzymana wartość (10) powinna zostać dodatkowo pomniejszona o wartość z kolumny C i D przy której znajdują się te same kody (901 i 501) w kolumnie A w arkuszu total
    czyli wartość z kolumny C i D przy której znajduje się ten sam kod (901 i 501) w kolumnie A (w tym przypadku w komórce C1 jest wartość 1) czyli total w komórce U4 powinien wynieść 9
    7+8-3-2-1=9

    WAŻNE
    Total wierszy w arkuszu xyz dla danego kodu to suma wierszy kolumn I, J, K oraz odpowiednio U, V, W
    Jeżeli wartość z kolumny C i D dla danego kodu jest większa niż wartość w kolumnie U (wyjdzie nam w tych kolumnach minus) to wtedy wartość z kolumn U należy zamianić na 0 i odjac brakujacą ilość z kolumny V, a jeśli tam także wyjdzie minus to zamieniamy na 0 i odejmujemy z kolumny W- jeśli wyjdzie minus to zamianiamy na 0
    To samo dotychy wartości z kolumn I, J, K

    dla kolumny I odpowiadają kody sklepów z kolumn F, G

    0 10
  • Pomocny post
    #2 07 Mar 2016 07:07
    JRV
    Specjalista - VBA, Excel

    dj_rey napisał:
    zrobienie makra dla wyliczania wartości

    Dlaczego nie dobry formuly(funkcji)?
    np. dla H4 =LICZ.WARUNKI(abc!A:A;F4;abc!F:F;"BA")+LICZ.WARUNKI(abc!A:A;G4;abc!F:F;"BA")-SUMA.JEŻELI(A:A;G4;B:B)

    0
  • #3 07 Mar 2016 14:17
    kinggustav
    Poziom 20  

    No nie wiem czy ta strona wystarczy. :-)
    Nie wiem czy ktokolwiek znajdzie aż tyle czasu żeby napisać makro, którego opis zajmuje prawie 2 ekrany. Nawet dla ambitnych to słaby temat, bo nic ambitnego w tym makrze raczej nie będzie. Zwykła nudna i żmudna robota. :-)

    0
  • #4 07 Mar 2016 14:28
    JRV
    Specjalista - VBA, Excel

    kinggustav napisał:
    czy ktokolwiek znajdzie aż tyle czasu

    Gdyby było jakieś piwo, być może można... :)

    0
  • #5 07 Mar 2016 18:38
    dj_rey
    Poziom 4  

    więc jak by to mogło wyglądać dla kolejnych kolumn używając formuł ?

    0
  • Pomocny post
    #6 07 Mar 2016 19:58
    JRV
    Specjalista - VBA, Excel

    np. T4 =LICZ.WARUNKI(abc!$A:$A;R4;abc!$F:$F;"BA")+LICZ.WARUNKI(abc!$A:$A;S4;abc!$F:$F;"BA")-SUMA.JEŻELI($A:$A;S4;$B:$B)-SUMA.JEŻELI($A:$A;R4;$B:$B)

    0
  • #7 08 Mar 2016 15:55
    dj_rey
    Poziom 4  

    dałbyś radę zrobić formuły do pozostałych kolumn ?
    mógłbyś przerobić powyższą formułę, aby w przypadku wyniku ujemnego zaminiało go na 0 ?

    0
  • #8 08 Mar 2016 16:15
    JRV
    Specjalista - VBA, Excel

    dj_rey napisał:
    zrobić formuły do pozostałych kolumn
    Za tu ilość danych Excel wyraźnie spowalnia pracę. Może lepiej byłoby makro. W każdym razie to jest nie 10...20 minut pracy. Chyba że jeśli nie jestem zajęty czymś.
    Może to wziąć ktoś z rodaków, piwo bliżej :)

    0
  • #9 08 Mar 2016 16:26
    dj_rey
    Poziom 4  

    Czemu po wprowadzeniu formuły, po ponownym klinięciu na komórkę z formułą i zatwierdzeniu enterem samo zmienia formatowanie na tekstowe i formuła przestaje działać ?

    0
  • #10 08 Mar 2016 20:03
    JRV
    Specjalista - VBA, Excel

    nie wiem, to po raz pierwszy widzę
    wielokrotnie zmienilem format na ogólne, F2 - Enter - z powrotem jest tekstowy format

    Dodano po 3 [godziny] 28 [minuty]:

    JRV napisał:
    otrzymana wartość powinna zostać pomniejszona o wartość z kolumny B z przypisanymi kodami z kolumny A
    czyli w tym przypadku z komórki B1 (wartość 1) i w powinno nam wyjść 5+6-1=10

    Cos tu nie gra, mam okulary, ale w 'total' B1 nie widze nic, 1 jest w C1

    0
  • #11 14 Mar 2016 10:24
    dj_rey
    Poziom 4  

    Poprawione

    W załączniku gotowy plik i brakuje już tylko makra dla kolumn I oraz U, gdyż formułami się tego nie zrobi.
    Będę wdieczny za pomoc

    0
  Szukaj w 5mln produktów