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

#1 3. 4. 2009 14:27:30

HansH1
Člen
Registrace: 28. 6. 2008
Příspěvků: 14

Vyhledání posledního záznamu v tabulce

Potřeboval bych poradit f-ci, která by mě vrátila hodnotu posledního záznamu v tabulce která je v jiném listě. Asi to bude banalita, ale ne a ne ji najít. Díky moc!

Offline

#2 4. 4. 2009 07:42:17

Orinh
Člen
Registrace: 20. 6. 2006
Příspěvků: 17

Re: Vyhledání posledního záznamu v tabulce

Nevím zda je pro tuto činnost speciální fce, ale lze to realizovat pomocí podmínky a pomocného sloupce. Tedy pokud není tabulka hodnot velice dlouhá.

Podmínka v pomocném sloupci testuje zda není buňka o řádek níž ve sloupci hodnot prázdná. Pokud ano vložit obsah nad testovanou buňkou do pomocného sloupce (poslední hodnota). Součtem pomocného sloupce získáte poslední hodnotu do konkrétní buňky.

Má to nevýhodu, která výsledek učiní nepoužitelným a to nesouvislá data v tabulce. Vynechané prázdné buňky za neznámé hodnoty.

Offline

#3 6. 4. 2009 14:52:15

HansH1
Člen
Registrace: 28. 6. 2008
Příspěvků: 14

Re: Vyhledání posledního záznamu v tabulce

Pomocí podmínek mě to napadlo taky, ale je to takové nehezké řešení a ta nepoužitelnost mě taky trápí, protože s tím výsledkem potřebuji dále pracovat. Tabulka kde se má hledat není velká (6 řádků a 4 sloupce). Uměl by někdo udělat nějaké makro (stejnou tabulku mám na stejném místě v asi 30ti listech a potřebuju z nich ty poslední data sjednocovat do jedné tabulky)? S programováním nejsem moc kamarád...

Offline

#4 6. 4. 2009 15:45:44

Ondra.kl
Člen
Registrace: 30. 9. 2008
Příspěvků: 933

Re: Vyhledání posledního záznamu v tabulce

... a nešel by ten záznam identifikovat podle toho že je tam vždy použit určitý text? třeba "Celkem"

Offline

#5 6. 4. 2009 21:38:00

PetrValach
Člen
Registrace: 24. 5. 2007
Příspěvků: 561

Re: Vyhledání posledního záznamu v tabulce

Vůbec netuším, zda poradím. Kolega/kamarád mi poslal kód, který platí pro MS Office, ale pokud rozumíte Basicu, snad si to předěláte do makra:
Public Function getlastvalue()
    Dim i As Long
    Dim lr  As Long
    Dim lc As Long
    With Sheets(Sheets.Count)
        For i = 1 To Columns.Count
            If lr <= .Range(.Cells(.Rows.Count, i).Address).End(xlUp).Row Then
                lr = .Range(.Cells(.Rows.Count, i).Address).End(xlUp).Row
                lc = i
            End If
        Next
    End With
    getlastvalue = Sheets(Sheets.Count).Cells(lr, lc).Value
End Function


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#6 15. 4. 2009 19:33:41

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Vyhledání posledního záznamu v tabulce

IMHO na to není žádná funkce. Nápad s nějakou identifikací do dobrý, pak by se dalo použít např. VLOOKUP. Nicméně se takhle naprázdno špatně vymýšlí, řešení může být celá řada - můžete sem dát link na ukázkový ODS soubor?

Offline

#7 16. 4. 2009 14:23:46

HansH1
Člen
Registrace: 28. 6. 2008
Příspěvků: 14

Re: Vyhledání posledního záznamu v tabulce

Děkuji za nápady. Byl jsem dlouhou dobu pryč, ale udělám nějaký ukázkový soubor a upnu ho...

Offline

#8 19. 4. 2009 10:28:45

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Vyhledání posledního záznamu v tabulce

Tak jsem po nějakých útrapách naprogramoval funkci LASTINRANGE, která má jako vstupní parametr oblast buněk a vrací hodnotu poslední nenulové buňky. NEVÝHODOU je, že ignoruje vložené nuly, což je daň za její jednoduchost.
Soubor ke stažení: http://ooo.e-hanus.cz/funkce_lastinrange.01.ods
Testováno v Calc 3.0.1

Dejte vědět, jestli to takto vyhovuje.

Editoval hanus (19. 4. 2009 10:30:13)

Offline

#9 12. 9. 2009 21:13:28

HansH1
Člen
Registrace: 28. 6. 2008
Příspěvků: 14

Re: Vyhledání posledního záznamu v tabulce

hanus napsal(a)

Tak jsem po nějakých útrapách naprogramoval funkci LASTINRANGE, která má jako vstupní parametr oblast buněk a vrací hodnotu poslední nenulové buňky. NEVÝHODOU je, že ignoruje vložené nuly, což je daň za její jednoduchost.
Soubor ke stažení: http://ooo.e-hanus.cz/funkce_lastinrange.01.ods
Testováno v Calc 3.0.1

Dejte vědět, jestli to takto vyhovuje.

omlouvám se za nepřítomnost. Tato funkce naprosto vyhovuje, jenom musím najít způsob, jakým to dostat do svého souboru, ale to už si vygoogluju :-) Ještě jednou mockrát děkuji za pomoc!!

Offline

#10 12. 9. 2009 21:30:38

hanus
Člen
Místo Olomouc
Registrace: 29. 11. 2006
Příspěvků: 573
Web

Re: Vyhledání posledního záznamu v tabulce

Je to tady na potrále:
http://www.openoffice.cz/navody/program … plitstring
http://www.openoffice.cz/navody/program … astinrange

Makra jsou obyč text, takže to vykopírujte z toho vzorového souboru a vložte do toho vašeho nebo do vlastních maker. V tom prvním článku je stručně popsáno, jak se zachází s editorem maker v Basicu.

Editoval hanus (12. 9. 2009 21:33:50)

Offline

#11 24. 9. 2009 19:59:44

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 844

Re: Vyhledání posledního záznamu v tabulce

Proč makra? Stačí např.:

=OFFSET(A1;MAX(IF(A1:A1000<>"";ROW(A1:A1000)-ROW(A1);0));0)

matice  (ctrl+shift+enter)

Pokud je celá tabulka prázdná, prázdnou hodnotu.

Offline

Zápatí