A blogban leírtak a szerzők saját véleménye, és nem a munkáltatójuké.

Java Native Interface tanulságok

Július környékén kicsit írtam egy alkalmazást, ami JNI-n keresztül ért el natív C-s könyvtárakat. A kísérletből származó tapasztalataimat most megosztom veletek.
Continue reading Java Native Interface tanulságok

Excel optimalizáció

A héten egy viszonylag nagy táblázatot kellett összeállítnom az AIS middleware robosztusság tesztek eredményeiből. A viszonylag nagy azt jelenti, hogy volt kb 145000 sorom, amiknek nagy részében képlettel kellett kiszámolni dolgokat, szóval nem mindegy a sebesség.

1. Keresés

Értékek keresésére viszonylag sok függvény áll rendelkezésünkre. Ezek közül az FKERES (VLOOKUP) a legadvancedabb. És az esetek többségében elég is, de lineárisan keres. Emiatt nagy tábláknál használhatatlan.

A KERES (LOOKUP) függvény ezzel szember binárisan keres. A keresett érték tömbnek növekvő sorrendben rendezettnek kell lennie emiatt.

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

LOOKUP(lookup_value,lookup_vector,result_vector)

Még így is egy 1100000 (hivatkozások) * 43000-s (kulcsok) update eltart egy pár másodpercig. FKERES-sel viszont kivárhatatlan.

2. Automatikus kitöltés

Nagyon hasznos funkció, hogy a jobb alsó sarokban levő kis négyzettel automatikusan kitölthetünk cellákat. Többtízezer cella esetén azonban még ez sem elég segítség.Mivel API-ból is elérhető ez a funkció, írtam egy kis makrót, amivel bármennyi cellát automatikusan kitölthetünk lefelé:


Sub filldown()
maxindex = Cells(2, 1).End(xlDown).Row
copyFormula = ActiveCell.Formula
Set destinationRange = ActiveSheet.Range(ActiveCell, Cells(maxindex, ActiveCell.Column))
ActiveCell.AutoFill destinationRange
End Sub

A maxindex képletét megváltoztatva igazítani kell az igényeidhez, de másra nincs szükség. Az éppen aktuális cellában levő formulát sokszorozza lefelé a megfelelő számú cellába.

Most ennyi jutott eszembe. Még ráadásként itt  egy listát az angol függvények magyar megfelelőivel, meg még egy csomó más nyelvvel.

Continue reading Excel optimalizáció