IT pro otrlé

O lidech, o vztazích, o politice, o názorech, o opicích a o ufonech.

Moderátor: Faskal

Odpovědět
Sosacek
Příspěvky: 25784
Registrován: 14. 7. 2004, 19:30

Re: IT pro otrlé

Příspěvek od Sosacek »

Aha takze JS forEach je mapa?

Nemohli to pojmenovat normalne?

EDIT: koukam ne uplne spis to pripomina Java streamy
“And, for an instant, she stared directly into those soft blue eyes and knew, with an instinctive mammalian certainty, that the exceedingly rich were no longer even remotely human.”
― William Gibson, Count Zero
Uživatelský avatar
Antharon
Příspěvky: 6947
Registrován: 24. 10. 2007, 16:33
Bydliště: Šenkvice

Re: IT pro otrlé

Příspěvek od Antharon »

Sosacek píše: 31. 12. 2022, 08:15 Aha takze JS forEach je mapa?

Nemohli to pojmenovat normalne?

EDIT: koukam ne uplne spis to pripomina Java streamy
Do javascriptu pridali niekolko array funkcii
forEach spusta funkciu nad itemami, map robi to iste, ale vracia mapu navratovych hodnot, filter podla boolovskej hodnoty filtruje itemy, some spusta funkciu kym nenajde item, ktory vrati true a podobne.
Moaaaar!!!! - [móur] - The provided level of material relevant to my interests is insufficient to meet my personal required needs.
Uživatelský avatar
York
Příspěvky: 17483
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York »

Sosacek píše: 31. 12. 2022, 08:15 Aha takze JS forEach je mapa?
Array.forEach() vrací undefined, takže ne. Je to prostě jen for cyklus, kterej nad každym elementem zavolá funkci. Mapa je Array.map().
Uživatelský avatar
Faskal
Moderátor
Příspěvky: 9048
Registrován: 20. 11. 2006, 20:59
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Faskal »

Měl bych otázku. Jaká je podle vás cesta nejmenšího odporu k řešení následujícího problému?

Program mě zahrne dvaceti, nebo taky dvěma sty excelovskými soubory, a já bych potřeboval z každého vzít z listu tři sloupec o a vykopírovat je všechny postupně do nového souboru, ať už csv, nebo zase Excel.

Předpokládám, že hlavní problém je asi má nerozhodnost v tom, jestli oprašovat mé mizivé znalosti pythonu, využít toho k proražení odporu začít se učit R, nebo úsilí nevynaložit nějak jinak. Program je v java nebo v čem a do csv, se kterým bych se třeba nějak popral, exportovat nabízí, ale v mých rukou neumí.
Máte na to nějaký názor?
... ano, chtěl jsem zničit svět. Ale ne takhle.
Staré zápisy z her, aktuálně: Tannhäuserova brána - Claudius II, Karak - Erbald.
Uživatelský avatar
York
Příspěvky: 17483
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York »

Zkus pogooglit, jestli existuje konvertor z excelu do něčeho rozumnějšího, třeba do toho cvs.
Uživatelský avatar
Sarsaparillos
Příspěvky: 1169
Registrován: 27. 8. 2011, 10:15

Re: IT pro otrlé

Příspěvek od Sarsaparillos »

Pokud ty excelovské soubory nejsou nijak brutálně velké a jejich export pomalý, tak s výsledkem bych asi pomoct uměl: Napsal bych prostě jednoduché makro, které by postupně všechny ty soubory prošlo a to vykopírování do nového souboru provedlo za tebe.
Uživatelský avatar
Antharon
Příspěvky: 6947
Registrován: 24. 10. 2007, 16:33
Bydliště: Šenkvice

Re: IT pro otrlé

Příspěvek od Antharon »

