Marek Zadęcki

Marek Zadęcki pracownik biurowy i
kadrowy

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Prosiłbym o wyjaśnienie czemu w poniższej funkcji wychodzi błąd i jak go wyeliminować:
=WYSZUKAJ.PIONOWO($N$22;Dluz;8;0)


błąd dotyczy zapisu $N$22. W tej komórce mam formułę:
=$N$4&$A22

dzięki której w wyniku otrzymuję np. 119a

Takie (powyżej przedstawione) odwołanie jest mi niezbędne. Zmienna jest zarówno liczba (odzwierciedlająca numer dokumentu) jak i litera, która odpowiada za kolejną fakturę.
Czasem będzie to tylko jedna faktura, więc litera nie będzie konieczna, czasem będzie to jeszcze więcej faktur i wtedy chciałbym wyszukiwać kolejne (tzn. dla ww. przykładu 119b, 119c, 119d itd.)
Czy da się to rowiązać?
Danuta M.

Danuta M. Analityk

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Marek Z.:
Prosiłbym o wyjaśnienie czemu w poniższej funkcji wychodzi błąd i jak go wyeliminować:
=WYSZUKAJ.PIONOWO($N$22;Dluz;8;0)


błąd dotyczy zapisu $N$22. W tej komórce mam formułę:
=$N$4&$A22

dzięki której w wyniku otrzymuję np. 119a

Takie (powyżej przedstawione) odwołanie jest mi niezbędne. Zmienna jest zarówno liczba (odzwierciedlająca numer dokumentu) jak i litera, która odpowiada za kolejną fakturę.
Czasem będzie to tylko jedna faktura, więc litera nie będzie konieczna, czasem będzie to jeszcze więcej faktur i wtedy chciałbym wyszukiwać kolejne (tzn. dla ww. przykładu 119b, 119c, 119d itd.)
Czy da się to rowiązać?

1. Błąd, o którym pisze Pan w temacie oznacza że funkcja nie znalazła szukanej wartości we wskazanym zakresie

2. Konstrukcja funkcji wyszukaj.pionowo wygląda tak: WYSZUKAJ.PIONOWO(szukana_wartość; tabela-tablica;numer indeksu; [PRAWDA/FAŁSZ]) no właśnie czy "Dluz" to tablica, w której funkcja ma szukać?

3. Funkcja wyszukaj.pionowo znajduje pierwszą wartość w tablicy i zwraca wartość znajdującą się w kolejnej kolumnie tablicy (numer kolumny to argument "indeks"). Jeśli chciałby Pan np powypisywać coś z np kolejnych faktur 119a, 119b ,119c to myślę, że najlepiej byłoby napisać makro. ew. coś pokombinować ze złożeniem fragmentu tekstu (FRAGMENT.TEKSTU) albo z użyciem - odwołując się do Pana przykładu - $N$4 - ale to już zależy od konstrukcji konkretnych danych i dokładnie tego, co chciałby Pan uzyskać.Ten post został edytowany przez Autora dnia 12.12.13 o godzinie 18:16
Marek Zadęcki

