[SOLVED] Kopiowanie tylko wyfiltrowanych Wyników

Użytkowanie arkusza kalkulacyjnego
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

[SOLVED] Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Witam, czy istnieje możliwość żeby przekopiować "tylko" wyfiltrowane wyniki z kolumny za pomocą funkcji, formuły, makra?
W arkuszu zaznaczam kolumny A i B które są nierozerwalnie ze sobą powiązane i daje filtr z zaznaczonym "bez duplikatów", wynik tego chciałbym aby znalazł się w drugim arkuszu "z automatu".
Przykład:

Kolumna A | Kolumna B
1 A
1 A
1 A
2 B
2 B
2 B
2 B

filtruje tylko te które mają B
Kolumna A | Kolumna B
2 B
2 B
2 B
2 B

Zawartość wyfiltrowanej kolumny B chciałbym skopiować do osobnego arkusza ( może być z braku laku po przecinku ).

Głowie się i głowię...
Ostatnio zmieniony pt kwie 26, 2024 9:45 am przez Altaro, łącznie zmieniany 1 raz.
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

W okienku dialogowym filtru standardowego rozwiń przycisk "Więcej opcji", zaznacz pozycję "Kopiuj wyniki do" i wskaż miejsce docelowe, wystarczy jedna komórka.
AOO 4.1.15, LO 7.5.9 (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.
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Jeszcze taka uwaga. Jeśli realizujesz to zadanie często, bo dane źródłowe się zmieniają, to możesz postąpić następująco:
  • Danym źródłowym nadaj nazwę, lecz nie w tradycyjny sposób, ale poleceniem "Dane -> Określ zakres".
  • Wszystkie nowe wiersze źródłowe wstawiaj do wnętrza nazwanego obszaru.
  • Jeżeli w opcjach Calca masz włączone "Rozszerz odwołania przy wstawianiu nowych kolumn/wierszy" (Narzędzia -> Opcje -> OpenOffice Calc -> Ogólne), to jeśli po ostatnim wierszu danych źródłowych, na pustym wierszu użyjesz polecenia "wstaw wiersz" (lub zaznaczysz więcej wierszy), to zostanie on (zostaną one) automatycznie dodany do zakresu.
  • Teraz utwórz filtr standardowy lub zaawansowany i upewnij się, że jest zaznaczona opcja "Zachowaj reguły filtru".
  • Zatwierdź działanie filtru.
Od teraz, gdy zmienią ci się dane źródłowe, wystarczy, abyś kliknął gdziekolwiek w ich obszar, a następnie wybrał polecenie "Dane -> Odśwież zakres", nowe dane zostaną odfiltrowane, przy czym jeśli byłoby ich mniej niż tych z poprzedniego filtrowania, to niepotrzebne wyniki zostaną usunięte.
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Jermor pisze: pt lis 10, 2023 7:45 pm W okienku dialogowym filtru standardowego rozwiń przycisk "Więcej opcji", zaznacz pozycję "Kopiuj wyniki do" i wskaż miejsce docelowe, wystarczy jedna komórka.
niestety ta opcja nie działa poprawnie... wskazuje błąd #ODWOŁAINE
Win 10
LibreOffice 7.1.3.2 x64
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Jermor pisze: pt lis 10, 2023 8:19 pm Jeszcze taka uwaga. Jeśli realizujesz to zadanie często, bo dane źródłowe się zmieniają, to możesz postąpić następująco:
  • Danym źródłowym nadaj nazwę, lecz nie w tradycyjny sposób, ale poleceniem "Dane -> Określ zakres".
  • Wszystkie nowe wiersze źródłowe wstawiaj do wnętrza nazwanego obszaru.
  • Jeżeli w opcjach Calca masz włączone "Rozszerz odwołania przy wstawianiu nowych kolumn/wierszy" (Narzędzia -> Opcje -> OpenOffice Calc -> Ogólne), to jeśli po ostatnim wierszu danych źródłowych, na pustym wierszu użyjesz polecenia "wstaw wiersz" (lub zaznaczysz więcej wierszy), to zostanie on (zostaną one) automatycznie dodany do zakresu.
  • Teraz utwórz filtr standardowy lub zaawansowany i upewnij się, że jest zaznaczona opcja "Zachowaj reguły filtru".
  • Zatwierdź działanie filtru.
Od teraz, gdy zmienią ci się dane źródłowe, wystarczy, abyś kliknął gdziekolwiek w ich obszar, a następnie wybrał polecenie "Dane -> Odśwież zakres", nowe dane zostaną odfiltrowane, przy czym jeśli byłoby ich mniej niż tych z poprzedniego filtrowania, to niepotrzebne wyniki zostaną usunięte.
ogólnie zamysł jest taki, że do arkusza (źródłowego) wrzucam dane źródłowe skladające się z kilkunastu kolumn ( takich arkuszów źródłowych będzie 4 sztuki ), w drugm arkuszu (procesowym - tworzę osobny dla każdego źródłowego żeby było przejżyściej) pobieram 3 kolumny z tabeli ( arkusza źródłowego), tam usuwam duplikaty i wskazuje tylko unikalne wiersze ( na podstawie wszystkich 3 kolumn). Wynik tego filtrowania automatycznie wrzucić do trzeciego "wspólnego arkusza" (w którym zawarte są już te odfiltrowane wyniki z czterech arkuszy źródłowych które procesuję w arkuszach procesowych). Dla tego procesu, potrzebuję najlepiej jakieś automatyzacji, która ograniczałaby użytkowników tylko do podmienienia danych w arkuszach źródłowych, naciśnieciu być może jakiegoś makra i tyle. I niestety muszę to zrobić osobno dla Open Office i osobno dla Office z racji tego że nie wszyscy posiadamy takie same platformy... Natomiast jak trafnie zauwazyłeś, wartość koncowa będzie się zmieniała dlatego, że arkusze źródłowe będą podmieniane i wtedy dane wyjściowe w arkuszu wspólnym powinny się automatycznie aktualizować. Czy po wrzuceniu nowych treści do arkuszów źródłowych i wybraniu "Dane -> Odśwież zakres", finalny wynik w arkuszu wspólnym podmieni się ? Czy zrozumialeś dokladnie moją idee?
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Nie wiem, czy dokładnie, ale zrozumiałem to tak:
Masz 4 arkusze źródłowe, jak się domyślam w jednym skoroszycie.
Na każdym z tych arkuszy należy wykonać następujące operacje:
  • Wyodrębnić 3 wybrane kolumny.
  • Z tego 3-kolumnowego zestawienia usunąć wszystkie duplikaty.
Uzyskane zestawienia scalić do jednego arkusza.

Jeśli chodzi o #ODWOŁANIE, to na podstawie tego jednego słowa trudno cokolwiek wywnioskować.
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Jermor pisze: pt lis 10, 2023 10:17 pm Nie wiem, czy dokładnie, ale zrozumiałem to tak:
Masz 4 arkusze źródłowe, jak się domyślam w jednym skoroszycie.
Na każdym z tych arkuszy należy wykonać następujące operacje:
  • Wyodrębnić 3 wybrane kolumny.
  • Z tego 3-kolumnowego zestawienia usunąć wszystkie duplikaty.
Uzyskane zestawienia scalić do jednego arkusza.

Jeśli chodzi o #ODWOŁANIE, to na podstawie tego jednego słowa trudno cokolwiek wywnioskować.
Tak to by chyba wyglądało:
Jeden plik, a w nim:
- 4 arkusze do których wrzucam dane źródłowe ( ich nazwy przyjmijmy A,B,C,D)
Przechwytywanie.PNG
Przechwytywanie.PNG (25.18 KiB) Przejrzano 1214 razy
- na ten moment wymysliłem sobie tak że dla każdego arkusza stworzyłem kolejne 4 arkusze procesowe o nazwach : A_proces, B_proces... itd. służące właśnie wyodrębnianiu tych unikalnych danych ( tam najważniejsze sa 3 kolumny z liczbami, do tego wszystkiego jest jeszcze czwarta kolumna o której nie wspomniałem wcześniej. I tam muszę stawiać warunek = jeżeli jest to zbiór wartości z grupy A, to do arkusza procesowego, pobieram wartoścc z kolumny 1i 2, natomiast jeśli jest to zbiór B, to biorę wartość z kolumny 1 i 3)
- ostatni dziewiąty arkusz to taki w którym chce juz wrzucic wyniki pod odpowiednie pola. Nazwałem go : "Gotowa Tabela".
Składa się on z :
(dane przykładowe - w realu są to różne liczby ściśle powiązane ze soba w poziomie tych trzech kolumn)
Przechwytywanie.PNG
Przechwytywanie.PNG (27.5 KiB) Przejrzano 1214 razy

i niestety na ten moment najlepiej, aby było to w formie tabeli 2x2 czyli Wyniki z A i B na górze, pod nimi wyniki z C i D. i należało by użyć funkcji "Przesuń komórki" - > w dół, żeby obniżało mi te kolejne wierze względem tego ile zawartości będzie w A i
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Jednak nie jest to do końca jasne.
Pytanie pierwsze, to czy cały ten system ma działać (albo chciałbyś, aby działał) w czasie rzeczywistym? Czyli dokonujesz zmiany lub wpisu w dowolnym z czterech arkuszy źródłowych i masz natychmiastowe zmiany w twoim arkuszu o nazwie "Gotowa tabela". Czy też funkcjonuje to inaczej, czyli wpisy i zmiany są dokonywane w tych czterech arkuszach źródłowych, a w pewnym momencie zarządzasz wykonanie przeliczeń, co wymaga np. wykonania różnych czynności albo uruchamiania makra?
Co dokładnie oznacza to zdanie:
Altaro pisze: pt lis 10, 2023 9:12 pm I niestety muszę to zrobić osobno dla Open Office i osobno dla Office z racji tego że nie wszyscy posiadamy takie same platformy.
Każdy dostaje takie same dane źródłowe?, Dane źródłowe znajdują się na serwerze plików i stamtąd są pobierane? Każdy, kto korzysta z tego systemu, ma swoją własną "Gotową tabelę"? Różni użytkownicy wypełniają arkusze źródłowe?
Jak rozumiem, zamieściłeś przykładowy arkusz jednego źródła danych, źródła A. Z niego na podstawie trzech kolumn Liczba1, Liczba2 i Liczba3 należy wyeliminować duplikaty i dopiero wówczas poprzenosić dane, uzależniając je od przypisanej im grupy. W tym twoim przykładzie nie ma żadnych duplikatów. Każdy wiersz trzech liczb jest inny. Jednak w następnej ilustracji, w obszarze źródła A, znajdują się tylko liczby należące do grupy A. Z tego co napisałeś, powinny tam znaleźć się także liczby grupy B, w tym przypadku pary: 1234 i 54665, 111 i 222, 333 i 2553.
Kolejny problem. Eliminujesz duplikaty wierszy trzech kolejnych liczb, robiąc to, ignorujesz przypisaną im grupę, więc pojawia się pytanie, według jakiej zasady będą przenoszone liczby, jeśli duplikaty tych trzech liczb należą zarówno do grupy A jak i B?

No i nie napisałeś wyjaśnienia dotyczącego błędu #ODWOŁANIE.
AOO 4.1.15, LO 7.5.9 (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.
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Co do błędu #ODWOŁANIE domyśliłem się, w czym rzecz. Dotyczy to, moim zdaniem, wielkiego błędu autorów Calca. Odfiltrowane dane są kopiowane w nowe miejsce, jako formuły, a nie jako wyniki formuł. Jeśli tymi danymi są bezpośrednie wpisy do komórki, to nie ma to żadnego znaczenia. Jeśli jednak dane są wyznaczane za pomocą formuł, to w miejscu docelowym wstawiane są formuły, a te próbują odnieść się do adresów wynikających z przeniesienia danych. My, jako użytkownicy, oczekujemy jednak, że powinniśmy zobaczyć odfiltrowane dane, a nie odfiltrowane formuły. Te, w nowym miejscu zaczną odwoływać się do relatywnych z nimi adresów. Jeśli takie adresy nie będą mogły być określone, pojawi się błąd #ODWOŁANIE. To przynajmniej wskaże użytkownikowi, że coś jest nie tak. Gorzej, gdy adresy zostaną wyznaczone prawidłowo i zobaczymy wyniki, które nie mają nic wspólnego z danymi odfiltrowanymi, a my je bezrefleksyjnie zaakceptujemy. Ta sama uwaga dotyczy polecenia "Wstaw -> Łącze do danych zewnętrznych..." (w Apache OpenOffice) lub "Arkusz -> Łącza zewnętrzne..." (w LibreOffice).
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Jermor pisze: sob lis 11, 2023 12:30 pm Jednak nie jest to do końca jasne.
Pytanie pierwsze, to czy cały ten system ma działać (albo chciałbyś, aby działał) w czasie rzeczywistym? Czyli dokonujesz zmiany lub wpisu w dowolnym z czterech arkuszy źródłowych i masz natychmiastowe zmiany w twoim arkuszu o nazwie "Gotowa tabela". Czy też funkcjonuje to inaczej, czyli wpisy i zmiany są dokonywane w tych czterech arkuszach źródłowych, a w pewnym momencie zarządzasz wykonanie przeliczeń, co wymaga np. wykonania różnych czynności albo uruchamiania makra?
Co dokładnie oznacza to zdanie:
Altaro pisze: pt lis 10, 2023 9:12 pm I niestety muszę to zrobić osobno dla Open Office i osobno dla Office z racji tego że nie wszyscy posiadamy takie same platformy.
Każdy dostaje takie same dane źródłowe?, Dane źródłowe znajdują się na serwerze plików i stamtąd są pobierane? Każdy, kto korzysta z tego systemu, ma swoją własną "Gotową tabelę"? Różni użytkownicy wypełniają arkusze źródłowe?
Jak rozumiem, zamieściłeś przykładowy arkusz jednego źródła danych, źródła A. Z niego na podstawie trzech kolumn Liczba1, Liczba2 i Liczba3 należy wyeliminować duplikaty i dopiero wówczas poprzenosić dane, uzależniając je od przypisanej im grupy. W tym twoim przykładzie nie ma żadnych duplikatów. Każdy wiersz trzech liczb jest inny. Jednak w następnej ilustracji, w obszarze źródła A, znajdują się tylko liczby należące do grupy A. Z tego co napisałeś, powinny tam znaleźć się także liczby grupy B, w tym przypadku pary: 1234 i 54665, 111 i 222, 333 i 2553.
Kolejny problem. Eliminujesz duplikaty wierszy trzech kolejnych liczb, robiąc to, ignorujesz przypisaną im grupę, więc pojawia się pytanie, według jakiej zasady będą przenoszone liczby, jeśli duplikaty tych trzech liczb należą zarówno do grupy A jak i B?

No i nie napisałeś wyjaśnienia dotyczącego błędu #ODWOŁANIE.
Już odpowiadam:
1. Co do zasady funkcjonowania, dopuszczam możliwość wrzucenia nowych danych do tabel źródłowych i uruchomienia makra, żeby dane w Gotowej Tabeli wygenerowały się na nowo ( tabelka z nowymi danymi ).

2.
a) Dane źródłowe są zawsze w takim samym formacie
b) Dane źródłowe znajdują się w pliku txt, gdzie oddzielone są one przecinkiem, jakoś je sobie konwertuje do csv dzięki czemu można je przekopiować w formie sformatowanej, do arkusza źródłowego
c) dokument Calc-a który chcę stworzyć, rozdam innym, którzy dzięki niemu, będa mogli stworzyć "Gotową tabelę" dla swoich potrzeb ( ze swoich danych źródłowych)
d) dane źródłowe nie są na serwerze. Są one w formie plików .txt, które każdy indywindualnie dostaje na pendrive. I każdy musi je obrobić na swój sposób. Dokument który chce stworzyć, ma zautomatyzować i przyśpieszyć proces wyciągania "Gotowej Tabeli"
e)
Jak rozumiem, zamieściłeś przykładowy arkusz jednego źródła danych, źródła A. Z niego na podstawie trzech kolumn Liczba1, Liczba2 i Liczba3 należy wyeliminować duplikaty i dopiero wówczas poprzenosić dane, uzależniając je od przypisanej im grupy. W tym twoim przykładzie nie ma żadnych duplikatów. Każdy wiersz trzech liczb jest inny. Jednak w następnej ilustracji, w obszarze źródła A, znajdują się tylko liczby należące do grupy A. Z tego co napisałeś, powinny tam znaleźć się także liczby grupy B, w tym przypadku pary: 1234 i 54665, 111 i 222, 333 i 2553.
Nie ma duplikatów. napisałem na szybko w calcu, przykład tabeli, ale zamysł jest taki jak mówisz.
* Najpierw na podstawie 3 kolumn usuwam duplikaty,
* to co zostaje, powinno trafić do tabeli końcowej, pod odpowiednie miejsce w warunkach takich :
( jeśli Liczba1, Liczba2 i Liczba3 jest z grupy A, to do "Gotowej tabeli podaj: Liczba 2 i Liczba3 a jeśli z grupy B, podaj Liczba1 i Liczba3 )

f)
Kolejny problem. Eliminujesz duplikaty wierszy trzech kolejnych liczb, robiąc to, ignorujesz przypisaną im grupę, więc pojawia się pytanie, według jakiej zasady będą przenoszone liczby, jeśli duplikaty tych trzech liczb należą zarówno do grupy A jak i B?
Jeśli zdażyła by się taka sytuacja, to do "Gotowej tabeli", powinniśmy podać obydwie możliwości:
Czyli : Liczba2 i Liczba3 z grupy A i Liczba1 i Liczba3 z grupy B
Win 10
LibreOffice 7.1.3.2 x64
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Jermor pisze: sob lis 11, 2023 2:46 pm Co do błędu #ODWOŁANIE domyśliłem się, w czym rzecz. Dotyczy to, moim zdaniem, wielkiego błędu autorów Calca. Odfiltrowane dane są kopiowane w nowe miejsce, jako formuły, a nie jako wyniki formuł. Jeśli tymi danymi są bezpośrednie wpisy do komórki, to nie ma to żadnego znaczenia. Jeśli jednak dane są wyznaczane za pomocą formuł, to w miejscu docelowym wstawiane są formuły, a te próbują odnieść się do adresów wynikających z przeniesienia danych. My, jako użytkownicy, oczekujemy jednak, że powinniśmy zobaczyć odfiltrowane dane, a nie odfiltrowane formuły. Te, w nowym miejscu zaczną odwoływać się do relatywnych z nimi adresów. Jeśli takie adresy nie będą mogły być określone, pojawi się błąd #ODWOŁANIE. To przynajmniej wskaże użytkownikowi, że coś jest nie tak. Gorzej, gdy adresy zostaną wyznaczone prawidłowo i zobaczymy wyniki, które nie mają nic wspólnego z danymi odfiltrowanymi, a my je bezrefleksyjnie zaakceptujemy. Ta sama uwaga dotyczy polecenia "Wstaw -> Łącze do danych zewnętrznych..." (w Apache OpenOffice) lub "Arkusz -> Łącza zewnętrzne..." (w LibreOffice).
Jest dokladnie jak piszesz! Przecież gdyby to działało poprawnie, to problem stworzenia marka które wykonywałoby to co ja chciałbym uzyskać, byłoby bezproblemowe. A w tym momencie dzieje się tak jak mówisz. Kopiuje formuły a nie wyniki.... Pewnie nie do naprawienia jest ta "usterka"
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Rafkus
Posty: 516
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Rafkus »

