Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 9. 3. 2019 12:58:00

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 36

Řádkování podle počtu

Zdravím,
snažím se přijít na jednu věc a to jak vygenerovat počet řádků pomocí počtu viz obrázek pro lepší pochopení.
Radkovani.png
Obarvil jsem buňky pro snadné pochopení. Když je nula tak by tam výsledek nebyl a kolik bude číslo tolikrát by řádek vypsal. Obráceně bych to uměl že z výsledku spočítat kolikrát se tam nachází ale obrácený postup neumím.

Offline

#2 9. 3. 2019 13:10:04

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 98

Re: Řádkování podle počtu

Zdravím,

=COUNTIF($D$2:$D$10;"=" & A2)

a zkopírovat do dalších buněk ...

Offline

#3 9. 3. 2019 13:13:32

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 98

Re: Řádkování podle počtu

Koukám, že to chcete obráceně, tak asi jedině makro...

Offline

#4 9. 3. 2019 13:15:14

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 36

Re: Řádkování podle počtu

JJ obráceně, proto nad tím dumám jak na to.

Offline

#5 9. 3. 2019 13:26:16

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 98

Re: Řádkování podle počtu

Sub Test
	Sheet = ThisComponent.Sheets.getByIndex(0)
	j = 1
	For i= 1 To 5
		Kod = Sheet.getCellByPosition(0,i).String
		If Kod<>"" Then 
			Pocet = Sheet.getCellByPosition(1,i).Value
			For k = Pocet To 1 Step -1 
				Sheet.getCellByPosition(4,j).String = Kod 
				j = j + 1
			Next 
		Else
			Exit Sub
		EndIf 
	Next 
End Sub

Funkce prohledává první sloupec, pokud tam něco bude [Kod], pak provede následující, jinak končí.
Přečte v sousedním sloupci [Počet] a tolikrát jej zapíše do čtvrtého sloupce.

Editoval LADER (9. 3. 2019 13:31:49)

Offline

#6 9. 3. 2019 13:44:27

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 36

Re: Řádkování podle počtu

Wow ono to funguje...
Radkovani2.png

Teď budu vypadat že si vymýšlím ale původně jsem hledal vzorec pač ten si umím opravit ale tomuhle moc nerozumím. Jde o to že zdroj dat je v jiném listě třeba se jménem "HLAVNI". Zbytek tuším že odvodím, jako na jakém řádku má začít hledat a kde skončit a kam výsledek vypsat... Mohl bych poprosit ještě o tuto drobnost prosím.

Mockrát děkuji.

Offline

#7 9. 3. 2019 14:11:24

LADER
Člen
Registrace: 3. 4. 2013
Příspěvků: 98

Re: Řádkování podle počtu

Sub Test

	' Tady si vyberu list podle názvu:
	Sheet = ThisComponent.Sheets.getByName("List1")
	
	' Začnu zapisovat na druhý řádek (číslování řádků začíná od nuly)
	RadekZapis = 1
	' Začnu zapisovat do páteho sloupce (číslování sloupců začíná od nuly)
	SloupecZapis = 4
	
	' Kód je umístěn v prvním sloupci
	SloupecKod = 0
	' Počet opakování je umístěn v druhém sloupci:
	SloupecPocet = 1
	
	' Začnu prohledávat od druhého řádku (číslování řádků začíná od nuly) do šestého (to je ta pětka)
	For RadekCteni = 1 To 5
		' Přečteme kód
		Kod = Sheet.getCellByPosition(SloupecKod, RadekCteni).String
		
		' Zkontrolujeme jestli tam něco je
		If Kod<>"" Then 
			' Ano je
			
			' Přečteme počet opakování
			Pocet = Sheet.getCellByPosition(SloupecPocet, RadekCteni).Value
			
			' Tolikrát zapíšene řádků
			For k = Pocet To 1 Step -1 
				' Zápis
				Sheet.getCellByPosition(SloupecZapis, RadekZapis).String = Kod
				' Vypočtu následující řádek
				RadekZapis = RadekZapis + 1
			Next 
		Else
			' Nic jsem nenašel - konec programu
			Exit Sub
			
		EndIf 
	Next 
End Sub

Offline

#8 10. 3. 2019 18:35:17

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 36

Re: Řádkování podle počtu

Mockrát děkuji, moc mi to pomohlo.

Offline

#9 21. 3. 2019 17:33:58

bajtik
Člen
Registrace: 22. 10. 2017
Příspěvků: 24

Re: Řádkování podle počtu

Řešil jsem tu vloni stejný problém a použil kabiho skvělé řešení čistě vzorcem (s jedním pomocným sloupcem), doporučuji:

https://forum.openoffice.cz/viewtopic.php?id=4594

Offline

#10 19. 5. 2019 13:48:11

barevnej
Člen
Registrace: 6. 8. 2015
Příspěvků: 36

Re: Řádkování podle počtu

Aha to je zajímavé, i když to makro už funguje také dobře.

Offline

Zápatí