Widzisz wypowiedzi wyszukane dla zapytania: jak działa VLOOKUP
Temat: Excel - bez vbs
kurcze, mam polskiego excela jak rozumiem mid to fragment.tekstu? row? kolumna? moj excel nie rozpoznaje tej funkcji
Angielskie nazwy funkcji można przetłumaczyć na polski posługując się tym zestawieniem: http://excel.republika.pl/bazawiedzy/formuly/slownikfunkcji/angpolslo... Formuły tablicowe zatwierdza się przez Shift+Ctrl+Enter. Badany tekst trzeba wpisać do komórki A1.
Mozesz w dwóch zdaniach powiedziec jak to działa?
Zakres A1:A999 to tablica, złożona z 999 kolejnych komórek. Ubrany w funkcję ROW zwraca kolejne numery 1-999. Postawiając je do funkcji MID, możemy sprawdzić kolejne znaki badanego ciągu, czy nie są równe wybranej literze. Jeśli są, zwracana jest waga tej litery. Na końcu funkcja SUM dodaje wszystkie zwrócone wagi, i tak dla kolejnych liter które mają przypisane wagi.
I jeszcze tak sie zastanawiam - moze moznaby to było jeszcze poszerzyc o wyszukaj.pionowo a tabele znak-wartosc wrzucic w jakims innym miejscu?
Tu już z zakresem A1:A999 zamienionym na nazwany zakres "x". Analogiczny zakres "wagi" w pierwszej kolumnie zawiera litery, a w drugiej odpowiadające im wagi. =SUM(IF(MID(A1;ROW(x);1)="A";VLOOKUP("A";wagi;2;FALSE);0)) +SUM(IF(MID(A1;ROW(x);1)="B";VLOOKUP("B";wagi;2;FALSE);0)) ... +SUM(IF(MID(A1;ROW(x);1)="Z";VLOOKUP("Z";wagi;2;FALSE);0))
Temat: Zamiana funkcji wyszukaj.pionowo na VBA [Excel]
Witaj ponownie!
Nie rozumiem, dlaczego watek rozpoczety na innej grupie przeniosles tutaj ?
Coz. Po prostu chcialem sprawdzic jak czlonkowie innej grupy potrafia rozwiazac moj problem. Ale jak sie okazuje swiat jest maly... Jesli zlamalem jakies zasady, to przepraszam - jestem poczatkujacym grupowiczem.
Jak sam widzisz funkcja Wyszukaj.pionowo nie nadaje sie do twoich celow.
sobie makro, ktore spelni twoje oczekiwania a do tego celu mozna wykorzystac owa funkcje dokonujac w niej niewielkich zmian.
Przyklad rozwiazania:
Sub WyszukajPionowo()
...... End Function
Oczywiscie, kod nalezy jeszcze uzupelnic o czyszczenie obszaru z uprzednio wyszukanych i wpisanych na arkusz danych.
Chodzi Ci o Arkusz2, w ktorym nastepuje wpisanie znalezionych wartosci? Jesli dobrze rozumiem, to mi to nie jest potrzebne (w moim projekcie) - raz szukam i to wystarczy.
Powodzenia Tajan
Teraz mnie zagiales: dokladnie o taka forme mi chodzilo. W Twoim poprzednim rozwiazaniu nalezalo funkcje WyszukajDane (z odpowiednimi parametrami) wklepywac do komorki jako formule tablicowa. Troche to bylo meczace, bo w moim przypadku musialbym mniej wiecej wiedziec ilu wynikow sie spodziewam - i na tyle kolumn skopiowac formule. No i te trzy klawisze. A teraz miodzio, wszystko dziala idealnie. No i latwo sie ja modyfikuje do wlasnych potrzeb. I nie trzeba nic w samym arkuszu robic.
:)
Mam jeszcze 2 prosby: 1. czy mozesz mi wytlumaczyc jak dziala ta funkcja, tzn. wiem co daje w wyniku, ale nie moge dojsc jak ona to robi (na podstawie kodu). 2. czy istnieje mozliwosc wprowadzania formuly tablicowej bezposrednio z poziomu VB. Zwykla funkcje mozna na przyklad tak: Range("F1").Formula = "=VLookup(Arkusz1!A1,Arkusz1!A1:B10,2,0)" Probowalem dopisywac jeszcze klamry, ale to nic nie dawalo: Range("F2").Formula = "{=WyszukajDane(A2;Arkusz3!$A$2:$C$200;2;3)}"
Jeszcze raz za wszystko dziekuje. Masz u mnie piwo. Daj tylko znac jak - VBA chyba tu nie pomoze.
Zbiniek
Temat: Zamiana funkcji wyszukaj.pionowo na VBA [Excel]
prosze:
Sub WyszukajPionowo() Worksheets(2).Range("B1:B10").FormulaR1C1 = _ "=VLOOKUP(Arkusz1!RC[-1],Arkusz1!C[-1]:C,2,FALSE)" End Sub
Formu?a zostanie wpisana do zakresu B1:B10.
Pozdrowienia Zbigniew Lewandowski
Serdecznie dziekuje.
Wlasnie o to szlo. Troszku sie nameczylem, zanim doszedlem jak zmieniac notacje R1C1 na A1 (i odwrotnie). Ale znowu czegos sie nowego nauczylem - a tego nigdy za wiele. Gdzies przeczytalem, ze nie wolno mieszac tych dwoch notacji, ale wszystko dziala!!!
Mam jeszcze dwa pytania: 1. Jak wiadomo funkcja wyszukaj.pionowo (vlookup) podaje tylko pierwsza znaleziona wartosc. Czy da sie to makro przerobic tak, zeby funkcja znajdowala wszystkie odpowiedniki szukanej wartosci i wpisywala je w sasiednich komorkach (np na prawo)? 2. Jesli tak, to czy da sie zrobic to jeszcze tak: Arkusz1 A B C 1 a1 aa 1 a2 aaa 3 b1 bb 4 c1 ccc 4 c2 cc 4 c3 cccc
Arkusz2 A B C D E F G 1 a1 aa a2 aaa 3 b1 bb 4 c1 ccc c2 cc c3 cccc
Tzn. zeby funkcja szukala wszystkie wartosci z kolumny B Arkusza1 (np. dla "4" to "c1", "c2" i "c3") i wpisywala je parami do Arkusza2 (kolumny B i C: "c1" i "ccc", kolumny D i E: "c2" i "cc", kolumny F i G: "c3" i "cccc"). Mam nadzieje, ze zrozumieliscie o co mi chodzi.
Jeszcze raz dziekuje i prosze o wskazowki.
P.S. Dziekuje takze Jackowi za rozwiazanie (jednak niezupelnie o to mi chodzilo).
Pzdr
Zbiniek
Temat: Zamiana funkcji wyszukaj.pionowo na VBA [Excel]
Witam!
| Oczywiscie, kod nalezy jeszcze uzupelnic o czyszczenie obszaru z uprzednio | wyszukanych i wpisanych na arkusz danych.
Chodzi Ci o Arkusz2, w ktorym nastepuje wpisanie znalezionych wartosci? Jesli dobrze rozumiem, to mi to nie jest potrzebne (w moim projekcie) - raz szukam i to wystarczy.
Jezeli jestes pewien, ze to bedzie szukanie jednorazowe, to nie ma sprawy.... Ja jednak nie bylbym taki pewien :-)
1. czy mozesz mi wytlumaczyc jak dziala ta funkcja, tzn. wiem co daje w wyniku, ale nie moge dojsc jak ona to robi (na podstawie kodu).
Sprawa jest prosta ..... Funkcja w petli, za pomoca funkcji arkusza "Podaj.pozycje" wyszukuje pierwsze wystapienie danej wartosci w pierwszej kolumnie obszaru. Jezeli taka wartosc znaleziono, to wartosci z odpowiednich kolumn znalezionego wiersza sa dodawane do tablicy i nastepuje ponowne wyszukiwanie, z tym ze poczatek przeszukiwanego obszaru rozpoczyna sie teraz od wiersza ponizej uprzednio znalezionej wartosci. Jezeli wartosc nie zostanie znaleziona, petla zostaje zakonczona.
2. czy istnieje mozliwosc wprowadzania formuly tablicowej bezposrednio z poziomu VB. Zwykla funkcje mozna na przyklad tak: Range("F1").Formula = "=VLookup(Arkusz1!A1,Arkusz1!A1:B10,2,0)" Probowalem dopisywac jeszcze klamry, ale to nic nie dawalo: Range("F2").Formula = "{=WyszukajDane(A2;Arkusz3!$A$2:$C$200;2;3)}"
W tym przypadku powinno sie uzyc wlasciwosci FormulaArray a nie Formula i notacji RC, wiec powinno byc, np.:
Range("D5:L5").FormulaArray = "=WyszukajDane(RC[-3],Arkusz3!R2C1:R200C3,2,3)"
Tajan
zanotowane.pldoc.pisz.plpdf.pisz.pldsj4cup.htw.pl |