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.

Excel - VBA czy formuły, dopasowująca się lista rozwijalna

m_e_l_a 14 Sty 2015 11:38 603 2
  • #1 14 Sty 2015 11:38
    m_e_l_a
    Poziom 2  

    Cześć wszystkim,

    mam problem z sensownych rozpisaniem w xls przydziału zadań do osób ze względu na zbyt dużą liczbę informacji. Do tej pory służyła mi metoda "z palca", ale widzę potrzebę automatyzacji. Mam 2 cele:

    1. chcę, żeby po wyborze usługi lista rozwijalna z danymi osób w kolumnie B zawężała się do tych, którzy daną usługę mogą-chcą wykonywać (np. SEP, pracę na wysokości)
    2. Chcę żeby po wzięciu po uwagę wszystkich danych stawka naliczała się automatycznie w kolumnie D

    Co do pt 1 - niestety nie mam pomysłu, nie znam również makr

    Co do pt 2 - problemem jest dla mnie ilość warunków - muszę wziąć tutaj pod uwagę 3 warunki (usługa, typ usługi, stawka) i nie wiem jak to połączyć.

    Do tej pory INDEKS, SZUKAJPIONOWO i formuły tablicowe się nie sprawdziły - pomożecie?

    PS - jeśli jest konieczność przebudowy pliku, jest taka możliwość, chce żeby plik służył mi już przez kilka lat.

    Dzięki z góry!

    0 2
  • Pomocny post
    #2 14 Sty 2015 14:48
    marek003
    Poziom 40  

    :) Jak mogły Ci się nie sprawdzić INDEKS, SZUKAJ.PIONOWO ? (tablicowych nie potrzeba)
    Wykorzystaj np. poprawność danych z listą.
    I stwórz własną nazwę z wykorzystaniem PRZESUNIĘCIE() by wybierało ci odpowiednią listę pracowników. A reszta to właśnie indeks, wyszukaj.pionowo poziomo i podaj pozycję.

    Jeżeli chcesz namacalnego przykładu załącz plik excela a nie fotki (spakuj go zipem)


    -------
    Ty chcesz to prowadzić wiersz za wierszem? - bo to trochę komplikuje zawężenie listy pracowników.


    edit2
    ------------------------
    Przed chwilą sprawdziłem ciekawostkę by to działało tak jak chcesz i sam się dziwie że to ruszyło :) Nigdy z tego nie korzystałem - Chodzi mi o zapis w poprawności danych przy wyborze lista np.:
    =JEŻELI(F5="a";Lista1;Lista2)
    Człowiek uczy się całe życie. :)

    Dodałem mały przykład z 4 listami (Zeszyt1) .
    W tym przypadku w poprawności danych jest funkcja Wybierz() dlatego dla prostoty dodałem pole kod (można je ukryć).

    edit3
    ----------------------
    Pobawiłem się jeszcze i w Zeszyt2 masz opcję różnych list w zależności od wyboru pracy wyłącznie poprzez poprawność danych czyli(co najważniejsze) bez dodatkowych deklaracji list i wyliczania kodu pracy.
    Po prostu excel sam sugeruje nowe nazwiska nawet jak powiększysz (w dół) listę rodzajów pracy (oczywiście to nie muszą być litery) bez konieczności robienia nowej listy.

    edit4
    ----------------------
    Nudziło mi się, a i dawno się nie bawiłem, więc ... znaj moją dobroć. :)
    Poniżej gotowe rozwiązanie z "obliczeniami" kwoty ( spakowany Zeszyt3).
    Jest jednak zasada, że każda usługa ma trzy typy ustawione rosnąco (słownikowo) - jak w przykładzie. (Jeżeli miało by być inaczej trzeba będzie korzystać z kolumny pomocniczej łączącej [&] nazwę usługi i typ).


    Ponieważ excel poniżej 2007 nie przewiduje sprawdzania poprawności przewidzianego na innym arkuszu przykład jest dla E2007 i wyżej (w E2003 i niżej przy listach w innym arkuszu trzeba wrócić do definicji nazw własnych (zeszyt1) wszystko inne będzie działać we wszystkich wersjach)

    1
  • #3 15 Sty 2015 10:48
    m_e_l_a
    Poziom 2  

    Marek003, wchodzę dzisiaj na elektrodę i oczom nie wierzę!
    Dziękuję Ci bardzo!

    Rozwiązanie całkowicie mnie zaskoczyło, bo spodziewałam się tylko podpowiedzi.

    Co do Twoich uwag:
    Wymienione przeze mnie funkcje - nie potrafiłam ich poskładać do "kupy", na 2 warunkach kończyła się moja wiedza.

    Co do Twojego rozwiązania:
    Tak, każda usługa ma na razie tylko 3 opcje (w zależności od poziomu trudności), podpowiedź z kolumna pośrednia pomoże mi ją w przyszłości rozbudować

    Pracuję na Excel 2010 lub 2013 więc opcja jest.

    Co do samej formuły, chciałabym ją dobrze zrozumieć. To dopiero kombinacja PODAJ.POZYCJĘ z INDEKS pozwala określić wartość, a nie tylko położenie.

    Dzięki jeszcze raz za pomoc!

    0
  Szukaj w 5mln produktów