Przeszukiwanie wielu kolumn
Przeszukiwanie wielu kolumn
Mam taką zagadkę.
Chcę przeszukać zakres dwóch kolumn, aby pobrać dane z dwóch innych w zależności od konkretnego warunku.
Próbowałem z funkcją WYSZUKAJ.PIONOWO oraz INDEKS i PODAJ.POZYCJĘ. Niestety nie udaje mi się.
Szczegóły w pliku.
Z góry dziękuję za pomoc.
Chcę przeszukać zakres dwóch kolumn, aby pobrać dane z dwóch innych w zależności od konkretnego warunku.
Próbowałem z funkcją WYSZUKAJ.PIONOWO oraz INDEKS i PODAJ.POZYCJĘ. Niestety nie udaje mi się.
Szczegóły w pliku.
Z góry dziękuję za pomoc.
- Załączniki
-
- JedenGosc_2022-09-12.ods
- (17.42 KiB) Pobrany 102 razy
Libre Office 24.8.1.2 / Windows 11
Re: Przeszukiwanie wielu kolumn
Zrób sobie dodatkową kolumnę F z formułą łączącą D i E i ukryj ją. Za pomocą funkcji INDEKS(), dla której wiersz zostanie wyliczony funkcją PODAJ.POZYCJĘ() w tej ukrytej kolumnie, z wykorzystaniem wyrażeń regularnych.
Odsyłam w załączeniu, to co dodałem — pokolorowałem.
Odsyłam w załączeniu, to co dodałem — pokolorowałem.
- Załączniki
-
- JedenGosc_2022-09-12J.ods
- (23.6 KiB) Pobrany 125 razy
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Przeszukiwanie wielu kolumn
Dziękuję Jermor.
Wszystko działa poprawnie.
Tylko (nie wspomniałem o tym wcześniej) nie działa to rozwiązanie w Arkuszach Google. Tak, jakby nie obsługiwały one wyrażeń regularnych. Masz jakiś patent na Google?
Wszystko działa poprawnie.
Tylko (nie wspomniałem o tym wcześniej) nie działa to rozwiązanie w Arkuszach Google. Tak, jakby nie obsługiwały one wyrażeń regularnych. Masz jakiś patent na Google?
Libre Office 24.8.1.2 / Windows 11
Re: Przeszukiwanie wielu kolumn
W arkuszach gogle zadziała formuła macierzowa.
Ogólnie rozwiązanie jest praktycznie takie samo jak zaprezentowane wcześniej przez @Jermora. Istotną zmianą, jest zmajstrowanie jedno kolumnowego zakresu do sprawdzania danego warunku zamiast sprawdzanie go w dwóch kolumnach. Do tego celu wystarczy funkcja JEŻELI, będzie ona działała mniej więcej tak:
JEŻELI jakaś wartość z Kolumny1 = "A" TO WYKORZYSTAJ wartość A, w PRZECIWNYM razie wykorzystaj wartość z Kolumny2. Tak zrobiony zakres będzie przeszukiwanym źródłem danych dla funkcji PODAJ.POZYCJĘ.
Użyta przeze mnie formuła to:
a ponieważ jest to formuła macierzowa należy zatwierdzić ją przez jednoczesne wciśnięcie klawiszy CTRL+SHIFT+ENTER
Ogólnie rozwiązanie jest praktycznie takie samo jak zaprezentowane wcześniej przez @Jermora. Istotną zmianą, jest zmajstrowanie jedno kolumnowego zakresu do sprawdzania danego warunku zamiast sprawdzanie go w dwóch kolumnach. Do tego celu wystarczy funkcja JEŻELI, będzie ona działała mniej więcej tak:
JEŻELI jakaś wartość z Kolumny1 = "A" TO WYKORZYSTAJ wartość A, w PRZECIWNYM razie wykorzystaj wartość z Kolumny2. Tak zrobiony zakres będzie przeszukiwanym źródłem danych dla funkcji PODAJ.POZYCJĘ.
Użyta przeze mnie formuła to:
Kod: Zaznacz cały
= INDEKS($A$1:$B$41;
PODAJ.POZYCJĘ(G1; JEŻELI(D$1:D$41=G1; G1; E$1:E$41); 0))
- Załączniki
-
- JedenGosc_2022-09-12R.ods
- (22.1 KiB) Pobrany 104 razy
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Przeszukiwanie wielu kolumn
Rafkus, dziękuję.
Twoje rozwiązanie działa poprawnie, gdy zaimportowałem Twój plik do Arkusza google.
Jednak po zaimplementowaniu formuł do końcowego pliku, pojawia mi się komunikat #ADR! i "Wynik tablicowy nie został rozszerzony, ponieważ spowodowałoby to nadpisanie danych w (tu nr wiersza i kolumny)"
Wiesz jak to naprawić?
EDIT:
Poradziłem sobie. Przerobiłem A1:B41 na A1:A41 i B1:B41 i dwie formuły wkleiłem do osobnych pól. Działa. Próbowałem coś zdziałąć googlowską funkcją ARRAYCONSTRAIN, ale nie chciało działać.
Twoje rozwiązanie działa poprawnie, gdy zaimportowałem Twój plik do Arkusza google.
Jednak po zaimplementowaniu formuł do końcowego pliku, pojawia mi się komunikat #ADR! i "Wynik tablicowy nie został rozszerzony, ponieważ spowodowałoby to nadpisanie danych w (tu nr wiersza i kolumny)"
Wiesz jak to naprawić?
EDIT:
Poradziłem sobie. Przerobiłem A1:B41 na A1:A41 i B1:B41 i dwie formuły wkleiłem do osobnych pól. Działa. Próbowałem coś zdziałąć googlowską funkcją ARRAYCONSTRAIN, ale nie chciało działać.
Libre Office 24.8.1.2 / Windows 11
Re: Przeszukiwanie wielu kolumn
W Pomocy, w opisie funkcji pisze:
W mojej formule odwołaniem jest pewien zakres danych ($A$1:$B$41 czyli 41wierszy i 2 kolumny), nr Wiersza jest obliczony przy pomocy funkcji PODAJ.POZYCJĘ, natomiast pominąłem podanie nr Kolumny. W ten sposób, wynikiem mojej formuły był jednowierszowy, dwukolumnowy obszar. Podejrzewam, że ten komunikat się pojawił ponieważ w komórce obok miałeś coś wpisane - w mojej próbie wystarczyło wyczyścić sąsiednią komórkę a błąd sam znikł....INDEKS
Funkcja INDEKS zwraca zawartość komórki określonej przez numer wiersza i kolumny lub opcjonalnie przez nazwę zakresu.
Składnia
INDEX(Odwołanie [; Wiersz [; Kolumna [; Range]]])
- Odwołanie jest odwołaniem wprowadzonym bezpośrednio lub przez podanie nazwy zakresu. Jeśli odwołanie składa się z wielu zakresów, odwołanie lub nazwę zakresu należy ująć w nawiasy.
- Wiersz (parametr opcjonalny) oznacza numer wiersza odwołania do zakresu, dla którego należy zwrócić wartość. W przypadku wartości zero (brak określonego wiersza) zwrócone zostaną wszystkie wiersze, do których zostało podane odwołanie.
- Kolumna (parametr opcjonalny) oznacza numer kolumny odwołania do zakresu, dla którego należy zwrócić wartość. W przypadku zera (braku określonej kolumny), zostaną zwrócone wszystkie kolumny, do których istnieje odwołanie.
Aby otrzymać z INDEKSU tylko jedną wartość wystarczyłoby także do podanej formuły dopisać z której kolumny ma pochodzić wynik (1 lub 2) np:
Kod: Zaznacz cały
= INDEKS($A$1:$B$41;
PODAJ.POZYCJĘ(G1; JEŻELI(D$1:D$41=G1; G1; E$1:E$41); 0);
1)
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Przeszukiwanie wielu kolumn
Jest dokładnie tak, jak napisałeś... W życiu bym o tym nie pomyślał
Jeszcze raz dziękuję.
Libre Office 24.8.1.2 / Windows 11