Jakiej używać reguły aby kopiowała liczby bez pustych pol
Jakiej używać reguły aby kopiowała liczby bez pustych pol
Witam, przeszukałem forum ale ciężko jest coś znaleźć nie wiedząc jak szukać tego o co mi chodzi , potrzebuje aby formuła kopiowała pełne pola z np pola od A2 do J2
np _2__5_7_9_ ( podałem 10 pól a _ to "puste" pole)
liczby ale bez pustych pól i wpisywała je kolejno w tabele rosnąco np w tabeli od góry A1 do A10
np
2
5
7
9
jezeli trzeba podeśle screena bardziej wyrafinowanego
przykład pełnych wszystkich pól w A2 do J2 np 1 2 3 4 5 6 7 8 9 10
a umieszczane w tabeli od góry A1 do A10
np
1
2
3
4
5
6
7
8
9
10
np _2__5_7_9_ ( podałem 10 pól a _ to "puste" pole)
liczby ale bez pustych pól i wpisywała je kolejno w tabele rosnąco np w tabeli od góry A1 do A10
np
2
5
7
9
jezeli trzeba podeśle screena bardziej wyrafinowanego
przykład pełnych wszystkich pól w A2 do J2 np 1 2 3 4 5 6 7 8 9 10
a umieszczane w tabeli od góry A1 do A10
np
1
2
3
4
5
6
7
8
9
10
Ostatnio zmieniony sob lut 06, 2021 2:42 pm przez Rafkus, łącznie zmieniany 1 raz.
Powód: Przeniosłem temat do tego działu, myślę że jest bardziej odpowiedni
Powód: Przeniosłem temat do tego działu, myślę że jest bardziej odpowiedni
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Wykorzystaj funkcję MIN.K:
Funkcja ta zwraca n-tą najmniejszą wartość ze zbioru danych. Tą n-tą wartość wyznacza funkcja WIERSZ(), która zwraca tutaj numer wiersza komórki wpisanej w nawias.
Podana formuła wybiera tutaj z zakresu $A$2:$J$2 pierwszą najmniejszą wartość. Przeciągając tą formułę w dół A1 będzie zamieniane na kolejny wiersz (B1, C1 ... itd) dzięki czemu WIERSZ() będzie generował kolejne wartości dla funkcji MIN.K().
Kod: Zaznacz cały
=MIN.K( $A$2:$J$2; WIERSZ(A1) )
Podana formuła wybiera tutaj z zakresu $A$2:$J$2 pierwszą najmniejszą wartość. Przeciągając tą formułę w dół A1 będzie zamieniane na kolejny wiersz (B1, C1 ... itd) dzięki czemu WIERSZ() będzie generował kolejne wartości dla funkcji MIN.K().
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Super naprawdę Działa ale jeżeli wszystkie liczby są w tabeli a potrzebuje tak jak pisałem jeżeli występuje pomiędzy liczbami tabela bez wartości czyli pusta to wyskakuje błąd a jak wpisze w puste pola 0 to przesówa mi o ilość zer
0200507090 ( podałem 10 pól a 0 wpisałem w puste pola)
wychodzi tak
0
0
0
0
0
0
2
5
7
9
a chciał bym żeby puste pola omijało i zostało w tabeli samo
2
5
7
9
czy da rade jakoś to oszukać jeżeli np wieksze od 0 lub super bylo by jak puste by omijało
0200507090 ( podałem 10 pól a 0 wpisałem w puste pola)
wychodzi tak
0
0
0
0
0
0
2
5
7
9
a chciał bym żeby puste pola omijało i zostało w tabeli samo
2
5
7
9
czy da rade jakoś to oszukać jeżeli np wieksze od 0 lub super bylo by jak puste by omijało
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Zastanawiałem się jaki błąd powstaje i myślę że on powstaje gdy chcesz otrzymać kolejną liczbę gdy zostały już podane wszystkie z danego zakresu. W takim przypadku należy zbudować formułę ukrywającą wartość błędu:
Jeżeli funkcja MIN.K(...) będzie generowała błąd, to do komórki zostanie wpisany tekst "" (tzn, tekst o długości 0 znaków) czyli komórka będzie pusta, w przeciwnym razie zostanie wstawiona wartość MIN.K(...).
PS. W Libre powyższa formuła byłaby nieco prostsza, bo posiada on funkcję:
Kod: Zaznacz cały
=JEŻELI(CZY.BŁĄD(MIN.K($B$3:$G$3; WIERSZ(A1))); ""; MIN.K($B$3:$G$3;WIERSZ(A1)))
PS. W Libre powyższa formuła byłaby nieco prostsza, bo posiada on funkcję:
Kod: Zaznacz cały
=JEŻELI.BŁĄD(MIN.K($B$3:$G$3;WIERSZ(A1)); "")
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Chyba coś nie tak opisałeś układ swoich danych. Jeśli twoje dane źródłowe znajdują się od A2 do J2 to komórka A2 znajduje się rwnoczesnie w obszarze wynikowym A1 do A10 (!).
Proponuję modyfikację formuły @Rafkus do postaci:
Dane źrólowe: B2:J2
Dane wynikowe A1:A9
Formuła w komórce A1
i skopiowana w dół.
Formuła wyznacza kolejne wartości minimalne, czyniąc to tylko do ilości występujących w zakresie liczb. Gdy wyznaczone zostały wszystkie wartości liczbowe, w pozostałych komórkach wstawiany jest pusty ciąg znakowy.
Proponuję modyfikację formuły @Rafkus do postaci:
Dane źrólowe: B2:J2
Dane wynikowe A1:A9
Formuła w komórce A1
Kod: Zaznacz cały
=JEŻELI(WIERSZ()-WIERSZ($A$1)<ILE.LICZB($B$2:$J$2);MIN.K($B$2:$J$2;WIERSZ()-WIERSZ($A$1)+1);"")
Formuła wyznacza kolejne wartości minimalne, czyniąc to tylko do ilości występujących w zakresie liczb. Gdy wyznaczone zostały wszystkie wartości liczbowe, w pozostałych komórkach wstawiany jest pusty ciąg znakowy.
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.
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Jednak troche inny problem wystąpił, formule testowałem na tabeli 1 poziomej gdzie ręcznie wpisywałem liczby 2 0 0 4 5 itd i tu działa nawet bez wyłapywania 0 jak widac na zdjeciu tylko puste pola wykazują błąd ale tabela numer 2 pozioma ma liczby z danych z formuły =JEŻELI(V102>4;"1";"0") i przy braku wyników wstawiłem wstaw 0 (bo wcześniej było puste przy mniejszym od 4 czyli "" zamiast "0") a przy wyniku powyżej 4 jest np 1 i tu są od razu błędy i o takie segregowanie mi chodziło
- Załączniki
-
- dlaczego blad.png (11.42 KiB) Przejrzano 4011 razy
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
@Jermor troszkę za bardzo kombinujesz: wynikiem WIERSZ($A$1) będzie zawsze 1, zatem wystarczyłaby formuła:
Używam polecenia WIERSZ(A1) bo dzięki temu formułę tą mogę wpisać do dowolnej komórki spoza zakresu źródłowego (dlatego przeoczyłem że wynik zahacza o dane)
Kod: Zaznacz cały
JEŻELI(WIERSZ(A1)<=ILE.LICZB($B$3:$J$3); MIN.K($B$3:$J$3;WIERSZ(A1)); "")
Używam polecenia WIERSZ(A1) bo dzięki temu formułę tą mogę wpisać do dowolnej komórki spoza zakresu źródłowego (dlatego przeoczyłem że wynik zahacza o dane)
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
I tam źle działa bo w komórce S3 masz wpisaną formułę MIN.K($U$9:$AD$9; WIERSZ(S3)). Wiersz(S3) = 3, zatem MIN.K zwraca trzecią najmniejszą wartość, można powiedzieć że na stałe pominąłeś dwie pierwsze najmniejsze wartości. Zrób eksperyment: zamiast 0 wpisz jakieś inne liczby (np 22 i 44) i zobacz czy wówczas najmniejszą liczbą będzie 2.charyy pisze: gdzie ręcznie wpisywałem liczby 2 0 0 4 5 itd i tu działa nawet bez wyłapywania 0 jak widac na zdjeciu tylko puste pola wykazują błąd
(Odpowiedź to: Nie, Zamiast S3 powinna być tam wpisane S1)
Aby wykluczyć 0 to proponuję zamiast WIERSZ(A1) użyć formuły:
Kod: Zaznacz cały
LICZ.JEŻELI($U$9:$AD$9; 0)+WIERSZ(A1)
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Wpisałem ten adres raczej dla uzmysłowienia, że obliczanie kolejnego rzędu w funkcji MIN.K() zależy od położenia pierwszego wyniku.Rafkus pisze:@Jermor troszkę za bardzo kombinujesz: wynikiem WIERSZ($A$1) będzie zawsze 1
Dopiero teraz zdałem sobie sprawę z tego co napisał @Rafkus. Rzeczywiście niepotrzebnie skomplikowałem formułę. Funkcja WIERSZ(A1) zapisana w dowolnej komórce a następnie powielana w dół zwróci kolejne liczby całkowite zaczynając od 1. Zafiksowałem się na konieczności obliczania tych liczb od położenia komórki startowej a to nie jest potrzebne.
Podana formuła zwraca liczby jako ciąg tekstowy, a funkcja MIN.K() ignoruje ciągi tekstowe w obliczeniach. Czyli powinno raczej być =JEŻELI(V102>4;1;0)charyy pisze:liczby z danych z formuły =JEŻELI(V102>4;"1";"0")
Ostatnio zmieniony ndz lut 07, 2021 11:27 am przez Jermor, łącznie zmieniany 1 raz.
Powód: Rację ma @Rafkus, że formuła jest niepotrzebnie tak rozbudowana.
Powód: Rację ma @Rafkus, że formuła jest niepotrzebnie tak rozbudowana.
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.
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
SUPER działa, już nawet wymyśliłem co z zerami zrobić dam malejąco i wtedy zera będę mieć na samym dole a u góry liczby czyli o tak bo mam określoną ilość tabeli a wiec liczby z zerami wypełnią całość
68
64
61
60
59
0
0
0
0
0
68
64
61
60
59
0
0
0
0
0
- Załączniki
-
- dlaczego dont work.png (10.67 KiB) Przejrzano 4007 razy
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Możesz zatem zapisać formułę =JEŻELI(BJ133>14;59;"")
Co do formuły podstawowej, to zwróć uwagę na podaną przez @Rafkus formułę jaka możesz wprowadzić w Calc LibreOffice:
=JEŻELI.BŁĄD(MIN.K($B$3:$G$3;WIERSZ(A1));"")
Ta funkcja [JEŻELI.BŁĄD()] bardzo ułatwia i upraszcza tworzenie obliczeń warunkowych obsługujących sytuacje błędne, a takich funkcji dostępnych w LibreOffice lecz nie zaimplementowanych w Apache OpenOffice, jest więcej. Może więc warto przesiąść się na ten nowszy projekt?
Co do formuły podstawowej, to zwróć uwagę na podaną przez @Rafkus formułę jaka możesz wprowadzić w Calc LibreOffice:
=JEŻELI.BŁĄD(MIN.K($B$3:$G$3;WIERSZ(A1));"")
Ta funkcja [JEŻELI.BŁĄD()] bardzo ułatwia i upraszcza tworzenie obliczeń warunkowych obsługujących sytuacje błędne, a takich funkcji dostępnych w LibreOffice lecz nie zaimplementowanych w Apache OpenOffice, jest więcej. Może więc warto przesiąść się na ten nowszy projekt?
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.
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Wystąpił następny czasochłonny problem, czy jest możliwość zakotwiczyć tabele w formule żeby nie zmieniało kolumny ale zmieniało całą resztę?
=LICZ.JEŻELI(F14999:Y14999;DM102)+LICZ.JEŻELI(F14999:Y14999;102) tyczy sie kolumny F do Y ale jak kopiowane w górę to żeby zmieniało liczby 14999 na 14998 97 96 ...itd jednym słowem tak jak kopiuje w inną tabele żeby F14999:Y14999 (F :Y pozostało to samo ale przy kopiowaniu w prawo zmieniało DM102 na DN102 a jak kopiowane w górę to żeby zmieniało, trochę może za dużo rozpisałem ale podsumowując F do Y ma być stałe przy zmianie w prawo bo w górę zmienia się liczba porządkowa, wierzcie mi szukałem wszędzie a to jest potrzebne do szybkiej edycji bez wprowadzania zmiany przy każdej komórce
po to są fora żeby pytać jak nie można znaleźć ogólnie sam się domyśliłem po próbach i błędach że potrzebuje $ żeby na stałe przytrzymać komórke
=LICZ.JEŻELI(F14999:Y14999;DM102)+LICZ.JEŻELI(F14999:Y14999;102) tyczy sie kolumny F do Y ale jak kopiowane w górę to żeby zmieniało liczby 14999 na 14998 97 96 ...itd jednym słowem tak jak kopiuje w inną tabele żeby F14999:Y14999 (F :Y pozostało to samo ale przy kopiowaniu w prawo zmieniało DM102 na DN102 a jak kopiowane w górę to żeby zmieniało, trochę może za dużo rozpisałem ale podsumowując F do Y ma być stałe przy zmianie w prawo bo w górę zmienia się liczba porządkowa, wierzcie mi szukałem wszędzie a to jest potrzebne do szybkiej edycji bez wprowadzania zmiany przy każdej komórce
po to są fora żeby pytać jak nie można znaleźć ogólnie sam się domyśliłem po próbach i błędach że potrzebuje $ żeby na stałe przytrzymać komórke
- Załączniki
-
- zapytanie.png (3.98 KiB) Przejrzano 3930 razy
Ostatnio zmieniony śr lut 17, 2021 7:32 am przez charyy, łącznie zmieniany 2 razy.
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Strasznie zawile to wyjaśniasz. Z tego co piszesz powinieneś zapoznać się z wykorzystywaniem różnych sposobów adresowania komórek. A dokładniej z używaniem adresów względnych i bezwzględnych i mieszanych. O tym jak to działa znajdziesz np. tu https://yestok.pl/gen/yak04.php ale i w wielu innych miejscach w Internecie.
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.
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Mam kolejny problem może pomożecie lub jak ostatnio nakierujecie, zainstalowałem liberty jak mi doradzone ale potrzebował bym w formułe np. =JEŻELI($Arkusz3.R451>0;$Arkusz3.R451;"")
wpisać część danych formuły w innej tabelce żeby po jej zmianie zmieniało wpisaną formułę w kilku set formułach na raz
czyli nap w tabeli a1 wpisany miał bym "arkusz3." a w tabeli a2 wpisane miał bym "r451" i czy da sie skompresować formułę tak żeby przykładowo wyglądała tak =JEŻELI(${=a1}{a2}>0;$Arkusz3.R451;"") oczywiście ten przykład jest błędny tylko próbuje nakierować co potrzeba, jeżeli da się z prostszą formułą jak =(a1)+(b2) to też by pomogło
wpisać część danych formuły w innej tabelce żeby po jej zmianie zmieniało wpisaną formułę w kilku set formułach na raz
czyli nap w tabeli a1 wpisany miał bym "arkusz3." a w tabeli a2 wpisane miał bym "r451" i czy da sie skompresować formułę tak żeby przykładowo wyglądała tak =JEŻELI(${=a1}{a2}>0;$Arkusz3.R451;"") oczywiście ten przykład jest błędny tylko próbuje nakierować co potrzeba, jeżeli da się z prostszą formułą jak =(a1)+(b2) to też by pomogło
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Da się to uzyskać. Musisz skorzystać z funkcji ADR.POŚR(). Funkcja jako argument musi mieć wpisany tekstowo adres komórki. Zwraca natomiast to, co jest pod tym adresem. Jeżeli w komórce A1 wpiszesz nazwę arkusza np. "Arkusz3" a w komórce B1 adres komórki bez przedrostka arkuszowego, np. "R451", to formuła tworząca tekstowy zapis ostatecznego adresu będzie miała postać =A1&"."&B1, a więc funkcja ADR.POŚR wyglądałaby tak: ADR.POŚR(A1&"."&B1) zaś twoja formuła JEŻELI
Przyglądając się twojemu przykładowi, można przypuszczać, że zechcesz aby taka formuła odnosiła się analogicznie do kolejnych wierszy, czyli w wierszu 452 dotyczyła komórki R452 a w wierszu 350 do komórki R350.
Jeśli taka sytuacja zachodzi, to powyżej wspomniane rozwiązanie nie spełni oczekiwań, ze względu na sposób adresowania argumentów, w tym przypadku adresowania względnego. Gdy skopiujesz podaną powyżej formułę w dół, do wiersza 451, adres A1 zmieni się na A2 a adres B1 na B2 a w tych komórkach nie ma już żadnych informacji.
Komórkę A1 możesz określić jako adres bezwzględny ($A$1), bo nazwa arkusza w formule będzie zawsze taka sama. Problemem jest druga część adresu, w której tylko litera "R" jest niezmienna, natomiast musi zmieniać się numer wiersza. Trzeba zatem zmienić formułę, która utworzy tekstowy adres komórki, zgodnie z wierszem, w którym się znajduje. Taką formułą wyznaczającą adres może być np. =$A$1&".R"&WIERSZ(). Funkcja wiersz zwraca liczbę odpowiadającą numerowi wiersza tej komórki, która jest argumentem tej funkcji a jeśli argumentu nie podano, numerowi tego wiersza, w którym funkcja została wpisana. Zatem cała formuła JEŻELI przyjmie postać:
Teraz jeśli skopiujesz taką formułę w dół lub w górę, funkcja WIERSZ() wyznaczy numer wiersza odpowiednio powiększony lub pomniejszony, czyli dołączony do litery "R" numer będzie odpowiadał wierszowi, w którym znajduje się formuła, co łącznie z poprzedzającym prefiksem da właściwy adres.
Kod: Zaznacz cały
=JEŻELI(ADR.POŚR(A1&"."&B1)>);ADR.POŚR(A1&"."&B1);"")
Jeśli taka sytuacja zachodzi, to powyżej wspomniane rozwiązanie nie spełni oczekiwań, ze względu na sposób adresowania argumentów, w tym przypadku adresowania względnego. Gdy skopiujesz podaną powyżej formułę w dół, do wiersza 451, adres A1 zmieni się na A2 a adres B1 na B2 a w tych komórkach nie ma już żadnych informacji.
Komórkę A1 możesz określić jako adres bezwzględny ($A$1), bo nazwa arkusza w formule będzie zawsze taka sama. Problemem jest druga część adresu, w której tylko litera "R" jest niezmienna, natomiast musi zmieniać się numer wiersza. Trzeba zatem zmienić formułę, która utworzy tekstowy adres komórki, zgodnie z wierszem, w którym się znajduje. Taką formułą wyznaczającą adres może być np. =$A$1&".R"&WIERSZ(). Funkcja wiersz zwraca liczbę odpowiadającą numerowi wiersza tej komórki, która jest argumentem tej funkcji a jeśli argumentu nie podano, numerowi tego wiersza, w którym funkcja została wpisana. Zatem cała formuła JEŻELI przyjmie postać:
Kod: Zaznacz cały
=JEŻELI(ADR.POŚR($A$1&".R"&WIERSZ())>0;ADR.POŚR($A$1&".R"&WIERSZ());"")
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.
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
witam, formuła ADR.POŚR(A1&"."&B1) działa elegancko i dzięki ci za to ale w tych kolejnych jest gdzieś błąd lub mi wyskakuje i nie wiem jak go ominąć
=JEŻELI(ADR.POŚR(A1&"."&B1)>);ADR.POŚR(A1&"."&B1);"")
=JEŻELI(ADR.POŚR($A$1&".R"&WIERSZ())>0;ADR.POŚR($A$1&".R"&WIERSZ());"")
co śmieszne poprawiłem ten błąd w jednym z dwóch coś zmieniając i chodziło ale nie zapisałem przed przeniesieniem go docelowo nie mogę dojść co poprawiłem że działało a może wpisałem tylko ADR.POŚR(A1&"."&B1), jak byś mógł sprawdzić co nie hula to był bym wdzięczny uzupełniając dane docelowo żeby brało ten wpisany arkusz3 z tabeli A1, a adres komórki brała z B1 gdzie wpisane jest R451, a dane z tabeli arkusz3R451 wynikają z formuły =MIN.K( H427:CI427; WIERSZ($K$40) ) gdzie właśnie może być 0 lub liczba dlatego przy 0 nie chce żeby mi zapełniało tabeli bo nic nie widać jak dużo zer tylko dawało puste pole przy zerze lub liczbę jeżeli się pojawi
P.S Już znalazłem przyczynę w obydwu przypadkach, dziękuje z góry jesteście wielcy!! to ja szukam dalej niemożliwych dla mnie rzeczy aby Was podpytać
=JEŻELI(ADR.POŚR(A1&"."&B1)>);ADR.POŚR(A1&"."&B1);"")
=JEŻELI(ADR.POŚR($A$1&".R"&WIERSZ())>0;ADR.POŚR($A$1&".R"&WIERSZ());"")
co śmieszne poprawiłem ten błąd w jednym z dwóch coś zmieniając i chodziło ale nie zapisałem przed przeniesieniem go docelowo nie mogę dojść co poprawiłem że działało a może wpisałem tylko ADR.POŚR(A1&"."&B1), jak byś mógł sprawdzić co nie hula to był bym wdzięczny uzupełniając dane docelowo żeby brało ten wpisany arkusz3 z tabeli A1, a adres komórki brała z B1 gdzie wpisane jest R451, a dane z tabeli arkusz3R451 wynikają z formuły =MIN.K( H427:CI427; WIERSZ($K$40) ) gdzie właśnie może być 0 lub liczba dlatego przy 0 nie chce żeby mi zapełniało tabeli bo nic nie widać jak dużo zer tylko dawało puste pole przy zerze lub liczbę jeżeli się pojawi
P.S Już znalazłem przyczynę w obydwu przypadkach, dziękuje z góry jesteście wielcy!! to ja szukam dalej niemożliwych dla mnie rzeczy aby Was podpytać
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Jak widać u mnie nie trzeba długo czekać jestem kompetentny pod tym względem:)
jest następujący problem potrzebuje mieć w tabeli liczbę 2 jeżeli wf12 jest coś a jeżeli nie ma nić to puste i niestety w tym przypadku użycie tej formuły =JEŻELI(F12>0;2;"") działa pomimo że tabela teoretycznie jest pusta to i tak pokazuje 2 działa tylko jak ma pokazać zamiast 2 to to co jest w f12 a jaknie ma w f12 nic to daje puste pole we wpisanej kratce czyli jak wpisze tak =JEŻELI(F12>0;F12;"") próbowałęm nawet dać 2 w innej tabeli zeby ją pobierało czyli dałem 2 w G4 i wpisałem inną formułe =JEŻELI(F12>0;G4;"") i dalej pokazuje czy pusta f12 czy nie to jest nadal 2
co jest przyczyną a no napewno formułą poniżej a nie powinna
w f12 znajduje sie natomiast formuła o którą walczyłem =JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
jest następujący problem potrzebuje mieć w tabeli liczbę 2 jeżeli wf12 jest coś a jeżeli nie ma nić to puste i niestety w tym przypadku użycie tej formuły =JEŻELI(F12>0;2;"") działa pomimo że tabela teoretycznie jest pusta to i tak pokazuje 2 działa tylko jak ma pokazać zamiast 2 to to co jest w f12 a jaknie ma w f12 nic to daje puste pole we wpisanej kratce czyli jak wpisze tak =JEŻELI(F12>0;F12;"") próbowałęm nawet dać 2 w innej tabeli zeby ją pobierało czyli dałem 2 w G4 i wpisałem inną formułe =JEŻELI(F12>0;G4;"") i dalej pokazuje czy pusta f12 czy nie to jest nadal 2
co jest przyczyną a no napewno formułą poniżej a nie powinna
w f12 znajduje sie natomiast formuła o którą walczyłem =JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Taki wynik oznacza, że w F12 jest coś większego od zera.
Sprawdzanie warunku typu F12>0 da wynik PRAWDA także wtedy, gdy w komórce F12 będzie jakiś inny wpis, to nie musi być liczba. Zobacz, czy przypadkiem w twojej formule
=JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
na końcu nie wpisałeś " " zamiast "". Spacja wstawiona do komórki (jej przecież nie widzisz, więc możesz sądzić, że komórka jest pusta) jest traktowana jako większa od 0
A przy okazji, "Tabela" to określenie pewnego zakresu komórek w arkuszu lub (rzadziej) synonim całego arkusza. Konkretny adres w arkuszu, to komórka (nie kratka). Aby być dobrze zrozumiany przez czytających twoje posty, powinieneś używać właściwej terminologii.
Sprawdzanie warunku typu F12>0 da wynik PRAWDA także wtedy, gdy w komórce F12 będzie jakiś inny wpis, to nie musi być liczba. Zobacz, czy przypadkiem w twojej formule
=JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
na końcu nie wpisałeś " " zamiast "". Spacja wstawiona do komórki (jej przecież nie widzisz, więc możesz sądzić, że komórka jest pusta) jest traktowana jako większa od 0
A przy okazji, "Tabela" to określenie pewnego zakresu komórek w arkuszu lub (rzadziej) synonim całego arkusza. Konkretny adres w arkuszu, to komórka (nie kratka). Aby być dobrze zrozumiany przez czytających twoje posty, powinieneś używać właściwej terminologii.
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.
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Kod: Zaznacz cały
=JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
Mówiąc wprost jeżeli wynikiem w F12 jest "", to ten warunek: "">0 jest prawdziwy.
Proponuję zastosować taką formułę:
Kod: Zaznacz cały
=JEŻELI( (F12>0)*CZY.LICZBA(F12); G4; "")
LUB
=JEŻELI( (F12>0)*(F12<""); G4; "")
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Jeszcze jedna odpowiedź, dotycząca
Zamiast budowania takiej formuły
=JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
możesz wpisać po prostu
=ADR.POŚR(F$7&"."&$C12)
i przypisać komórce (lub komórkom) spersonalizowane formatowanie, czyli format wyświetlania jaki sobie ty wymyśliłeś. A w tym przypadku tym formatem jest zapis #. Spowoduje on, że wartości wynoszące 0 (a dokładniej wszystkie, które mają część całkowitą 0 i dowolną część ułamkową) będą pokazywane jak komórka niewypełniona, zawierająca jednak wynikową wartość. Nie wiem czy ten sposób prezentacji będzie ci odpowiadał, ale wydaje się lepszym sposobem niepokazywania wyników zerowych niż generowanie formuł.
O formatowaniu komórek możesz poczytać w tym opracowaniu: https://yestok.pl/ooo/y55.php
Rozumiem, że ta wartość minimalna w twoim projekcie nigdy nie jest ujemna.charyy pisze:dane z tabeli arkusz3R451 wynikają z formuły =MIN.K( H427:CI427; WIERSZ($K$40) ) gdzie właśnie może być 0 lub liczba dlatego przy 0 nie chce żeby mi zapełniało tabeli bo nic nie widać jak dużo zer tylko dawało puste pole przy zerze lub liczbę jeżeli się pojawi
Zamiast budowania takiej formuły
=JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
możesz wpisać po prostu
=ADR.POŚR(F$7&"."&$C12)
i przypisać komórce (lub komórkom) spersonalizowane formatowanie, czyli format wyświetlania jaki sobie ty wymyśliłeś. A w tym przypadku tym formatem jest zapis #. Spowoduje on, że wartości wynoszące 0 (a dokładniej wszystkie, które mają część całkowitą 0 i dowolną część ułamkową) będą pokazywane jak komórka niewypełniona, zawierająca jednak wynikową wartość. Nie wiem czy ten sposób prezentacji będzie ci odpowiadał, ale wydaje się lepszym sposobem niepokazywania wyników zerowych niż generowanie formuł.
O formatowaniu komórek możesz poczytać w tym opracowaniu: https://yestok.pl/ooo/y55.php
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.
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: Jakiej używać reguły aby kopiowała liczby bez pustych po
Rafkus pisze:Wynikiem tej funkcji będzie wartość z pola określonego dzięki funkcji ADR.POŚR() lub tekst o długości 0 znaków - TO NIE JEST PUSTA KOMÓRKA . Jakbyś tą wynikową kolumnę posegregował rosnąco, to na początku tabeli wylądują wiersze z liczbami, natomiast na końcu tabeli wartości, których wynikiem jest ="".Kod: Zaznacz cały
=JEŻELI(ADR.POŚR(F$7&"."&$C12)>0;ADR.POŚR(F$7&"."&$C12);"")
Mówiąc wprost jeżeli wynikiem w F12 jest "", to ten warunek: "">0 jest prawdziwy.
Proponuję zastosować taką formułę:Kod: Zaznacz cały
=JEŻELI( (F12>0)*CZY.LICZBA(F12); G4; "") LUB =JEŻELI( (F12>0)*(F12<""); G4; "")
SUPER działa, a może znacie sposób albo inną aplikacje gdzie te same formuły będą działać szybciej bo ma co przeliczać i długo ładuje. ram mam 8gb i procesor wystarczający
openoffice 4.1.5
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Samo zadanie jest dość proste i użycie akurat formuł arkusza kalkulacyjnego dla jego rozwiązania raczej je utrudnia niż upraszcza. min.k jako technika sortowania + adresowanie pośrednie są po prostu nieefektywne.
Niżej zamieszczam pewne studium przypadku. Warto się z nim zapoznać tylko wtedy, gdy rozwiązanie podane wyżej jest mało efektywne, z powodu liczby danych albo liczby arkuszy.
Dla ilustracji programik w modnym ostatnio (słusznie) Pythonie.Kluczowa jest wyizolowana instrukcja pośrodku. Cała reszta służy przeczytaniu danych i wypisaniu wyników.
Ta wersja działa na plikach tekstowych (csv) i produkuje wynik tekstowy dopisywany do końca pliku, z którego pierwszego wiersza pobrano dane.
Na przykład zawartość plikumodyfikuje do postaci
Nic nie stoi na przeszkodzie, by ten pomysł zaadaptować do współpracy z Calcem jako makropolecenie,
np. działające na bieżącym arkuszu bieżącego skoroszytu albo na całym bieżącym skoroszycie strona po stronie. To zależy od przewidywanego sposobu użycia. Patrz niżej.
Niżej zamieszczam pewne studium przypadku. Warto się z nim zapoznać tylko wtedy, gdy rozwiązanie podane wyżej jest mało efektywne, z powodu liczby danych albo liczby arkuszy.
Dla ilustracji programik w modnym ostatnio (słusznie) Pythonie.
Kod: Zaznacz cały
nazwapliku = 'a.txt'
separator=' '
with open(nazwapliku) as p:
dane = p.readline().split(separator)
dane = sorted([ int(x) for x in dane if x.isdigit() ])
with open(nazwapliku, 'a') as p:
for x in dane:
p.write('{}\n'.format(x))
Ta wersja działa na plikach tekstowych (csv) i produkuje wynik tekstowy dopisywany do końca pliku, z którego pierwszego wiersza pobrano dane.
Na przykład zawartość pliku
Kod: Zaznacz cały
3 55 12 _ 77 21 _ _ 33 11 1 0 2
Kod: Zaznacz cały
3 55 12 _ 77 21 _ _ 33 11 1 0 2
0
1
2
3
11
12
21
33
55
77
np. działające na bieżącym arkuszu bieżącego skoroszytu albo na całym bieżącym skoroszycie strona po stronie. To zależy od przewidywanego sposobu użycia. Patrz niżej.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Jakiej używać reguły aby kopiowała liczby bez pustych po
Ad hoc adaptacja jako makra dla Calca mogłaby wyglądać tak:
Jak tego użyć:
* zapisać kod w pliku z rozszerzeniem .py – z DOKŁADNYM zachowaniem układu graficznego tekstu: podział na wiersze, liczba spacji na początku każdego wiersza; kodowanie UTF-8
* umieścić kopię tego pliku w osobistym katalogu konfiguracyjnym pakietu, w podfolderze Scripts/python (Scripts raczej istnieje, python być może trzeba utworzyć)
* odpalić Calca, otworzyć jakikolwiek skoroszyt z liczbami i nie-liczbami w pierwszym wierszu
* wybrać z menu Narzędzia/Makra/Zarządzaj/Python/Moje makra/(znajdź plik)/(rozwiń)/ZrobTo/[Uruchom]
* zapewne zadziała... miejmy nadzieję
* warto zmienić nazwę funkcji (ZrobTo jest naprawdę głupią nazwą)
* warto pomyśleć nad zamierzonym sposobem użycia, tak żeby ze szkicu zrobić dopracowane pod względem wygody narzędzie
* warto podpiąć pod skrót klawiszowy żeby nie grzebać w menu.
Kod: Zaznacz cały
def ZrobTo():
# ile danych wczytać
n = 100
# z którego wiersza
wi = 0
# do której kolumny wpisać wynik
ko = 0
# od którego wiersza wpisać wynik
wo = 1
# na którym arkuszu pracować
d = XSCRIPTCONTEXT.getDocument()
a = d.getCurrentController().getActiveSheet()
# tu zaczyna się właściwa praca
dane = [ a.getCellByPosition(i, wi).getString() for i in range(n) ]
dane = sorted([ int(x) for x in dane if x.isdigit() ])
for i, x in enumerate(dane):
a.getCellByPosition(ko, i+wo).setValue(x)
Jak tego użyć:
* zapisać kod w pliku z rozszerzeniem .py – z DOKŁADNYM zachowaniem układu graficznego tekstu: podział na wiersze, liczba spacji na początku każdego wiersza; kodowanie UTF-8
* umieścić kopię tego pliku w osobistym katalogu konfiguracyjnym pakietu, w podfolderze Scripts/python (Scripts raczej istnieje, python być może trzeba utworzyć)
* odpalić Calca, otworzyć jakikolwiek skoroszyt z liczbami i nie-liczbami w pierwszym wierszu
* wybrać z menu Narzędzia/Makra/Zarządzaj/Python/Moje makra/(znajdź plik)/(rozwiń)/ZrobTo/[Uruchom]
* zapewne zadziała... miejmy nadzieję
* warto zmienić nazwę funkcji (ZrobTo jest naprawdę głupią nazwą)
* warto pomyśleć nad zamierzonym sposobem użycia, tak żeby ze szkicu zrobić dopracowane pod względem wygody narzędzie
* warto podpiąć pod skrót klawiszowy żeby nie grzebać w menu.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)