Urcite sa to da exportovat do csv a potom spracuvat cez nejaky programovaci jazyk, alebo nejaky soft, alebo je este moznost skonvertovat to na google sheets, ktorym je mozne pisat javascriptove skripty rovno do formule v bunke
Moaaaar!!!! - [móur] - The provided level of material relevant to my interests is insufficient to meet my personal required needs.
Uživatelský avatar
Sarsaparillos
Příspěvky: 1169
Registrován: 27. 8. 2011, 10:15

Re: IT pro otrlé

Příspěvek od Sarsaparillos »

Tak mě ještě napadlo, že jednodušší by to bylo tak, že si ta data importuješ do datového modelu a upravíš v PowerPivotu. Mohu demonstrovat, kdybys měl zájem. Nevyžaduje to makra a další práci navíc, ale neobchází to tu potřebu nejprve vygenerovat všechny soubory v excelu.

EDIT: Chápu správně, že ti stačí vykopírovat ten sloupec O bez informace o tom, ze kterého souboru byl vykopírovaný, že ano?
Uživatelský avatar
Passingby
Příspěvky: 1639
Registrován: 13. 10. 2021, 16:41

Re: IT pro otrlé

Příspěvek od Passingby »

  1. Windows Scripting Host + JavaScript (i když oni mu tam možná pořád ještě říkají JScript; příp. VBA) automatizace Excelu - vykopírování sloupců z Excelu do texťáku/CSV (do skriptu se dají z příkazové řádky předat parametry, což jde použít pro název vstupního a výstupního souboru); tohle by se na netu snad najít dalo
  2. Volání skriptu zabalit do .bat (asi něco jako "wscript vykopirovani_sloupcu.js /nologo %1 %2", při testování se před to dá hodit "echo"; soubory ideálně bez mezer v názvech, to je ve Windows vždycky PITA)
  3. dir /b > temp_seznam_souboru.txt (/b vypíše jenom názvy souborů a adresářů bez velikostí, časů změn atd.)
  4. temp_seznam_souboru.txt si otevřít v Excelu, podle potřeby ručně promazat a vzorečkem si z toho udělat .bat, který pro všechny ty soubory zavolá skript nachystaný v 1. kroku
  5. Pak podobným způsobem udělat něco na slepení těch souborů (nejspíš pomocí "type %1 >> slepeny_soubor.txt" volanýho postupně pro všechny ty vytvořený CSV - nesmí mít hlavičky, ať je pak nemusíš mazat)
Asi to vypadá složitě (a úplně triviální by to nebylo, navíc je to dost krutej oldschool), ale je to rozdělený na jednotlivý kroky, který by samy o sobě měly být jednoduše dohledatelný, realizovatelný a otestovatelný. Ale dlouho už jsem nic podobnýho nepsal, tak to ber jenom jako směr, kterým by možná mohlo ležet řešení. (A ten Python by pro tebe možná byl nakonec i jednodušší...)

wscript
Windows Scripting Host
Verify you are a human.
It's just an overreaction. In a few months, nobody will remember the drama.
Uživatelský avatar
Sarsaparillos
Příspěvky: 1169
Registrován: 27. 8. 2011, 10:15

Re: IT pro otrlé

Příspěvek od Sarsaparillos »

Tak jsem ověřil na příkladu můj návrh s PowerPivot a je to funkční s prací na cca 3 minuty. Kdybys měl zájem, dej vědět a vysvětlím, jak na to.
Uživatelský avatar
Faskal
Moderátor
Příspěvky: 9048
Registrován: 20. 11. 2006, 20:59
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Faskal »

Všem díky moc! Zítra se na to vrhnu a zkusím vybrat něco, co bude mít dobrý poměr toho, aby to nebylo moc pracné a abych se něco naučil 8)
Jinak jméno souboru se zachovat nemusí, je o málo víc než index.
... ano, chtěl jsem zničit svět. Ale ne takhle.
Staré zápisy z her, aktuálně: Tannhäuserova brána - Claudius II, Karak - Erbald.
Uživatelský avatar
Eleshar_Vermillion
černá eminence
Příspěvky: 18573
Registrován: 18. 6. 2003, 21:31
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Eleshar_Vermillion »

