Discussion:
"Podaj pozycję" ale z 2 kolumn
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Bartess
2009-07-30 20:53:11 UTC
Permalink
Witam. W jaki sposób wyszukać pozycję wartości ale w 2 kolumnach?
Podam na przykładzie:
1. kolumna zapiera rodzaj pieczywa, 2. miesiąc.

chleb lipiec
bułka maj
pączek czerwiec
ciastko maj

Czy da się określić numer wiersza, który zawiera połączenie wpisów z 2
kolumn np "bułkamaj"? Na razie poradziłem sobie w ten sposób, że w
jednej kolumnie zastosowałem formułę ZŁACZ.TEKSTY która zawiera tekst
z 1. i 2. kolumny. W ten sposób wszystko gra, ale czy da się to
osiągnąć jakąś formułą bez tworzenia dodatkowej kolumny złącz.teksty?

Pozdrawiam.
Cynio
2009-08-25 09:19:12 UTC
Permalink
stworzyłbym własną funkcję np.:

Function dopasowanie(szuk1 As String, szuk2 As String)
Dim z As Integer
Dim mojarkusz As Worksheet

Set mojarkusz = Worksheets("arkusz1")
z = mojarkusz.Range("A65536").End(xlUp).Row
For i = 1 To z
If mojarkusz.Cells(i, 1).Value = szuk1 And mojarkusz.Cells(i,
2).Value = szuk2 Then
dopasowanie = i
Exit Function
Else
dopasowanie = "brak"
End If
Next i
End Function

Kilka uwag:
- argumenty potrzebne do zadziałania to podanie szuk1 i szuk2,
- funkcja zwróci numer wiersza w którym są pasujące dane,
- jesli takich pasujących wierszy jest więcej, funkcja zwróci numer
pierwszego z nich,
- jesli funkcja nie znajdzie dopasowania zwróci tekst "brak",
- argument szuk1 będzie poszukiwany w kolumnie 1 (czyli A), argument
szuk2 będzie poszukiwany w kolumnie 2 (czyli B)

--
Pozdr.
Cynio
... z Plusa
2009-09-21 11:38:40 UTC
Permalink
Polecam zrobienie tego z użyciem funkcji tablicowych w Excelu -
wpisywane do komórki poprzez <shift>+<enter> - są bardzo szybkie i "od
ręki".

W tym przypadku, przy założeniu, że:
- dane podane przez Bartes są od A1
- dane do wyszukiwania (wzorzec) są wpisywane odpowiednio do A7 i B7
a funkcja wpisana do C7

=PODAJ.POZYCJĘ(A7&B7;$A$1:$A$5&$B$1:$B$5;0)

Po wpisaniu tej funkcji z <shift>+<enter> Excel weźmie całą funkcję w
nawiasy sześcienne {} i będzie działał jak oczekujesz.

Przy okazji kapitalne jest zastosowanie funkcji tablicowych (większość
funkcji excelowych ma swoje odpowiedniki tablicowe) do szybkich
raportów sumującyh/liczących dane jeśli są spełnione warunki cząstkowe
podane w kilku komórkach. Np. jeśli w 3 kolumnie jest wartość/ilość
pieczywa

chleb lipiec 5
bułka maj 6
pączek czerwiec 7
ciastko maj 8
buła czerwiec 9

to wpisując tablicową funkcję w C8 (warunki do wyszukiwania
odpowiednio w A8 i B8)

=SUMA(JEŻELI(LEWY($A$1:$A$5;DŁ($A8))&LEWY($B$1:$B$5;DŁ(B$8))=$A8&B$8;$C
$1:$C$5;0))

będziemy mieli funkcjonalność sumowania warunkowego danych z kolumny C
o własciwościach ($ blokuje zmianę wiersza/kolumny z adresu komórki
przy kopiowaniu formuły do nowej komórki):

- będzie porównywane tylko tyle pierwszych znaków z dnaych do
analizy (kol A i/lub B) ile jest znaków we wzorcu w kom A8 i B8
- jeśli nie wpiszemy nic (np kom A8 pusta, czyli długość tekstu w
A8=0) - Excel nie będzie sprawdzał warunku dla tej kolumny (inaczej
kazdy wiersz z danych do analizy w tej kolumnie będzie pasował do
wzorca).

Czyli np. dla wpisów A8, B8 mamy w C8:

buł <pusty> 15 (suma bułek i buł)
buł maj 6 (tylko bułki z maja)
<pusty> maj 14 (suma wszystkiego z maja tu: bułek i
ciastek)
<pusty> <pusty> 35 (suma całości)

Loading...