Temat podobny do twojego: viewtopic.php?p=24406#p24406

EDYTOWANO:
Pogłowiłem się troszkę nad twoim problemem i w skrócie zrobiłbym to tak:
Wklejasz swoje dane do arkusza1, zajmują one odpowiednio 4 kolumny i X wierszy.
W celu znalezienia unikalnych wartości w dodatkowej kolumnie F łączę wybrane kolumny w jeden tekst według zasady:

Kod: Zaznacz cały

grupa & "#" & JEŻELI(grupa="A"; kolumna1 & "#" & kolumna2; JEŻELI(grupa="B"; koluma1 & "#" & kolumna3; " nowy element"))
w tej postaci wynikiem będzie jakiś tekst w postaci:
  • grupa#liczba1#liczba2
  • grupa#liczba1#liczba3
  • grupa# nowy element
w razie konieczności trzeba rozbudować tą formułę.

Następnie trzeba określić, które z tych wierszy się powtarzają. Można to zrobić przy pomocy funkcji PODAJ.POZYCJĘ:

Kod: Zaznacz cały

=PODAJ.POZYCJĘ(kryterium; Zakres połączonych tekstów; 0)
Funkcja ta podaje, na którym miejscu znajduje się dane kryterium, podaje zawsze nr pierwszego znalezionego elementu.

