Strona 1 z 1

Problem z dopasowaniem funcji

: czw sie 02, 2018 3:13 pm
autor: Tomkoo
Dzień dobry,
Do tej pory radziłem sobie na podstawie czytania forum i poradników, ale tym razem nie wiem nawet od której strony się do tego zadania zabrać. Próbuję stworzyć formułę która będzie się opierała na sporej ilości danych i nie wiem jak to zwinąć do prostszej wersji. Mianowicie funkcja =JEŻELI(LUB(A1=B1;A1=B2;...;A1=B10))) działa, ale jest strasznie nieporęczna, a =JEŻELI(LUB(A1=(B1:B10))) całkowicie nie działa. Ma ktoś pomysł co z tym zrobić?

Re: Problem z dopasowaniem funcji

: pt sie 03, 2018 11:54 am
autor: Jan_J
Tomkoo pisze:[...]funkcja =JEŻELI(LUB(A1=B1;A1=B2;...;A1=B10))) działa, ale jest strasznie nieporęczna
Jeżeli jest funkcją z 3 argumentami: jeżeli(warunek; wartość_na_tak; wartość_na_nie), z których tylko pierwszy jest obowiązkowy. Pominięcie trzeciego argumentu jest równoważne z

Kod: Zaznacz cały

jeżeli(warunek; wartość_na_tak; 0)
a pominięcie drugiego i trzeciego jest równoważne z

Kod: Zaznacz cały

jeżeli(warunek; 1; 0)
wskutek czego, o ile tylko testowany warunek przyjmuje zawsze jedną z wartości PRAWDA, FAŁSZ albo 1, 0, to konstrukcję postaci

Kod: Zaznacz cały

jeżeli(warunek)
można zredukować bez utraty znaczenia do

Kod: Zaznacz cały

warunek
Funkcja alternatywy logicznej (LUB) spełnia to założenie, wobec tego zamiast formuły

Kod: Zaznacz cały

=JEŻELI(LUB(A1=B1;A1=B2;...;A1=B10)))
prościej będzie napisać

Kod: Zaznacz cały

=LUB(A1=B1;A1=B2;...;A1=B10))
, a =JEŻELI(LUB(A1=(B1:B10))) całkowicie nie działa. Ma ktoś pomysł co z tym zrobić?
Co z tym zrobić? to zależy od celu, jakie chcemy osiągnąć, a który nie został jawnie wyrażony...

Sądzę, że chodzi o odpowiedź na pytanie: czy w obszarze B1:B10 znajduje się choćby jedna komórka o wartości takiej jak A1?
Formuła

Kod: Zaznacz cały

=LUB(A1=(B1:B10))
to właśnie sprawdza. Tylko że używa ona tzw. składni wektorowej, a to znaczy, że musisz ją zatwierdzać przez <Ctrl+Shift+Enter>, i że nie da się jej powielać przez przeciąganie (choć da się przez kopiuj/wklej).

Inna, nie wektorowa możliwość, to pytanie postaci: czy w obszarze B1:B10 liczba komórek o wartości takiej, jak A1, jest dodatnia? czyli

Kod: Zaznacz cały

=LICZ.JEŻELI(B1:B10;A1)>0
choć tu trzeba uważać na przełączalne opcje dotyczące kryteriów wyszukiwania oraz użycie różnego rodzaju wyrażeń regularnych.

W obu przypadkach chodzi o problemy decyzyjne (TAK/NIE), których wynik jest sformułowany w zwartej postaci warunku. Wobec tego użycie funkcji warunkowej (JEŻELI) jest zbędne.

Re: Problem z dopasowaniem funcji

: pn sie 06, 2018 9:08 am
autor: Tomkoo
Dziekuję Ci Jan_J za odpowiedź. Nieco rozjaśniła mi temat, jednakże nadal nie rozwiązałem tego problemu.
Potrzebuję żeby formuła wykonała takie zadanie:
-Jeżeli komórka A1 jest taka sama jak obszar B1:B10 to wyświetl "Tak"
-Jeżeli komórka A1 jest taka sama jak obszar B11:B20 to wyświetl "Nie"
-Jeżeli komórka A1 jest taka sama jak obszar B21:B30 to wyświetl "Może"
Trochę sobie pokombinowałem (bez tworzenia całej formuły) i dzieje się tak:

Wyrzuca mi prawda i fałsz, czyli jest ok ale to nie to co potrzebuje

Kod: Zaznacz cały

{=LUB(A1=(B1:B10))}
Ta funkcja tak nie działa, prawda?

Kod: Zaznacz cały

{=LUB(A1=(B1:B10);"TAK";"NIE")}
Działa już mniej więcej tak jak powinno, ale kopiuje się od razu na 10 wierszy

Kod: Zaznacz cały

{=JEŻELI(A1=(B1:B10);"TAK";"NIE")}
Daje to mniej więcej taki efekt, a potrzebuję, żeby działało tylko w komórce C1

Kod: Zaznacz cały

2	1	Nie 
	2	Tak
	3	Nie 

Re: Problem z dopasowaniem funcji

: śr sie 08, 2018 2:42 pm
autor: Jermor
Jeśli jest tak jak to napisałeś, że odpowiedź zależy od tego czy wartość znajduje się w komórkach od 1 do 10, od 11-do 20 lub od 21 do 30 to skorzystaj z kombinacji funkcji WYBIERZ, ZNAJDŹ.POZYCJĘ i LICZBA.CAŁK:

Kod: Zaznacz cały

=WYBIERZ(LICZBA.CAŁK((PODAJ.POZYCJĘ(A1;B1:B30;0)-1)/10)+1;"Tak";"Nie";"Może")
Przy założeniu, że wartość w A1 zawsze znajduje się gdzieś w tablicy B1:B30 i wartości w tablicy nie powtarzają się. Gdyby jej nie było pojawi się #N/D.