Faskal píše: 30. 5. 2023, 18:25 Měl bych otázku. Jaká je podle vás cesta nejmenšího odporu k řešení následujícího problému?

Program mě zahrne dvaceti, nebo taky dvěma sty excelovskými soubory, a já bych potřeboval z každého vzít z listu tři sloupec o a vykopírovat je všechny postupně do nového souboru, ať už csv, nebo zase Excel.
Makro. Když zkusím něco vytáhnout z nosu, tak toto:

Kód: Vybrat vše

Dim file as String: File = Dir("adresář")
Dim i as Integer: i = 1
Do while len(file)>0
   Set wb = file
   With wb
       .Worksheets(3).Range("O1").EntireColumn.Copy
       wbTarget.Worksheets(1).Cells(1,i).Paste
       i = i+1
    End With
Loop
Jinak PowerQuery bude asi 100× elegantnější, ale s tím tolik neumím, rozhodně nevím, jak se zeptat na specifickou buňku.
Ne croyez pas que les antisémites se méprennent tout à fait sur l'absurdité de ses réponses. Ils savent que leurs discours sont légers, contestables ; mais ils s'en amusent, c'est leur adversaire qui a le devoir d'user sérieusement des mots puisqu'il croit aux mots ; eux, ils ont le droit de jouer. Ils aiment même à jouer avec le discours car, en donnant des raisons bouffonnes, ils jettent le discrédit sur le sérieux de leur interlocuteur ; ils sont de mauvaise foi avec délices, car il s'agit pour eux, non pas de persuader par de bons arguments, mais d'intimider ou de désorienter. Si vous les pressez trop vivement, ils se ferment, ils vous signifient d'un mot superbe que le temps d'argumenter est passé.
Uživatelský avatar
Faskal
Moderátor
Příspěvky: 9048
Registrován: 20. 11. 2006, 20:59
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Faskal »

Všem moc děkuju!

Promyslel jsem to a nakonec jsem tu příležitost využil k tomu, abych se donutil oprášit ten Python; napsal jsem si to jako Jupyter notebook s pomocí openpyxl. Na Jupyter jsem narazil, když jsem onehdá zkoušel nějaké strojové učení a překvapilo mě, jak uživatelsky přívětivé může být používání i poměrně složitých věcí. Co jsem totiž nezmínil, jedna z věcí je, abych to dokázal použít já, poučený laik, druhá věc je, že bych potřeboval, aby to uměli použít i kolegové a po nich toho nemůžu chtít moc.

Osobně bych na to šel asi jako píše Passingby, kdybych to potřeboval jenom nějak provizorně pro sebe, akorát bych asi utíkal k Linuxu a zřejmě od použitelnosti pro jiné.

Sarsi, jak funguje PowerPivot?

Jinak, rozhodl jsem se to napsat univerzálně, udělat seznam všech relevantních souborů, z prvního přečíst hlavičku a založit pro každý sloupec vlastní soubor. Do těch nových souborů se pak postupně zapíšou data z každého původního souboru. Takto by to mělo být relativně imunní na to, že program je ve vývoji a hrozí, že změní, co vlastně všechno generuje, a na to, že kolegové (ani já) vlastně nevíme, který sloupec je pro další analýzy zajímavý.
Vzhledem k tomu, že posledně jsem ručně kopíroval skoro tři hodiny ze souborů tři sloupce, tak se teď s potěšením dívám, jak to tiká, protože teď je toho třikrát tolik a sloupců je 30. To se těch pár večerů přemýšlení vrátilo rychle.
... ano, chtěl jsem zničit svět. Ale ne takhle.
Staré zápisy z her, aktuálně: Tannhäuserova brána - Claudius II, Karak - Erbald.
Uživatelský avatar
Sarsaparillos
Příspěvky: 1169
Registrován: 27. 8. 2011, 10:15

Re: IT pro otrlé

Příspěvek od Sarsaparillos »