Teraz nieco trudniejsza sprawa, w nowym arkuszu chcę dostać listę unikalnych wierszy z danymi. O tym, jak można utworzyć taką listę (przy pomocy formuły macierzowej) możesz przeczytać tutaj.
Jeśli danych źródłowych masz dużo, to proponowałbym zastosować moją funkcję UNIKALNEdo stworzenia takiej listy.
Przy pomocy funkcji INDEKS wyświetlić interesujące rekordy.
Altaro pisze: pt lis 10, 2023 10:39 pm Przechwytywanie.PNG

i niestety na ten moment najlepiej, aby było to w formie tabeli 2x2 czyli Wyniki z A i B na górze, pod nimi wyniki z C i D. i należało by użyć funkcji "Przesuń komórki" - > w dół, żeby obniżało mi te kolejne wierze względem tego ile zawartości będzie w A i
Obawiam się, że taki efekt możesz osiągnąć tylko tworząc własne makro
Załączniki
Altaro.ods
(12.94 KiB) Pobrany 54 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
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Przedstawiam ci pewną propozycję realizacji twojego problemu, tak jak ja ją zrozumiałem.
Przygotowałem skoroszyt (plik), który składa się z pięciu arkuszy. Arkusze mają nazwy „Źródło A”, „Źródło B”, „Źródło C”, „Źródło D” i „Gotowa tabela”.
Cztery pierwsze arkusze to źródła danych. Ostatni jest przygotowany na zestawienie wynikowe.
Każdy arkusz „Źródło n” ma taka samą strukturę i działa wg takich samych zasad. „Gotowa tabela” nie powstaje automatycznie, lecz dane do niej należy przenieść z pierwszych czterech arkuszy.
Funkcjonowanie arkuszy źródeł.
Arkusze przewidziałem na wprowadzenie 100 wierszy danych (można oczywiście powiększyć obszar do przewidywalnej liczby wpisów). Cała przestrzeń funkcjonalna zawiera się zatem w obszarze A1:G101 i podzielona jest na dwa obszary.
Pierwszy wiersz zawiera nagłówki.
Pierwszy obszar stanowią komórki czterech kolumn A1:D101. Są przeznaczone na wstawianie danych. W pierwszych czterech arkuszach obszarom tym nadałem nazwy zakresów, odpowiednio: "ADane", "BDane", "CDane" i "DDane". I dla każdego z tych zakresów zdefiniowałem filtr standardowy o parametrach jak na ilustracji:
obraz_2023-11-12_154045193.png
obraz_2023-11-12_154045193.png (17.8 KiB) Przejrzano 1125 razy
Drugi obszar obejmuje komórki F1:G101 i zawiera formuły wyznaczające lewą i prawą liczbę wymaganą w zestawieniu końcowym.
Tu pojawia się dylemat, bo w jednym poście napisałeś:
Altaro pisze: pt lis 10, 2023 10:39 pm warunek = jeżeli jest to zbiór wartości z grupy A, to do arkusza procesowego, pobieram wartoścc z kolumny 1i 2, natomiast jeśli jest to zbiór B, to biorę wartość z kolumny 1 i 3
Zaś w przedostatnim:
Altaro pisze: sob lis 11, 2023 11:55 pm jeśli Liczba1, Liczba2 i Liczba3 jest z grupy A, to do "Gotowej tabeli podaj: Liczba 2 i Liczba3 a jeśli z grupy B, podaj Liczba1 i Liczba3
Przyjąłem, że ten ostatni wpis podaje prawidłową zasadę.
Jak napisałeś, jeśli liczby dotyczą grupy A to, liczbą lewą jest Liczba2 gdy dotycza grupy B, liczba lewa jest liczba1. Liczbę prawa jest zawsze liczba3. Komórki tego obszaru są sformatowane tak, aby zera prowadzące nie były pokazywane, dlatego w arkuszach nie widać wyników, choć formuły są wpisane.

