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

Lista rozwijana - zaciąganie danych

06 Lut 2011 22:43 3179 10
  • Poziom 9  
    Witam serdecznie

    Jestem początkującym użytkownikiem arkusza kalkulacyjnego, czy mógłbym prosić o pomoc i poprawę arkusza.

    Problem wygląda następująco:

    Jakiej użyć funkcji, aby po wybraniu konkretnego numeru z rozwijanej listy, podstawiały mi się konkretne dla danego numeru dane z tablicy o zakresie L2:O6 (z pominięciem pustych komórek), czyli dla nr 1 z listy podstawiałoby się - WARIANT I, dla nr 2 z listy podstawiałoby się - WARIANT II, natomiast po wybraniu z listy nr 3 podstawiałby się - WYNIK III.

    Próbowałem użyć funkcji "indeks" oraz "jeżeli" jednakże nie mogę sobie z tym poradzić, arkusz w pliku załącznika.

    Z góry dziękuję za wszelką pomoc bądź sugestie.
    pozdrawiam
    Robert
    Darmowe szkolenie: Ethernet w przemyśle dziś i jutro. Zarejestruj się za darmo.
  • Poziom 16  
    Czy jest Ci wszystko jedno jak by to było zrobione technicznie?
    Bo można by użyć wyszukaj pionowo (w zależności od wybranej opcji zwracałoby numer i dla numeru dane. Ale myślę, że to trochę lamerski ;) sposób.

    -----------

    Imię byś wówczas uzyskał dając =WYSZUKAJ.PIONOWO($C$14;$K$1:$P$6;2;PRAWDA)
    Minus taki, że będzie Ci pokazywał też te puste, druga sprawa u mnie c14 to ta wartość zwrócona z listy
  • Poziom 9  
    Witam

    Z góry dziękuję za odpowiedź, jednakże chodzi mi o to aby pomijać puste komórki, tak jak w przykładzie. Może jakieś inne rozwiązanie.
    pozdrawiam

    Robert
  • Moderator Programowanie
    Np w B11 wpisz
    Code:
    =JEŻELI(INDEKS(P2:P6;B2)=0;"";P1)
    a C11
    Code:
    =JEŻELI(B18="";"";INDEKS(P2:P6;B2))
    Zobacz efekt i wg tego wzoru poukładaj formuły dla pozostałych kolumn.
  • Poziom 40  
    Niestety same funkcje excela nie potrafią pominąć pustych, chyba że dla 1 wersji jest stale cztery zawsze te same dane [imię, nazwisko, nosi buty, lubi jabłka] czyli nigdy nie pojawi się wzrost, dla drugiej dwie dane: imię i wzrost. a dla trzeciej zawsze imię, nazwisko, wzrost (bez reszty).

    Jeżeli jednak dane mogą być różne np w wersji 1 pojawi się od czasu do czasu wzrost i ma być pokazywany to "zwykłymi" funkcjami tego nie załatwisz. Potrzebne jest makro i nie wiem czy cię to satysfakcjonuje.

    dodane po chwili

    --------------------------------
    Ta sama minuta dodania postu :)

    Pozwolę sobie skorygować niewielki błąd :) :
    w C11 jak już powinno być:
    =JEŻELI(B11="";"";INDEKS(P2:P6;B2))

    Niemniej jezeli nie będzie danych to tak jak wspomniałem wyżej bąda puste miejsca w tych komórkach.
  • Poziom 16  
    Myślę, że trzeba by było użyć makra a ja cińki z robienia makr jestem powiedz czy chodzi Ci jeszcze by dowolny rozmiar był tej tabeli z danymi czy tylko taki mały będzie.
    Ostatecznie można by proste makro było zrobić na zasadzie takiej by pobierało dane jak wyżej, następnie sortowało, usuwało dane zbędne (z pustymi rekordami, i ponownie układało.
    Ale myślę że ktoś może zna się na makrach to bardziej uniwersalne Ci coś poradzi.

    //sorki nie miałem strony odświeżonej i nie widziałem tych wpisów powyżej
  • Moderator Programowanie
    Dajcie autorowi dokończyć chociaż kolumny pomocnicze :)

    Lista rozwijana - zaciąganie danych

    Lista rozwijana - zaciąganie danych
  • Poziom 40  
    Odgrzebałeś inny (tylko na pozór podobny) topik:
    Cytat:
    Witam serdecznie

    Czy można zrobić tak, jeżeli w jakimś polu jest "0" to "ścięśnia w pionie" komórki.
    przykład:

    Tabela:
    a1 Windows98
    a2 0
    a3 Windows XP
    a4 0
    a5 0
    a6 Windows Serwer

    Wynik:
    a1 Windows98
    a3 Windows XP
    a6 Windows Serwer

    Z góry dziękuję za odpowiedź.
    Robert


    Ale podsunąłeś mi tym myśl by wykorzystać max() i kolejność (wybór danych) [myślę że kolega adamas_nt wie o co chodzi i jeżeli ma czas to zasugeruje przykład bo ja teraz uciekam i jeżeli juz to moze będe na forum dopiero o 21.00]

    Pytanie czy moga być kolumny pomocnicze (mogą być ukryte)?

    dodane po chwili
    ale się spieszymy z pomocą :)
    :) No i kolega adamas_nt już wykorzystał ten pomysł :)
  • Poziom 9  
    A czy można byłoby podejść do sprawy tak: jeżeli w danej komórce jest 1 (lub "TAK" lub "Prawda") to wyświetla nazwę kolumny/kolumn dla danego IMIENIA z rozwijanej listy, wówczas wynik np. dla Roberta z listy rozwijanej wyglądałby następująco:

    windows 98
    windows xp
    windows 2000

    a dla np. Ali tak:

    windows98
    windows vista

    plik w załączeniu, pozdrawiam
    Robert
  • Moderator Programowanie
    Do sprawy należy podejść w ten sam sposób, jak opisano już wyżej. Spróbuj, pisanie funkcji nie grozi niczym niedobrym. Jeśli coś pójdzie nie po Twojej myśli pisz, postaramy się pomóc...
  • Poziom 40  
    Jak sam napisałeś dopiero się uczysz i prosisz o poprawę arkusza a tu nie ma co poprawiać bo nic nie zrobiłeś by wymagało poprawy - na razie wszystko robisz dobrze.
    Tak jak wspomniałem wyżej nie ma funkcji w excelu która z "automatu" zlikwiduje puste komórki. Tu trzeba trochę "sprytu" i obycia z funkcjami. Jednak nie nauczysz się tego gdy sam nie spróbujesz.
    Zrób to krok po kroku (my będziemy "patrzeć" i jak się będziesz przewracać będziemy podnosić :) jak z dzieckiem :) )

    Zrób na razie tak jak radzi kolega adamas_nt. Za pomocą funkcji indeks uzależnij całą tabelkę od danego wyboru w liście (na razie z pustymi miejscami jeżeli niema 1 czy "prawda") będzie to tzw tabela pomocnicza - docelowo będzie można ją ukryć. (Funkcje i przykład ci podał adamas_nt [tylko w drugiej zamiast B18 powinno być B11]

    Jeżeli to zrobisz spróbuj dalej, jeżeli staniesz na tym kroku zamieść plik z próbami - będziemy podnosić.

    Następny krok wymaga sprytu ale może ci się uda. :)
    Trzeba będzie za pomocą wykorzystania funkcji jeżeli() i max() +1 określić kolejność wyników w stworzonej przez ciebie wyżej tabeli pomocniczej. Czyli jeżeli będzie dana ma ją ponumerować - docelowo w kolejności rosnącej [max wcześniejszych +1]. Jak nie dasz rady to spójrz dokładnie na fotę adamasa. W polu wpisywania funkcji pokazał ci zapis jak powinna być skonfigurowana taka funkcja.

    Znów jeżeli ci się uda przejdź dalej, jak nie to załącz plik będziemy "podnosić" i prostować rozumowanie.

    I ostatni krok to wyszukaj.pionowo() lub podaj.pozycję() według kolejności. Tak pozbędziesz sie pustych danych. Przykład też masz w polu wpisywania formuł na zdjęciu zamieszczonym przez adamasa_nt (ja osobiście zamiast sprawdzania wielkości maksymalnej sprawdził bym czy.błąd(Podaj.pozycje()) [i trochę inna konstrukcja Jeżeli]-ale jak to się mówi wszystkie drogi prowadzą do Rzymu)

    Fotki z efektem zamieścił wyżej kolega adamas_nt.
    Masz wszystko jak na dłoni powinieneś sobie poradzić ale ... jak wspomniałem wyżej pisz i załączaj swoją pracę, będziemy "podnosić" :)