Marek Zadęcki pracownik biurowy i
kadrowy

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Dziękuję za wyjaśnienie dotyczące funkcji WYSZUKAJ.PIONOWO. Doskonale wiem jak ona działa.
Co do nazwy"Dluz" to zakres komórek=tablica, w której ma być wyszukiwana konkretna faktura.
Jak zauważyliście zarówno numer jak i oznaczenie literowe powtarza się tylko raz
(może to być:
I-sza faktura 119,
1-sza podfaktura 119a,
2-ga podfaktura 119b,
3-cia podfaktura 119c;
II-ga faktura 120,
1, 2-ga podfaktura 120a,
III-cia faktura 121

Nr-y 119, 120, 121 bez problemu otrzymam. Potrzebuję funkcji, która pozwoli mi "wyciągnąć" podfaktury z oznaczeniami "nra", "nrb", "nrc" itd.
Danuta M.

Danuta M. Analityk

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Marek Z.:
Dziękuję za wyjaśnienie dotyczące funkcji WYSZUKAJ.PIONOWO. Doskonale wiem jak ona działa.
Co do nazwy"Dluz" to zakres komórek=tablica, w której ma być wyszukiwana konkretna faktura.
(...)

Co do błędu !/ND - nie widzę dokładnego pliku, więc mogę jedynie domniemywać gdzie może jeszcze tkwić problem - jeśli np wie Pan, że szukana wartość znajduje się w tablicy a funkcja jej nie wyszukuje to należy pamiętać, że argument "szukana_wartość" ww. funkcji będzie szukany tylko w pierwszej kolumnie zakresu a używając operatora & tworzy Pan ciąg tekstowy i należy się upewnić, że w pierwszej kolumnie zakresu, który Pan przeszukuje znajdują się również ciągi tekstowe, nie zawierające żadnych znaków niewidocznych, spacji itp.

Jeżeli ilość liter dopisywanych do numeru podfaktury jest zbiorem kilkuelementowym (np mogą być tylk XXa;xxB,xxC lub xxD) to po prostu w argumencie "szukana wartość" ww. funkcji podstawiałabym kolejno ZŁĄCZ.TEKSTY($N$4;"a"), ZŁĄCZ.TEKSTY($N$4;"b"), ZŁĄCZ.TEKSTY($N$4;"c") - to tyle bez patrzenia na przykładowe dane i konstrukcję pliku oraz tego co w wyniku tych wszystkich działań ma być uzyskane mogę poradzić. Ew. zawsze pozostaje napisać makro.
Damian Zurawski

Damian Zurawski Data Engineer w
Grupie Żywiec

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Podbijam temat bo widzę, że rozwiązania nie było a zderzyłem się z takim samym problemem i nie mam pojęcia gdzie tkwi błąd.

Przedstawię problem dosyć łopatologicznie.

Do kom A1 wpisuję 101101,

do kom B1 = prawy(A1;3),

do kom D1 =WYSZUKAJ.PIONOWO(A1;B1;1;0)

I wyskakuje mi błąd wartości niedostępnej czyli #N/D!

Wynika to z tego, że w przeszukiwanym zakresie jest funkcja? Bo jak wpisze wartość 101 "z palca" to wszystko jest ok. Dziwna sprawa.

Dodam tylko, że ważne jest ułożenie tych wartości właśnie w tej kolejności - w innym przypadku zagnieździłbym sobie wyszukaj.pionowo i problem byłby rozwiązany. Chodzi, o to że przeszukiwany zakres w każdej komórce ma wpisaną funkcję.
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Funkcja działa prawidłowo. Jeżeli A1=101101 i w takiej jednokomórkowej tablicy ma znaleźć wartość B1=101 - to nie znajduje jej i zwraca wartość #N/D!.
Może bardziej przydatna byłaby funkcja:
Szukaj.Tekst
Damian Zurawski

Damian Zurawski Data Engineer w
Grupie Żywiec

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

OMG co ja za głupotę wczoraj napisałem to aż sam dzisiaj nie mogłem uwierzyć. Pewnie z powodu pośpiechu. Jeszcze raz przedstawię sytuację:

A1 = 101

b1 = 101101

c1 = prawy(b1;3)

d1 = wyszukaj.pionowo(a1;c1;1;0)

o, teraz jest ok i tak miało być zapisane wczoraj :)
Aleksandra M.

Aleksandra M. Supply Chain
Manager, APICS

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

A jak należałoby skonstuowac zapytanie, żeby w przypadku niewyszukaniu wartości (bo nie ma jej w zaznaczonym zakresie) komórka pozostawała pusta (zamiast błędu #N/D!)?
Grzegorz C.

Grzegorz C. Specjalista,
Uniwersytet Śląski

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Użyj funkcji JEŻELI.BŁĄD (dla Excela >=2007), dla wcześniejszych wersji trzeba użyć konstrukcji JEŻELI(CZY.BŁĄD( ..
Marzanna Szulta

Marzanna Szulta właściciel, Usługi
Informatyczne
SZULTASET

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Damian Z.:
>

o, teraz jest ok i tak miało być zapisane wczoraj :)

Z punktu widzenia funkcji Wyszukaj.Pionowo - nadal uważam, że nie ma to sensu, ale mniejsza o to.
Wynik działania tej funkcji wskazuje tu błąd dlatego, że wartości w komórce A1i C1 są różne, a nie takie same.
To, co jest w A1 Excel interpretuje jako liczbę, natomiast w C1 - jako wynik działania funkcji tekstowej - jest tekstem.
Wystarczy wstawić na początku komórki A1 apostrof górny (oznaczający, że w komórce jest tekst, nie liczba) i funkcja Wyszukaj.Pionowo wskaże wynik .
Damian D.

Damian D. Koordynator
Sprzedaży w branży
elektroniki
użytkowej

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Grzegorz C.:
Użyj funkcji JEŻELI.BŁĄD (dla Excela >=2007), dla wcześniejszych wersji trzeba użyć konstrukcji JEŻELI(CZY.BŁĄD( ..

Z kolei przy użyciu JEŻELI.BŁĄD w przypadku błędu zwraca wartość PRAWDA, a zamiast PRAWDA chciałbym żeby zwrócił np 1
Danuta M.

Danuta M. Analityk

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Damian D.:
Grzegorz C.:
Użyj funkcji JEŻELI.BŁĄD (dla Excela >=2007), dla wcześniejszych wersji trzeba użyć konstrukcji JEŻELI(CZY.BŁĄD( ..

Z kolei przy użyciu JEŻELI.BŁĄD w przypadku błędu zwraca wartość PRAWDA, a zamiast PRAWDA chciałbym żeby zwrócił np 1

Funkcja Jeżeli.błąd zwraca to, co wpiszesz w argumencie wartość_jeżeli_błąd - por.: https://support.office.com/pl-pl/article/JE%C5%BBELIB%C...
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Kłopotliwy błąd #N/D! w funkcji WYSZUKAJ.PIONOWO

Damian, taki mechanizm za drobne, który użyjesz w różnych przypadkach:


Obrazek


inne dodatki dostępne na VBATools.pl

Następna dyskusja:

Utworzenie funkcji wyszukaj...




Wyślij zaproszenie do