Działa to następująco:
Gdy do pierwszego obszaru zostaną wpisane dane, można kliknąć gdziekolwiek w komórce należącej tego obszaru (ma on, jak napisałem, przypisaną nazwę zakresu), np. w komórkę z nagłówkiem, a następnie wywołać polecenie „Dane → Odśwież zakres”. Polecenie to będzie nieaktywne, jeśli komórka aktywna arkusza nie znajduje się w nazwanym zakresie.
W wyniku tego polecenia wszystkie duplikaty i niewypełnione wiersze (bo one też są duplikatami) w zakresie od 2 do 101 wiersza zostaną ukryte.
Jeśli wiersze zostały ukryte przez działanie filtra, to kopiowanie widocznych komórek nie uwzględnia tych znajdujących się w ukrytych wierszach. Można zatem skopiować wszystkie liczby z drugiego obszaru.
A ponieważ liczby te są wynikiem formuł, należy je wkleić specjalnie (CTRL+SHIFT+V) na przeznaczone dla nich miejsce w „Gotowej tabeli”.
W każdym z arkuszy "Źródło n" może być ukryta różna liczba wierszy. Aby szybko odkryć wszystkie wiersze w tych arkuszach (np. aby wstawić nowe dane) najlepiej najpierw zaznaczyć wszystkie arkusze. Po kliknięciu prawym przyciskiem myszki na dowolnej nazwie arkusza wybrać opcję "Zaznacz wszystkie arkusze", następnie kliknąć także prawym przyciskiem myszki, na dowolnej literze określającej kolumnę i z wyświetlonego menu kontekstowego wybrać opcję "Pokaż".
Załączniki
Altaro2.ods
(17.63 KiB) Pobrany 47 razy
AOO 4.1.15, LO 7.5.9 (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.
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Zrobiłem to samo co kolega Rafkus. Pogłowiłem się nad tematem, zwłaszcza że kiedyś już napisałem (koledze) makro importujące plik csv do arkusza.
Sygnujesz swoje posty, jako użytkownik Apache OpenOffice więc zacząłem w nim i okazało się, że zastosowana przeze mnie funkcja nie działa. A w czasie — kilka lat temu — gdy ją zastosowałem, działała. Sprawdziłem ją w Libre i okazuje się, że działa.
Napisałem więc oprogramowanie, które rozwiązuje twój problem, tyle że musi być uruchomione w LibreOffice.
Załączony plik zawiera makra, więc musi być uruchamiany ze środowiska, w którym zezwalasz na uruchamianie makr.
Plik każdorazowo tworzy od nowa zawartość arkusza "Gotowa tabela", wymagając wskazania czterech kolejnych plików źródłowych.
Pliki należy wskazywać w kolejności: źródło A, źródło B, źródło C i źródło D. Gdyby ktoś pomylił kolejność, może powtórzyć proces.
Co do plików źródłowych, założyłem, że muszą to być pliki tekstowe, w znaczeniu struktury dokumentu, a więc typu txt albo csv, zawierające w wierszach cztery kolejne elementy, trzy liczby i literę A lub B. Wszystkie elementy są rozdzielane przecinkami. Plik zaczyna się od razu od liczb.
Na głównej stronie arkusza należy kliknąć przycisk "Utwórz tabelę" i wskazać kolejne pliki.
Oprogramowanie doczytuje wskazane pliki i na ich podstawie od razu tworzy rezultat. Pliki źródłowe nie są przechowywane ze skoroszytem.
Wszystko to przygotowałem pod systemem Windows.
Załączniki
Altaro3.ods
(12.48 KiB) Pobrany 49 razy
Ostatnio zmieniony sob lis 18, 2023 11:52 am przez Jermor, łącznie zmieniany 1 raz.
Powód: Poprawiłem błąd w opisie pliku tekstowego. Wiersz ma zawierać 4 elementy, a nie cztery liczby jak napisałem poprzednio.
AOO 4.1.15, LO 7.5.9 (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.
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Uwaga dla tych, którzy pobrali plik przed pojawieniem się tego postu. Poprawiłem opis pliku tekstowego. Ma składać się z czterech elementów: trzech liczb i litery.
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Nie zaniechałem tematu. Sprawdzam wszystkie wasze propozycje i dam znać jak to wygląda u mnie.
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Ponieważ sygnujesz użytkowanie wersji 4.1.2, sprawdź, czy moje rozwiązanie zadziała pod tą wersją. W mojej 4.1.14 nie potrafi skopiować zawartości plików źródłowych, ale nie sygnalizuje żadnego błędu (a dokładniej zamiast danych wpisuje komunikat "łącze nie może zostać ustanowione") tylko ich nie kopiuje.
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Jermor pisze: pt lis 17, 2023 2:51 pm Zrobiłem to samo co kolega Rafkus. Pogłowiłem się nad tematem, zwłaszcza że kiedyś już napisałem (koledze) makro importujące plik csv do arkusza.
Sygnujesz swoje posty, jako użytkownik Apache OpenOffice więc zacząłem w nim i okazało się, że zastosowana przeze mnie funkcja nie działa. A w czasie — kilka lat temu — gdy ją zastosowałem, działała. Sprawdziłem ją w Libre i okazuje się, że działa.
Napisałem więc oprogramowanie, które rozwiązuje twój problem, tyle że musi być uruchomione w LibreOffice.
Załączony plik zawiera makra, więc musi być uruchamiany ze środowiska, w którym zezwalasz na uruchamianie makr.
Plik każdorazowo tworzy od nowa zawartość arkusza "Gotowa tabela", wymagając wskazania czterech kolejnych plików źródłowych.
Pliki należy wskazywać w kolejności: źródło A, źródło B, źródło C i źródło D. Gdyby ktoś pomylił kolejność, może powtórzyć proces.
Co do plików źródłowych, założyłem, że muszą to być pliki tekstowe, w znaczeniu struktury dokumentu, a więc typu txt albo csv, zawierające w wierszach cztery kolejne elementy, trzy liczby i literę A lub B. Wszystkie elementy są rozdzielane przecinkami. Plik zaczyna się od razu od liczb.
Na głównej stronie arkusza należy kliknąć przycisk "Utwórz tabelę" i wskazać kolejne pliki.
Oprogramowanie doczytuje wskazane pliki i na ich podstawie od razu tworzy rezultat. Pliki źródłowe nie są przechowywane ze skoroszytem.
Wszystko to przygotowałem pod systemem Windows.
Kawał dobrej pracy, jeszcze nie udało mi sie tego uruchomić poprawnie, ale walcze. dlatego że treści źródłowe są oddzielone średnikiem i zawierają nagłówki. Warto zaznaczyć że pierwsze 3 kolumny z liczbami, (nazw kolumn nie chciałbym podawać - mógłbym je sobie uzupełnić ewentualnie w kodzie) oraz kolumna która zawiera grupę ( jej nazwa to TYPE ) nie jest kolumną czwartą w rzędzie tylko dziesiątą. Wieć w pliku źródła które składa się z kilkunastu kolumn i nieokreślonej ilości wierszy, dane pobierać powinniśmy z kolumny 1,2,3 i przyjmijmy 10 (kolumna grupy). I teraz na dniach, pojawiła się sytuacja ( zupełnie nie problematyczna) że w kolumne 10(TYPE) mogą pojawić się nawet 3 lub 4 grupy, ale.... nadal tylko w grupie B, stosujemy tą regułe pobierania o której pisałem wcześniej. W każdej innej grupie prócz "B", pobieramy dane według standardu A...
Czyli:

jeśli Liczba1, Liczba2 i Liczba3 jest z grupy A,C,D,E... lub jakiekolwiek innej niż B, to do "Gotowej tabeli podaj: Liczba 2 i Liczba3 a jeśli z grupy B, podaj Liczba1 i Liczba3

Edit: Jutro postaram się może podesłać Ci prywatnie, oryginalny plik źródłowy, wtedy będziesz miał lepsze rozeznanie w temacie.

Jeśli dla Twojego kodu,istotne jest, jak będą nazywały się nagłówki kolumn, to proszę, jeśli mógłbyś zrobić mi dla nich miejsce w kodzie abym mógł je dopisać. Kolumna grupy nosi nazwe TYPE.


Jermor - Bardzo dziękuję za zaangażowanie i pomoc w tym temacie. Na prawdę kawał dobrej roboty i jeśli zadziała to jestem winny dużą flaszkę!
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Właściwie nie musisz mi nic przesyłać. Już poprawiłem kod. Przyjąłem, że tak jak napisałeś, typ jest w 10. kolumnie.
Pierwszy wiersz danych źródłowych przy wczytywaniu jest ignorowany.
Separatorem poszczególnych pól są średniki
Załączniki
Altaro4.ods
(12.5 KiB) Pobrany 53 razy
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Już sprawdzam działanie.

Czy ten kod będzie działał również na Exelu od Office? Tak jak wspomniałem, niektórzy posiadają office a niektórzy OpenOffice... ;/
Przyjąłeś że kolumna jest dziesiąta w kolejności. A co gdybym, chciał po prostu przeszukiwać kolumny po nazwach ? Zastanawiam się jak zabezpieczyć się przed faktem, w którym kiedyś w przyszłości, ktoś wpadnie na to, by do raportu dorzucić dodatkową kolumnę i wtedy wszystko się rypnie. Czy nie można by np: w pętli przeszukiwać nagłówki kolumn? tak samo do trzech pierwszych kolumn z wartościami i kolumny TYPE ;)
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Altaro pisze: śr lis 22, 2023 10:33 am Czy ten kod będzie działał również na Exelu od Office?
Nie będzie. Mimo że oba języki programowania mają a nazwie Basic, to się różnią.
Altaro pisze: wt lis 21, 2023 10:24 pm ... by do raportu dorzucić dodatkową kolumnę...
Jeśli doda ją po 10. kolumnie, to nie ma problemu. System sobie poradzi. Gorzej gdy usunie jakąś, albo doda przed 10.
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Sprawdziłem kod i nie działa. Wszystko wygląda na zduplikowane. Wydaje mi się że to albo błąd w pętli albo w PropertyValue Czy mogę zastąpić getCellByPosition na gyByName, gdzie nazwa kolumny =TYPE?

Ponadto dlaczego usuwasz removeByIndex(2,17) ? (Dlaczego akurat takie nie inne parametry)

I ostatnie pytanie dotyczące filtrów. PropertyValue

Mógłbyś mi nakreślić co oznaczają parametry "Options"?
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Tak, jak napisałem, makro działa w Calcu pod LibreOffice. Zrozumiałem, że nie działa ci pod Apache OpenOffice. Ja w międzyczasie zainstalowałem doraźnie starsze wersje, w tym 4.1.2 i rzeczywiście nie działa, i prawdę pisząc, nie wiem dlaczego.
Nie wiem co rozumiesz przez stwierdzenie
Altaro pisze: czw lis 23, 2023 5:08 pm Wszystko wygląda na zduplikowane.
Bo dla mnie oznacza to "podwojone" a z moich obserwacji wynika, że dostajesz tylko dwa wiersze nagłówków w pierwszym i drugim wierszu arkusza.

Opcje dla filtra CSV poczytaj tutaj https://help.libreoffice.org/latest/ro/ ... arams.html
Altaro pisze: czw lis 23, 2023 5:08 pm ... dlaczego usuwasz removeByIndex(2,17)
Wynika to z logiki programu. Po doczytaniu danych do arkusza roboczego tworzone są dwie kolumny wyników. Są to kolumn druga i trzecia. Trzecia się nie zmienia (nie zależy od grupy), natomiast w drugiej zostaje to co było, jeżeli grupą jest coś innego niż "B" albo wartość z pierwszej kolumny, gdy jest to grupa B. Przed odfiltrowaniem duplikatów usuwam niepotrzebne kolumny, czyli kolumnę A, ona ma numer 0 i 17 kolumn od kolumny o numerze 2, czyli od kolumny w tym momencie C, bo wcześniej usunięta została A. 17 dlatego, że nie wiedziałem, ile tych kolumn jest w dokumencie i uznałem, że tyle sprawi, że usunę wszystkie zbędne. Ale poniżej i tak poprawiłem algorytm i ta uwaga nie jest już istotna.
Altaro pisze: czw lis 23, 2023 5:08 pm Czy mogę zastąpić getCellByPosition na gyByName
Nie możesz, bo odpowiednikiem getCellByPosition() jest getCellRangeByName() a argumentem tej metody jest jawny adres komórki, np. A1 i zapis wówczas wygląda tak: getCellRangeByName("A1") i nie ma nic wspólnego z zawartością komórki. Zresztą nieco o Basicu możesz przeczytać tu https://yestok.pl/lbo/y64.php.
Zmodyfikowałem plik Altaro4.ods. Wczytuje teraz dane od pierwszego wiersza, znajduje ostatnią zajętą kolumnę w arkuszu "Roboczy" i szuka nazwy TYPE. Funkcja UCase przed porównaniem zamienia tekst w komórce na zapis wielkimi literami i dopiero wówczas porównuje ze słowem TYPE. W ten sposób, jeśli w danych ktoś wpisze "Type" albo "type" ciąg zostanie uznany za znaleziony.
Załączniki
Altaro4.ods
(14.77 KiB) Pobrany 48 razy
AOO 4.1.15, LO 7.5.9 (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.
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Przygotowałem drugi plik, wykonujący to zadanie wg innego algorytmu. Działa na Apache OpenOffice i choć metoda jest uniwersalna, to nie działa w LibreOffice (?!).
Załączam go poniżej.
Załączniki
Altaro5ooo.ods
(15.48 KiB) Pobrany 44 razy
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Aktualnie pracuje nad dostosowaniem programu do potrzeb automatycznego tworzenia dokumentacji z zawartością wyfiltrowaną za pomoca programu i modyfikacji niektórych działań które wykonuje ten program. Bardzo dziękuję za pomoc i będę odzywał się jak tylko stworzę jakąś znaczną różnicę w działaniu lub wprowadzę dodatkowe funkcje do obecnego programu. Oczywiście pozwolę sobie również, zwrócić się o pomoc w przypadku kiedy napotkam problem :) pozdrawiam
Win 10
LibreOffice 7.1.3.2 x64
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Witam witam, prace nadal trwają program się rozbudowuje, szybkie pytanie dotyczące konwersji dec2hex w makro ale libre office

oService = createUNOService("com.sun.star.sheet.addin.Analysis")
Dec2Hex = oService.getDec2Hex()

Jakie parametry należy wskazać w tej funkcji?

Wyjściowa wartość może być w stringu bądź jako zawartość komórki .value - jest to liczba decymalna, którą chce przekonwertować na hex.

szybka prośba o pomoc. Pozdrawiam!
Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

W Basicu skorzystaj z tego rozwiązania:

Kod: Zaznacz cały

oFA = createUnoService( "com.sun.star.sheet.FunctionAccess" )
wynik=oFA.callFunction( "dec2hex", array(liczba dziesietna,ilośc znaków wyniku) )
Pierwsza parametr tabeli array to liczba dziesiętna, drugi to liczba oczekiwanych cyfr szesnastkowych w wyniku.
np. dla liczby 235, i drugiego parametru 6 otrzymasz wynik 0000EB.
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

Dziękuje, postaram się to zaimplementować, ponieważ w wyniku czasami mam potrzebę przekonwertowania liczby która ma 4 cyfry a czasami 7, w zależności od parametru.

Mam jeszcze jedno pytanie dotyczące iteracji.
W iteracji mam podane 4 warunki "if":

Kod: Zaznacz cały

For i=0 to wiersze								
if UCase(oOrange.getCellByPosition(3,i).string)="A" Then oOrange.getCellByPosition(0,i).string=oOrange.getCellByPosition(0,i).string + ":L" rem oOrange.getCellByPosition(0,i).string + ":L"

if UCase(oOrange.getCellByPosition(3,i).string)="B" or UCase(oOrange.getCellByPosition(3,i).string)="B1+" or UCase(oOrange.getCellByPosition(3,i).string)="C" Then oOrange.getCellByPosition(0,i).string=oOrange.getCellByPosition(2,i).string + ":" + oOrange.getCellByPosition(1,i).value + ":U" 

if UCase(oOrange.getCellByPosition(3,i).string)="D" Then oOrange.getCellByPosition(0,i).string=oOrange.getCellByPosition(2,i).string + ":" + oOrange.getCellByPosition(1,i).string + ":G"

REM usuwanie wiersza gdzie parametr TYPE = "n/a"
if UCase(oOrange.getCellByPosition(3,i).string) = "n/a" Then oOrange.getRows.removeByIndex(i,1)
Next
I nie wiem co się dzieje, ale w żadnym wypadku nie chce mi się usuwać ten wiersz. nawet jeśli w instrukcji podam coś innego, to ni cholery, instrukcja w ogóle nie reaguje na ten wiersz i go pomija.

przykładowe dane:

Kod: Zaznacz cały

48641059	190004	59021	A
48641059	190004	59021	A
48641059	190004	59021	A
48641059	13347	59021	n/a
41464387	45635	59020	n/a
41464387	45635	59020	B
41464387	45635	59020	B
41464387	45635	59020	B

Win 10
LibreOffice 7.1.3.2 x64
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Jermor »

Z tego co widzę, to przekształcasz zawartość komórki na zapis wielkimi literami (UCase) a porównujesz z napisem małymi literami.
AOO 4.1.15, LO 7.5.9 (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.
Altaro
Posty: 26
Rejestracja: czw paź 26, 2023 10:13 am

Re: Kopiowanie tylko wyfiltrowanych Wyników

Post autor: Altaro »

No dobrze, a czy nie ma możliwości, żeby nie podawać długości liczby Hex? moje wartości mają różne długości i musiałbym w iteracji zliczać ilość znaków i potem je na bieżąco zmieniać.
Win 10
LibreOffice 7.1.3.2 x64
ODPOWIEDZ