Faskal píše: 5. 6. 2023, 21:14 Sarsi, jak funguje PowerPivot?
Funguje tak jednoduše (aspoň mně teda :) ), že jsem to hodil to jednoduchého návodu i s obrázkama :)

Abych byl přesný, nepracuju v PowerPivot, ale v Power Query; vždy se mi to bohužel pletlo. A postup je následující:
  • V kartě Data si vyberu volbu načtení nových dat a tam možnost výběru ze složky. Předpokládám u toho, že máš všechny xlsx exporty z tvé databáze v jedné složce, a že mají stejný formát (hledaná data jsou vždy na listu 3 ve sloupci O, nebo jiném, ale vždy stejně).
  • V klasickém win průzkumníkovi najdu složku, kde mám data, a otevřu ji.
  • Otevře se okno náhledu do Power Query, kde vidím obsah složky. Dole v nedám Kombinovat, ale otevřu rozbalovací menu a vyberu "Sloučit a transformovat data", tím se posunu dál.
  • Otevře se náhled souboru, jednoho z celé složky, na kterém vyberu data, která chci načíst do modelu. Tady je důležité vybrat list, ze kterého data načítám, a pak pokračovat přes OK. Modře je ukázaný sloupec, ve kterém jsou data k exportu, v ostatních sloupcích jsou nějaká náhodná data.
  • Teď už se mi otevře rozhraní Power Query. Umí toho strašně hodně moc a v zásadě pracuje s náhledy dat v podobném okně, které známe z excelu. V tuhle chvíli už Power Query zkombinoval všechny soubory do jedné megatabulky "na pozadí" excelu. Je vidět, že má trochu nezvyklý formát, ale v "Column15" vidím sloupec s daty k exportu z prvního souboru a kdybych scrolloval dolů, budou se mi načítat i všechny další soubory ze složky. Tady teď chci používat pouze tento sloupec a ostatní mě nezajímají, takže na záhlaví sloupce kliknu pravým a vyberu "Odebrat ostatní sloupce". Podobně bych mohl odebrat jen vybrané a nechat například první sloupec, ve kterém je doplněný název zdrojového souboru (mohlo by se třeba hodit).
  • Každou úpravu, zde odebrání sloupců, zobrazí Power Query ve svém pracovním okně a vpravo je i log provedených úprav. Když jsem hotový, to je v tomto případě už teď, vyberu vlevo nahoře "Zavřít a načíst".
  • Předchozí volba zavře Power Query a vrátí mě zpátky do Excelu. Vytvořila se tabulka o jednom sloupci, kde jsou všechna exportovaná data. Vpravo vidím, že pochází z "Dotazu" a pokud bych do zdrojové složky třeba přidal nové soubory, mohu aktualizací dotazu aktualizovat i můj přehled.
návod.pdf
(810.93 KiB) Staženo 17 x
Naposledy upravil(a) Sarsaparillos dne 5. 6. 2023, 22:52, celkem upraveno 1 x.
Uživatelský avatar
Faskal
Moderátor
Příspěvky: 9048
Registrován: 20. 11. 2006, 20:59
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Faskal »

To vypadá zajímavě, díky za návod!
Uložil jsem si to, a až dochroupe můj přístup, tak to vyzkouším.

Ten Python to zpracovává dost pomalu, protože se mi nepovedlo přijít na to, jak v paměti udržet (a odkazovat) všechny potřebné dokumenty, takže to jak v pravěku přečtu, změním a uložím. Ale to budu řešit, až to někdo bude potřebovat, rozhodně to pořád není časově limitující krok postupu 8)
... ano, chtěl jsem zničit svět. Ale ne takhle.
Staré zápisy z her, aktuálně: Tannhäuserova brána - Claudius II, Karak - Erbald.
Odpovědět

Zpět na „Realita a pseudorealita“

Kdo je online

Uživatelé prohlížející si toto fórum: Ahrefs [Bot], Google [Bot], Pan Bača, Vallun a 7 hostů