sumowanie co czwartej komórki w nowym wierszu

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
cmasterb
Posty: 6
Rejestracja: pt paź 23, 2015 8:33 pm

sumowanie co czwartej komórki w nowym wierszu

Post autor: cmasterb »

Witam.

Potrzebuję przetworzyć sto tysięcy wierszy z 96 kolumnach (w różnych plikach) w taki sposób, by pod każdym z nich wstawić nowy, pusty wiersz i wstawienie w tym nowym wierszu 1/4 sumy czterech komórek powyżej się znajdujących (załóżmy, że startujemy z komórki A1 - w komórce B4 ma się znaleźć suma komórek A1, A2, A3, A4 pomnożonej przez 0,25, w komórce B8 0,25 * suma komórek A5, A6, A7, A8 i tak dalej...).

Próbowałem zrobić takie makro przez rejestrację czynności, ale niestety, nie potrafię sobie poradzić z oderwaniem makra od konkretnych komórek do "wzoru" w jakim ma działać makro. W załączeniu plik ze skryptem, który uzyskałem.

Proszę o pomoc w jego zmodyfikowaniu tak, żeby potrafił sam przejść od pierwszego do ostatniego wiersza tabeli.

z góry dziękuję i pozdrawiam,
cmasterb
Załączniki
makrowstawianie.txt
uzyskany z rejestratora skrypt
(24.58 KiB) Pobrany 197 razy
Win 8.1 + OpenOffice 4.1.0
Jan_J
Posty: 4583
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: sumowanie co czwartej komórki w nowym wierszu

Post autor: Jan_J »

cmasterb pisze:Witam.

Potrzebuję przetworzyć sto tysięcy wierszy z 96 kolumnach (w różnych plikach) w taki sposób, by pod każdym z nich wstawić nowy, pusty wiersz i wstawienie w tym nowym wierszu 1/4 sumy czterech komórek powyżej się znajdujących (załóżmy, że startujemy z komórki A1 - w komórce B4 ma się znaleźć suma komórek A1, A2, A3, A4 pomnożonej przez 0,25, w komórce B8 0,25 * suma komórek A5, A6, A7, A8 i tak dalej...).
Jeżeli chcesz wstawiać tak jak piszesz pusty wiersz, to w B5 masz umieścić średnią z A1:A4, dalej w B10 średnią z A6:A9 -- bo się adresy zmienią. Wstawianie wierszy wymaga programowania.

Natomiast jeśli chcesz zrobić podsumowania tak jak piszesz, z boku -- tj. w B4 średnia z A1:A4; w B8 średnia z B5:B8 itd. -- poradzisz sobie formułami. W B4 wpisz:

Kod: Zaznacz cały

=jeżeli(mod(wiersz(); 4)=0; średnia(A1:A4); "")
i skopiuj w dół wzdłuż danych.

Możesz też uzyskać średnie z czwórek w spójnej kolumnie używając funkcji przesunięcie(). W C1 wpisz:

Kod: Zaznacz cały

=średnia(przesunięcie(A$1;4*(wiersz()-1);0;4;1))
i skopiuj w dół, ale tylko tyle razy, ile jest bloków czwórkowych.
JJ
LO (24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
cmasterb
Posty: 6
Rejestracja: pt paź 23, 2015 8:33 pm

Re: sumowanie co czwartej komórki w nowym wierszu

Post autor: cmasterb »

Bardzo dziękuję.
O, świetnie - nawet nie pomyślałem, że można problem rozwiązać łatwiej niż makrem.
A jak w spójnej kolumnie uzyskać wyniki gdzieś całkiem z boku? manipulując wartością po "wiersz" (czyli -1)?
Win 8.1 + OpenOffice 4.1.0
cmasterb
Posty: 6
Rejestracja: pt paź 23, 2015 8:33 pm

Re: sumowanie co czwartej komórki w nowym wierszu

Post autor: cmasterb »

Ogarnąłem, manipulacja wartością 4 przyniosła pożądany efekt. Temat uważam za rozwiązany.
Win 8.1 + OpenOffice 4.1.0
ODPOWIEDZ