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.

MS Excel - jak to zrobić?

telesforz 04 Maj 2010 10:31 8304 11
  • #1 04 Maj 2010 10:31
    telesforz
    Poziom 8  

    jak to zrobić

    są trzy kolumny A.....B.....C D E
    każda kolumna zawiera liczby 1 2 3 min(1) A
    4 3 6 min(3) B


    w kolumnie D do każdego wiersza
    przypisuje funkcje minimum która
    bedzie podawała najmniejsza wartość

    i tu pytanie.jakiej funkcji lub
    jakiego polecenia w vba użyć żeby
    w kolumnie E wyświetlała się nazwa
    kolumny.jest to bardzo ważne dlatego
    że kolumna E posłuży do sortowania

    Dodano po 3 [minuty]:

    A......B.....C.......D.......E
    1 2 3 min(1) A
    4 3 6 min(3) B

    Dodano po 3 [minuty]:

    A......B.....C.......D.......E
    1......2.....3....min(1)...A
    4......3.....6....min(3)...B

    0 11
  • #2 04 Maj 2010 10:47
    452387
    Użytkownik usunął konto  
  • Pomocny post
    #4 04 Maj 2010 11:09
    marek003
    Poziom 40  

    W komórkę pod "nazwa hurtowni" wpisz:

    Code:
    =ADR.POŚR(ADRES(1;PODAJ.POZYCJĘ(G2;C2:E2;0)+2;4;1))

    i przeciągnij w dół.

    A na przyszłość:
    fotki na tym forum inaczej się umieszcza (przycisk dodaj obrazek)
    a jeżeli chodzi o excela lepiej jest zamiescić przykładowy skoroszyt z excela a nie fotkę. Nie trzeba spisywać danych i ułatwia pomoc i ewentualne zrozumienie co autor miał na myśli.

    0
  • #5 04 Maj 2010 11:47
    telesforz
    Poziom 8  

    ogromne dzięki
    czy działa zobaczę za chwile .mam angielski office i teraz muszę znależć
    angielski odpowiednik formuły : adres pośredni i adres,podaj pozycję.
    jeszcze raz ogromne dzięki a do wskazówek się zastosuje
    pozdrawiam

    0
  • #6 04 Maj 2010 12:11
    marek003
    Poziom 40  

    Chyba coś takiego:

    Code:
    =INDIRECT(ADDRESS(1,MATCH(G2,C2:E2,0)+2,4,1))


    ale sprawdź.

    0
  • #7 04 Maj 2010 12:56
    telesforz
    Poziom 8  

    =INDIRECT(ADDRESS(1;MATCH(G2;C2:E2;0)+2;4;1))
    przełożyłem twoją funkcję na angielski ale wywala mi błąd .
    wskazuje na 1 zaraz za nawiasem address
    pierwszy raz z tą funkcją i problem :)))

    Dodano po 3 [minuty]:

    przepraszam ,nawet nie zauważylem ze odpisałeś :)

    jeeeeeeesssssssttttt

    w pierwszym przykładzie użyłeś przecinka z kropką jako separatora
    a w drugim już przecinka
    jeszcze raz ogromne dzieki :)

    Dodano po 2 [minuty]:

    mam jeszcze prośbę .czy mógłbyś wyjaśnić co oznaczają dokładnie
    te wszystkie cyferki :) nie sztuką jest zerżnąć a się nauczyć

    0
  • Pomocny post
    #8 04 Maj 2010 13:27
    marek003
    Poziom 40  

    Przecinek a średnik to właśnie różnica wersji.

    Funkcja podająca pozycję w tabeli

    Code:
    Podaj.pozycję(Szukana wartość ; przeszukiwana tabela; typ porównania 0 lub 1)[
    jak 1/prawda to musi być kolejność rosnąca i zwraca pozycję liczby równej lub o "krok" mniejszej jeżeli 0 fałsz szuka dokładnie tego samego jak szukana wartość jeżeli nie znajdzie wywala błąd.

    Funkcja "tworząca" adres
    Code:
    Adres(numer wiersza; numer kolumny; typ adresu; styl odwołań; nazwa arkusza)

    Pomoc microsoftu:

    Typ_adresu Zwraca odwołanie tego typu
    1 lub jest pominięte Bezwzględne
    2 Bezwzględne wiersza, względne kolumny
    3 Względne wiersza, bezwzględne kolumny
    4 Względne

    Styl odwołania:

    A1 to wartość logiczna określająca styl odwołań A1 lub W1K1. Jeśli a1 przybierze wartość PRAWDA bądź zostanie pominięte, funkcja ADRES poda odwołanie do komórki w stylu A1, jeśli natomiast przybierze wartość FAŁSZ, to funkcja ADRES poda odwołanie do komórki w stylu W1K1.



    Adres pośredni czyli pokaż co jest pod adresem.

    Code:
    Adr.Pośr(tekst adresu,styl odwołania) 

    styl odwołania patrz wyżej.

    Pobaw się oddzielnie tymi funkcjami to łatwiej zrozumiesz.

    Na marginesie zamiast podaj.pozycję można było też wykorzystać funkcje wyszukaj poziomo lub indeks.
    Różne drogi prowadzą do Rzymu. :)

    0
  • #9 04 Maj 2010 16:28
    telesforz
    Poziom 8  

    to może jeszcze to
    chciałbym przeszukać kolumne A zeby sprawdzić czy sa wszystkie kody(z zakresu i11:k16) i żeby w kolumnie M10 pokazało ze jest lub nie.
    ze strony microsoftu pobrałem formułę:
    =IF(ISNA(LOOKUP($I$10:$K$16,$A$2:$E$7,2,0)=PRAWDA; "Nie znaleziono produktu";, LOOKUP(I10:K16,A2:E7,2,0))

    niestety wywala mi komunikat ze formuła ma za duzo argumentów

    MS Excel - jak to zrobić?

    Dodano po 3 [minuty]:

    jak się tutaj załącza plik excela? :)))

    Dodano po 0 [sekundy]:

    jak się tutaj załącza plik excela? :)))

    Dodano po 2 [godziny] 22 [minuty]:

    =IF(VLOOKUP(I14,$A$2:$H$5,1,0),"JEST","NIE MA")
    ta formuła zwraca napis JEST kiedy znajdzie kod kreskowy w kolumnie,ale niestety
    w przypadku kiedy ten kod nie występuje zamiast "NIE MA" zwraca "N/A". osiągnąłerm co chciałem ,wiem który kod występuje w kolumnie a który nie ,ale posługiwanie się błedem nie prowadzi do niczego dobrego. :))

    0
  • Pomocny post
    #10 04 Maj 2010 18:19
    marek003
    Poziom 40  

    Jak najbardziej możesz działać na "błędach"
    Właśnie błąd N/A oznacza brak danej czyli zastosuj funkcję czy.brak i dołącz ją do tego co już stworzyłeś ale w "inwersji" czyli:

    =IF(ISNA(VLOOKUP(I14,$A$2:$H$5,1,0)),"NIE MA","JEST")

    dołaczanie pliku: Przyciśnij odpowiedz ale nie ten z (+2pkt) później poprzez przycisk przeglądaj wskaż plik na dysku, a potem przycisk załącz plik. Jednak wyłącz punkty za plik jeżeli oczekujesz pomocy bo nikt nie będzie "płacił" po to by ci pomóc.
    Ale w twoim przypadku (przynajmniej dla mnie) to nic nie da. Już wersja z fotkami jest lepsza. Ja mam polską wersję i prawdę mówiąc biegle znam polske formuły i ich zastosowanie. Angielskie "odgaduję" poprzez "zapisz makro" i wpisanie do komórki formuły po polsku - w kodzie makra wychodzi po angielsku. :) Trochę uciążliwe ale jak można pomóc i chwilowo ma się czas to czemu nie :)

    Acha jak byś się dokładnie przypatrzył to byś zauważył błędy tej formuły. Na przecinki już dawno wpadłeś a tu wystarczyło przeanalizować jeszcze nawiasy :)

    =IF(ISNA(LOOKUP($I$10:$K$16,$A$2:$E$7,2,0))=PRAWDA, "Nie znaleziono produktu", LOOKUP(I10:K16,A2:E7,2,0))

    To jest to samo co ja ci zaproponowałem z rozbudową "=prawda" - niepotrzebnie bo sama funkcja ISNA() jako wynik zgłasza prawda lub fałsz a to wystarczy funkcji IF - ale jak ktoś chcę pisać to nie zaszkodzi i chyba w starych wersjach excela np 4 trzeba było tak robić. Z kolei ta jeżeli funkcja znajdzie kod to go wyświetli zamiast słowa "jest" a nie zobaczysz N/A (błędu) bo właśnie po to zastosowano IF() (jeżeli)
    Innymi słowy po ludzku czytając tę funkcję:
    Jeżeli będzie błąd N/A czyli brak szukanego produktu w zbiorze napisz "nie znaleziono..." w przeciwnym wypadku znajdź i pokaż ten produkt

    0
  • #11 04 Maj 2010 18:37
    telesforz
    Poziom 8  

    niestety twoja funkcja nie działa poprawnie(i nie wiem dlaczego)wyrzuca komunikat że funkcja ma za dużo argumentów(w fukcjii vlookup zaznacza 0) natomiast ta działa bezbłednie
    =IF(ISERROR(VLOOKUP(I16,$A$2:$H$5,1,0)),"NIE MA","JEST")

    i na marginesie ,o co chodzi z punktami za plik?jestem nowy.a excela uczę się od niedawna
    jeszcze raz ogromne dzięki,z waszą pomocą udało mi się zrobić porównywarkę cen .jeszcze raz ogromne dzięki

    0
  • #12 04 Maj 2010 19:10
    marek003
    Poziom 40  

    W polskiej wersji to działa (excel XP i 2003)

    =JEŻELI(CZY.BRAK(WYSZUKAJ.PIONOWO(I14;$A$2:$H$5;1;0));"brak";"jest")

    A co zwraca samo?
    =VLOOKUP(I14,$A$2:$H$5,1,0)
    a co zwraca
    =ISNA(VLOOKUP(I14,$A$2:$H$5,1,0))
    i ostatnie
    =IF(ISNA(VLOOKUP(I14,$A$2:$H$5,1,0)),"NIE MA","JEST")

    A co jeżeli zamiast 0 wpiszesz fałsz - "FALSE"

    Na tym forum za udzielanie odpowiedzi (za pomoc) innym otrzymujesz punkty które czasami są potrzebne jeżeli chcesz coś pobrać z zasobów forum (plik, schemat itp) lub ktoś ma interesujący cię plik schemat itp ale wycenił go na parę punktów. (spójrz na informację pod moim i twoim nickiem)

    Dodatkowo jeżeli ktoś ci pomoże warto mu za to podziękować klikając przy jego pomocnej wypowiedzi przycisk "pomógł" Otrzymuje on wtedy od forum jeszcze parę punktów, na mejla dostaje gratulację oraz dostaje dodatkowy wpis przy nicku ilu osobom już pomógł. (powyżej 200 pomógł dostaje się bodajże niebieską gwiazdkę)

    Można też w chwili wielkiej wdzięczności komuś podarować punkty jak sie je ma (podaruj punkty) jednak to zdarza się najrzadziej :) gdyż to pobiera twoje punkty a samo przyciśnięcie "pomógł" z reguły w pełni satysfakcjonuje wypowiadającego się. Ofiarowanie można wykorzystać jeżeli nie ty zakładałeś topik (wtedy nie zobaczysz przycisku pomógł) a tobię pomogło i chcesz koniecznie się odwdzięczyć.
    W swoim wątku możesz wciskać pomógł wielu odpowiadającym jeżeli rzeczywiście ci pomogli lub parę razy jednemu (przy kolejnej odpowiedzi) jeżeli pomógł z kolejnym problemem.

    To tyle bo wyjdzie że ci chcę coś zasugerować i jeszcze dostanę ostrzeżenie od moderatora :) .

    0