Tomasz Czarnecki

Tomasz Czarnecki Konstruktor -
technolog, Elmonter
oświetlenie

Temat: Podaj pozycję

Witam,
szukam pomocy dla "podaj.pozycję" - mam tabelę, w której mam różne wartości liczbowe, także takie, które występują dwa lub trzy razy i zależy mi by dowiedzieć się na jakiej pozycji są takie same wartości. Numer tej pozycji w tabeli chcę wykorzystać później w "indeks" by znaleźć wartość, które jest w komórce "w tabeli na lewo" od wcześniejszej tabeli (kolumn nie mogę przestawić).
Coś w ten deseń:
kolumna 1 | kolumna 2
a | 1
b | 2
c | 3
d | 1

do osobnej komórki chcę przypisać wartość dla drugiej"1" korzystając z "indeks". Jeżeli zrobię samo "podaj.pozycję" to poda mi pozycję pierwszej "1" w kolumnie 2 i tu nie wiem co zrobić by mieć pozycję drugiej "1".
Czy może mi ktoś coś poradzić?


Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Podaj pozycję

Ta formuła nie podaje więcej niż pierwszą znalezioną.
Generalnie to standard. Aby to obejść musisz napisać formułę tablicową, podając nr kolejnej szukanej (np 3ci dubel jeśli jest), albo wykonać UDFa (czyli VBA wywoływane jako formuła). Innym modelem to wykonanie tabeli przestawnej, gdzie kolejno wy-listujesz liczby a dla dalej literki przypadające dla tej liczby (ale to już rzeźba).

Jeśli chcesz gotowe i uniwersalne narzędzie to polecam taki dodatek:

Obrazek

Na bazie przedstawionych danych da on taki efekt:
a, b | 1
b | 2
c | 3
Tomasz Czarnecki

Tomasz Czarnecki Konstruktor -
technolog, Elmonter
oświetlenie

Temat: Podaj pozycję

Dzięki za informacje. Myślałem właśnie o formule tablicowej, przedstawienie w postaci prawda/fałsz czy wartości to przejdę, tylko nie wiem jak wyłowić k-tą taką samą wartość - nie wiem co użyć. Czy mógłbyś coś doradzić? Do VBA na razie nie podchodzę, za wysokie progi.
Artur D.

Artur D. Solution Architect,
Atos IT Services Sp.
z o.o.

Temat: Podaj pozycję

Funkcja aggregate (excel 2010+) powinna sobie z tym poradzić bez problemu

=AGGREGATE(15;3;(1/(B2:B5=C1))*ROW(B2:B5);2)

Dostaniesz dokładny numer wiersza który szukasz
Tomasz Czarnecki

Tomasz Czarnecki Konstruktor -
technolog, Elmonter
oświetlenie

Temat: Podaj pozycję

Dokładnie o to chodziło. Działa. Odjąłem jeszcze numer wiersza startowego oraz "+1" i otrzymałem numer wiersza w tabeli.
Dziękuję bardzo.
Artur D.

Artur D. Solution Architect,
Atos IT Services Sp.
z o.o.

Temat: Podaj pozycję

Trzeba było wykorzystać właściwości row() i dać w formule index() zakres od wiersza 1 - nie trzeba nic dodawać/odejmować. A jak nie, to dodać jeszcze dwie funkcje

=AGGREGATE(15;3;(1/(B2:B5=C1))*ROW(INDIRECT("1:"&ROWS(B2:B5)));2)
Bogdan Gilarski

Bogdan Gilarski www.excelperfect.pl
Perfect And
Practical

Temat: Podaj pozycję

Rozwiązanie (przykładowe) dla posiadaczy wersji <2010, czyli nie mających funkcji AGREGUJ() lub chcących potrenować formuły tablicowe :)
=MIN.K(JEŻELI(B2:B5=B2;WIERSZ(B2:B5);"");2)

Formuła tablicowa, zatwierdzamy Ctrl+Shift+Enter,
Ostatnie 2 - to kolejne (tutaj 2=drugie) wystąpienie wartości szukanej z B2
Tomasz Czarnecki

Tomasz Czarnecki Konstruktor -
technolog, Elmonter
oświetlenie

Temat: Podaj pozycję

Artur D.:
Funkcja aggregate (excel 2010+) powinna sobie z tym poradzić bez problemu

=AGGREGATE(15;3;(1/(B2:B5=C1))*ROW(B2:B5);2)

Dostaniesz dokładny numer wiersza który szukasz

Sprawdziłem i działa.
Dzięki za pomoc
Tomasz Czarnecki

Tomasz Czarnecki Konstruktor -
technolog, Elmonter
oświetlenie

Temat: Podaj pozycję

Bogdan G.:
Rozwiązanie (przykładowe) dla posiadaczy wersji <2010, czyli
> nie mających funkcji AGREGUJ() lub chcących potrenować formuły
tablicowe :)
=MIN.K(JEŻELI(B2:B5=B2;WIERSZ(B2:B5);"");2)

Formuła tablicowa, zatwierdzamy Ctrl+Shift+Enter,
Ostatnie 2 - to kolejne (tutaj 2=drugie) wystąpienie wartości szukanej z B2

Dzięki za pomoc.
Przydatna formuła.



Wyślij zaproszenie do