Halihó!
Kapok különböző forrásokból táblázatokat. Egyelőre mindenki vagy csv-ben vagy valamilyen excel formátumban (pl. xlsx) küldi, amije van. Néhány naponta jellemzően új forrás kezd el adatokat küldeni, a korábbiaktól eltérő formátumban. Eddig van 5, még kb. 10-re számítok hamar, de később ritkábban, még akár több 10, akár 100 is jöhet majd.
Saját felhasználásra ki szeretnék nyerni adatokat mindegyikből. Minden eddigihez kézzel elkészítettem egy adatkinyerő/formázó táblázatot Libreoffice-ban, amibe az új adatokat bedobom, és a számomra kellő adat kijön a másik oldalán. Vannak egyszerűek és vannak olyanok, amikkel megszenvedtem. Leírom a jellemző kihívásokat. Szeretném, ha tanácsot adnátok vagy abban, hogy ezt vagy azt a lépést hogy lehet felgyorsítani, vagy az egész kézi matyizást hogy lehetne program írással automatizálni. A cél, hogy a következő adatkinyerő táblázatok elkészítése gyorsabb legyen és kevesebbet szívjak.
Formulákkal elég sok tapasztalatom van (de messze nem ismerek mindent), Libreoffice tudom, hogy támogat programozást különféle nyelveken, de nem próbáltam még.
- Egy munkalapról egy másikra szeretném két oszlop tartalmát átmásolni. Ezt jelenleg úgy csinálom, hogy új munkalap, A2 cellába beírom mondjuk azt, hogy =$Worksheet.Q2, A3 cellába mondjuk azt, hogy =$Worksheet.L2, aztán kijelölöm az A2 és A3 cellát, megfogom a kijelölés jobb alsó sarkát az egérrel, és lehúzom. Tartom. Tartom. Tartom. Elmegy mondjuk 30 másodperc. Elengedem. Az első 3000 sort lemásolta. Aztán mondjuk ugyanezt egy másik tartománnyal. Az eredmény jó, a kijelölés húzása helyett nem lenne baj valami gyors módon azt mondani, hogy 1389 alkalommal másold le ezt a két cellát. A két oszlop copy paste másolása a másik munkalapra nem jó, mert ha új adatot küldenek, akkor ahová áthoztam az adatot, ott is módosulnia kell.
- Egy oszlopban szétválasztandó adatok vannak. Mondjuk "AAAAA: 123456". Ebből nekem mondjuk csak a szám kell. Formulát nem találtam erre, szóval most minden alkalommal, amikor új adat jön, az oszlopot lemásolom, kijelölöm, Data/Text to Columns, és így kézzel két oszlopba vágom a tartalmát. Onnan már a formula felveszi. Ezt szeretném automatizálni.
- Van egy oszlop. Számok vannak benne, de valami ismeretlen okból szövegként eltárolva. Pl. ami 10-nek látszik, az valójában '10. Nekem szám kellene, mert pl. 3 oszlop közül meg kellene mondanom, melyik a legkisebb, de a =min(J6,L6,M6) 0-t ad 10 helyett, ha a J6-ban '10 van 10 helyett. Ezt megint a Data/Text to Columns használatával tudom javítani, amit megint csak automatizálni szeretnék.
Hozzászólások
Biztos páran megsértődnek, de használj Excel-t. Ezek a funkciókra ott a Powerquery.
Nem használtam még Powerquery-t. Le tudod írni röviden, hogy a fenti problémát hogyan közelítené meg?
disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.
A powerquery-t egy bena sql-kent is felfoghatod. Van sokfele bemeneti szuroje. Johet az adat mindenhonnan is.
Masszirozhatod az adatot majd kitolhatod Excel tablakba.
Ha nagyon komoly a processzed, akkor Power Apps, de az nem olcso.
Alapokat szerintem a libreoffice is tud amugy. Ott is van akar web query meg Base.
Youtube: libreoffice query
Leegyszerűsítve: Képes arra, hogy egy adatforráson(táblázaton) műveleteket végezzen. Ezeket a műveleteket képes elmenteni, majd egy másik hasonló szerkezetű adatforráson végrehajtani. Ismétlődő feladatok automatizálására lehet használni. Nem kell hozzá programozási ismeret. Haladó Excel ajánlott.
1. Jelöld ki a forrást, Data → More Filters → Standard Filter… Itt állítsd be feltételnek, hogy Not Empty, az Optionsben legyen bepipálva a Keep filter criteria, a Copy results to-nál add meg a kezdő cellát, ahová másolja. Ha frissül a forrásadatod, bármelyik celláján állva a Data → Refresh Range frissíteni fogja a másolatot.
2. és 3. A DECIMAL függvénnyel számmá konvertálhatsz, a REGEX-szel meg olyan formára konvertálod a forrást, amire nem szégyelled. Pl.: =DECIMAL(REGEX(F3;"^[^:]+: ";"");10)
Megnézem, köszi
disclaimer: ha valamit beidéztem és alá írtam valamit, akkor a válaszom a beidézett szövegre vonatkozik és nem mindenféle más, random dolgokra.
Ha csv, írj rá awk scriptet, ami megcsócsálja, átalakítja, feldolgozza, majd az awk által generált kimenetet importáld be.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
nodejs:
exeljs vagy node-xlsx
Ezt nagy valószínűséggel még az AI is megoldja hibamentesen.
Semmiképp sem csinálnám LO -ban akkor inkább Excel + VB macro ha van még olyan.
Megy LO-ban is: LibreOffice Basic. Mondjuk személy szerint inkább python (pandas.DataFrame), vagy R (dataframe vagy data.table). Mindkettő megy Jupyter Notebook-ból is, kezdőnek egyszerűbb. Vagy lehet használni gnumeric-et táblázatkezelőnek, ott nincs saját makro nyelv, python-ban scriptelhető.
A 2-esre itt egy "egyszerű képlet. Feltétel, A1-ben van a hülye "akármi: szám" adatod, és ahogy a példában írtad szóközzel van elválasztva:
=MID( A1; SEARCH( " "; A1; 1 ) + 1; LEN( A1 ) - SEARCH( " "; A1; 1 ) )
illetve ugyanez kicsit rövidebben és nem kell 2x kerestetni:
=RIGHT( A1; LEN( A1 ) - SEARCH( " "; A1; 1 ) )
tl;dr
Egy-két mondatban leírnátok, hogy lehet ellopni egy bitcoin-t?
Szerintem minden problémára a megfelelő eszközt. A bejövő adat szűrése és egységes formátumra konvertálása ismétlődő feladat. ha egy feladóhoz megvan a "sablon" akkor azt újra lehet használni 100x. Erre szerintem programozás (valamilyen szkript nyelv) való. Nem tudom mennyire lehet az MS formátumot pl pythonból olvasni. Ha ez gond, akkor marad egy kézzel végzendő, "ahogy van kimentem CSV -be" lépés. Az egységes formátum attól függ, mivel fogod az adatot feldogozni. Ha marad a LO, akkor lehet ez CSV, mert az tutira importálható, de ha a LO is tud SQL szervertől kérdezni, akkor mehet az egységes adat oda is. (Csak példák, majd kitalálod.)
Ha megvan az egységesítés, és változó, hogy mit kell kinyerni az adatból, akkor jó megoldás a táblázat kezelő, mint könnyen formára szabható jelentés készítő. Adatot be kell importálni, majd a táblázat számol, grafikont készít, stb.
Ami eszembe jutott, hogy sejtésem szerint jó lehet a faladatra az a Jupyter notebook. Ez egy interaktív python alapú környezet, amit táblázatkezelő helyett lehet használni, ha a python jobban kézre áll. Sosem használtam, majd mások kijavítanak ha butaságot beszélek. Link: https://jupyter.org/
python / pandas / Dataframe https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataF…
igaz nem LO, de ugyis inkabb programozni szerettel volna.
excel es csv fileokat irhatsz/olvashatsz dataframebol/be konnyen.
sql tapasztalattal a dataframe muveletek erthetobbek, mint az LO: excel szeru fuggvenyei szerintem.