Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  60 61 62 63 64 65 66 67 68   další » ... 289

Čo je to RH?
Čo znamená na konci "initial vacuum"? Navyše "initial vacuum" sú dve, stĺpec 4 a stĺpec 14.
"minimální, maximální a průměrnou teplotu" počítanú zo všetkých súborov? Lebo každý má predsa iba jednu teplotu (P4001).

Dotazy PowerQuery (PQ) sa spúšťajú buď na karte Údaje - Obnoviť všetko, alebo pravý klik na Tabuľku dotazu - Obnoviť, alebo skratka Ctrl+Alt+F5.
Kód samotného dotazu (M-code) sa dá editovať. Karta Údaje - Dotazy a pripojenia - vpravo klik na hociktorý dotaz pravým a výber Upraviť.
Dotaz "Iba na ladenie" nie je potrebný, jeho účel je jasný z názvu. Samotnú Tabuľku vytvára dotaz "GetDataFromFiles" a použité kroky je vidno vpravo "PUŽITÉ KROKY". No to najdôležitejšie obstaráva vytvorená funkcia "fncGetDataFromFile". Funkcie nezobrazujú použité kroky vpravo, ale treba pozrieť M-code. Karta Domov - Rozšírený editor.
M-code funkcie fncGetDataFromFile:
(FileName as text) =>
let
//načítanie dát zo súboru ako text, kvôli ošetrovaniu medzier, oddeľovačov a mínusov
File = Csv.Document(File.Contents(FileName),[Encoding=65001, QuoteStyle=QuoteStyle.None]),
#"Nahradená hodnota" = Table.ReplaceValue(Table.ReplaceValue(Table.ReplaceValue(Table.ReplaceValue(File," "," ",Replacer.ReplaceText,{"Column1"})," "," ",Replacer.ReplaceText,{"Column1"})," "," ",Replacer.ReplaceText,{"Column1"})," "," ",Replacer.ReplaceText,{"Column1"}),
TextFromFile = Table.ReplaceValue(#"Nahradená hodnota","- ","-",Replacer.ReplaceText,{"Column1"}),

//vytvorenie tabuľky dát
#"Filtrované riadky" = Table.SelectRows(TextFromFile, each Text.StartsWith([Column1], "Date") or Text.StartsWith([Column1], "> ") or Text.StartsWith([Column1], ". ")),
#"Nahradená hodnota4" = Table.ReplaceValue(Table.ReplaceValue(#"Filtrované riadky","> ","",Replacer.ReplaceText,{"Column1"}),". ","",Replacer.ReplaceText,{"Column1"}),
#"Rozdeliť stĺpec podľa oddeľovača" = Table.SplitColumn(#"Nahradená hodnota4", "Column1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.6", "Column1.7", "Column1.8", "Column1.9", "Column1.10", "Column1.11", "Column1.12", "Column1.13"}),
#"Odstránené ostatné stĺpce" = Table.SelectColumns(#"Rozdeliť stĺpec podľa oddeľovača",{"Column1.1", "Column1.2", "Column1.3", "Column1.4", "Column1.5", "Column1.7"}),
#"Hlavičky so zvýšenou úrovňou" = Table.PromoteHeaders(#"Odstránené ostatné stĺpce", [PromoteAllScalars=true]),
#"Zlúčené stĺpce" = Table.CombineColumns(#"Hlavičky so zvýšenou úrovňou",{"Date", "Hour"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"DateHour"),
#"Zmenený typ4" = Table.TransformColumnTypes(#"Zlúčené stĺpce",{{"DateHour", type datetime}}),
#"Zmenený typ pomocou miestneho nastavenia" = Table.TransformColumnTypes(#"Zmenený typ4", {{"Phase", type text}, {"PR03(kPa)", type number}, {"PT02(C)", type number}, {"Humidity(%)", type number}}, "en-US"),
DataFromFile = Table.TransformColumnTypes(#"Zmenený typ pomocou miestneho nastavenia",{{"DateHour", type number}}),

//vytvorenie tabuľky parametrov
#"Filtrované riadky1" = Table.SelectRows(TextFromFile, each Text.StartsWith([Column1], "+ ")),
#"Nahradená hodnota5" = Table.ReplaceValue(#"Filtrované riadky1","+ ","",Replacer.ReplaceText,{"Column1"}),
#"Rozdeliť stĺpec podľa oddeľovača2" = Table.SplitColumn(#"Nahradená hodnota5", "Column1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Parameter", "Hodnota"}),
ParamList = Table.FromList({"P4021","P4001","P4004","P4005","P4002","P4006","P4007","P4008","P4009","P4015","P4011","P4012"}, null, {"Parameter"}),
ParamVal = Table.ReplaceErrorValues(Table.AddColumn(ParamList, "Value", each #"Rozdeliť stĺpec podľa oddeľovača2"[Hodnota]{List.PositionOf(#"Rozdeliť stĺpec podľa oddeľovača2"[Parameter], [Parameter])}), {{"Value", null}}),
ParamFromFile = Table.TransformColumnTypes(ParamVal, {{"Value", type number}}, "en-US"),

//extrakcia názvu batch
BatchVal = Table.FromRecords({[Parameter = "Batch", Value = Table.SelectRows(TextFromFile, each Text.StartsWith([Column1], "= "))[Column1]{0}]}),
Batch = Table.TransformColumns(BatchVal, {{"Value", each Text.AfterDelimiter(_, "_", {0, RelativePosition.FromEnd}), type text}}),

//indexácia hľadaných značiek v tabuľke dát
IndexPhaseList = Table.FromList({"2.1","2.9","3.9","4.9","6.9","8.9"}, null, {"Name"}),
IndexPhase = Record.FromTable(Table.ReplaceErrorValues(Table.AddColumn(IndexPhaseList, "Value", each List.PositionOf(DataFromFile[Phase], [Name]), Int64.Type), {{"Value", null}})),

//vypočítavané stĺpce
CalculatedData = Table.FromRecords({[Parameter = "D1", Value = if IndexPhase[2.9] = -1 then null else DataFromFile{IndexPhase[2.9]}[#"PR03(kPa)"]],
[Parameter = "D2", Value = if IndexPhase[2.1] = -1 or IndexPhase[2.9] = -1 then null else DataFromFile{IndexPhase[2.9]}[#"DateHour"]-DataFromFile{IndexPhase[2.1]}[#"DateHour"]],
[Parameter = "D3", Value = if IndexPhase[3.9] = -1 then null else DataFromFile{IndexPhase[3.9]}[#"Humidity(%)"]],
[Parameter = "D4", Value = if IndexPhase[3.9] = -1 or IndexPhase[2.9] = -1 then null else DataFromFile{IndexPhase[3.9]}[#"DateHour"]-DataFromFile{IndexPhase[2.9]}[#"DateHour"]],
[Parameter = "D5", Value = if IndexPhase[3.9] = -1 then null else DataFromFile{IndexPhase[2.9]}[#"PR03(kPa)"]],
[Parameter = "D6", Value = if IndexPhase[3.9] = -1 then null else DataFromFile{IndexPhase[2.9]}[#"PT02(C)"]],
[Parameter = "D7", Value = if IndexPhase[3.9] = -1 or IndexPhase[2.9] = -1 then null else DataFromFile{IndexPhase[3.9]}[#"PR03(kPa)"]-DataFromFile{IndexPhase[2.9]}[#"PR03(kPa)"]],
[Parameter = "D8", Value = if IndexPhase[4.9] = -1 then null else DataFromFile{IndexPhase[2.1]}[#"PR03(kPa)"]],
[Parameter = "D9", Value = if IndexPhase[4.9] = -1 or IndexPhase[3.9] = -1 then null else DataFromFile{IndexPhase[4.9]}[#"DateHour"]-DataFromFile{IndexPhase[3.9]}[#"DateHour"]],
[Parameter = "D10", Value = if IndexPhase[6.9] = -1 or IndexPhase[4.9] = -1 then null else DataFromFile{IndexPhase[6.9]}[#"DateHour"]-DataFromFile{IndexPhase[4.9]}[#"DateHour"]],
[Parameter = "D11", Value = if IndexPhase[6.9] = -1 then null else DataFromFile{IndexPhase[6.9]}[#"PR03(kPa)"]],
[Parameter = "D12", Value = if IndexPhase[6.9] = -1 or IndexPhase[4.9] = -1 then null else DataFromFile{IndexPhase[6.9]}[#"PR03(kPa)"]-DataFromFile{IndexPhase[4.9]}[#"PR03(kPa)"]],
[Parameter = "D13", Value = if IndexPhase[8.9] = -1 then null else DataFromFile{IndexPhase[8.9]}[#"PR03(kPa)"]],
[Parameter = "D14", Value = Table.RowCount(Table.SelectRows(DataFromFile, each ([Phase] = "10.9")))]}),

//predfinálne spojenie tabuliek
CombineTables = Table.Combine({Batch, ParamFromFile, CalculatedData}),

//Finalizácia výstupu pre daný súbor
#"Transponovaná tabuľka" = Table.Transpose(CombineTables),
#"Hlavičky so zvýšenou úrovňou1" = Table.PromoteHeaders(#"Transponovaná tabuľka", [PromoteAllScalars=true]),
#"Zmenený typ" = Table.TransformColumnTypes(#"Hlavičky so zvýšenou úrovňou1",{{"Batch", type text}, {"P4021", type number}, {"P4001", type number}, {"P4004", type number}, {"P4005", type number}, {"P4002", type number}, {"P4006", type number}, {"P4007", type number}, {"P4008", type number}, {"P4009", type number}, {"P4015", type number}, {"P4011", type number}, {"P4012", type number}, {"D1", type number}, {"D2", type time}, {"D3", type number}, {"D4", type time}, {"D5", type number}, {"D6", type number}, {"D7", type number}, {"D8", type number}, {"D9", type time}, {"D10", type time}, {"D11", type number}, {"D12", type number}, {"D13", type number}, {"D14", type number}})
in
#"Zmenený typ"

Ide ešte o to, či som to urobil tak, aby to vracalo správne výsledky. Najmä tie časy som riešil, ale hlavne či treba tie záporné čísla riešiť...

PS: A čo robí s dátami ten M-code funkcie, sa dá odkrokovať práve v tom dotaze "Iba na ladenie", kde si iba treba na začiatku kódu zmeniť cestu k skúšobnému súboru.

Ešte som zabudol, postaviť sa na Tabuľku dotazu a na karte Údaje - Dotazy a pripojenia - Vlastnosti, zrušiť zaškrtnutie "Prispôsobiť šírku stĺpca".

Úprava. Ale dnes už asi viac času mať nebudem...
Skontrolujte si to.

Už to nestíham dokončiť. Navyše sa mi nepozdávajú vždy tie Vaše odkazy na stĺpce vo vzorcoch. Ako bonus opäť podotýkam, že v "PR03(kPa)" ani omylom nie sú vždy záporné hodnoty. A časy idú cez polnoc, tak bude potrebné to prekopať.

Zatiaľ iba pracovná polyfunkčná verzia.

Zajtra mám na pláne veľa vecí, tak neviem ako dopadne toto...

Takže naraz zo všetkých súborov v nejakom adresári? V tom prípade PowerQuery (súčasť Office 2016/209/2021/365, do 2010/2013 je ofiko doplnok), kde sa dajú ošetriť prebytočné medzery, filtre iba na požadované riadky textu, rozdelenie na stĺpce, aj správny prevod EN/US hodnôt. Priložte ešte nejaké 2-3 súbory, nech si to nemusíme simulovať my.

EIDT: NO a keď si to tak pozerám, nachádzam ďalšie otázky:
-To, že dohľadávate parametre Pxxx znamená, že v tieto parametre nemusia byť v každom súbore obsiahnuté, alebo sú na inom riadku?
-Ten názov "Batch" nemá byť náhodou iba to za posledným podtržítkom? Lebo 9 znakov majú v summary všetky (pozerám na podmienku v data!S1).
-"Initial vacuum duration" rátate iba hodiny {MOD(x;1)}? Nemôže nastať, že bude niečo trvať dlhšie ako 24 hod?
-Tie značky 2,1 / 2,9 / 3,9 ... atď, ktoré hľadáte na získanie hodnôt, tam nemusia existovať?
-Ako ste prišli na to, že stĺpec "Pressure at the end of conditioning" inak "PR03(kPa)" musí byť vždy záporné číslo?

Ďalšie otázky ešte dopíšem ako ma budú postupne napádať...

Prípadne do modulu listu, a nič sa nebude ani opakovane volať:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Vysledok As Variant
If Not Intersect(Range("A2"), Target) Is Nothing Then
Vysledok = "nenašlo"
On Error Resume Next
Vysledok = WorksheetFunction.VLookup(Range("A2"), List2.Range("A1:E6"), 3, 0)
On Error GoTo 0
Application.EnableEvents = False
Range("B2").Value = Vysledok
Application.EnableEvents = True
End If
End Sub

Bez problémov funguje. Najskôr učite list, potom až range.
Sub Hladaj()
On Error Resume Next
List1.Range("B2").Value = WorksheetFunction.VLookup(List1.Range("A2"), List2.Range("A1:E6"), 3, 0)
If Err.Number <> 0 Then List1.Range("B2").Value = "nenašlo"
On Error GoTo 0
End Sub

Príklad:
Dim strDatum As String
Dim Datum As Date
Dim bolOK As Boolean

strDatum = Replace(TextBox1.Text, ".", "/")
If IsDate(strDatum) Then
Datum = DateValue(strDatum)
bolOK = Datum >= Date
End If
MsgBox bolOK

Na nete sa na toto spomína addon "Email Studio". Skúste ho s parametrom "older_than:1h" . Návod si nájdete na nete, len neviem či to pozná aj "h" hodiny, alebo len dni, mesiace a roky.

makro - krátky skript (nie nutne VBA, sú aj myši s makrom)
M-code - skriptovací jazyk PowerQuery

Možno tu ide o popletenie pojmov, ale ja som to pochopil tak, že sa jedná o PQ dotaz vytváraný vo VBA. A tak som aj otestoval to, čo som postol.

sobrom upresnite to.

EDIT: Príloha s príkladom, ako vložiť hodnotu bunky do vytvárania PQ dotazu vo VBA, aj príklad, ako si samotné PQ môže načítať hodnotu z konfiguračnej Tabuľky (je to tak najjednoduchšie).

Len tip. Namiesto url
https://www.gpro.net/cz/RaceSummary.asp?Season=84&Race=2&sort=&order=&group=Pro+-+15
tam skúste dať
" & ThisWorkbook.Worksheets("názov listu").Range("adresa bunky").Value & "

1. Priložte aj nejaký súbor bez citlivých dát (no nie bez dát!), nech si vieme urobiť predstavu, kde čo je, a čo sa asi tak má robiť.
2. Čo sa má robiť ??? Lepší popis.

Samotné overenie existencie zložky sa dá urobiť aj jednoducho cez Len(Dir(...))=0, ale tu čarujete niečo s bunkami, a bez prílohy sa mi nechce hádať.

EDIT:
Workbooks(ZakazkovaKniha) bude vždy otvorený?
.Select nepoužívajte, ak to nie je nevyhnutné. Použite súradnicové adresovanie bunky cez Cells(y,x)
Nepoužívajte iba Next, ale radšej Next f1. Nepomýlite si tak cykly.
Čo ak Find("System Volume Information") nenájde nič - chyba. Treba ošetriť cez On Error
Raz používate Cells() a hneď na to Workbooks(ZakazkovaKniha)... Je dobré makru určiť, ktorý zošit/list sa spracováva. Nie iba samotné Range/Cells ale aj zošit/list
Chýba funkcia KontrolaZnaku.
...
Bez prílohy + popisu + vzorových dát ani ranu...

Ak stlačíte ľavý Alt+F11 a otvorí sa okno VBA, a označíte list v "Project - VBAProject", akú hodnotu má položka "Visible" v "Properties - Hárok1" ?

Skúsil ste Opraviť inštaláciu v Ovládacom panely?

Kompletne odinštalujte Office cez OfficeCleaner
Možnosť č. 2: Úplné odinštalovanie balíka Office pomocou nástroja na odinštalovanie

Potom skúste v príkazovom riadku (ako správca) spustiť
sfc -scannow

Aktualizujte Win

Nainštalujte znovu Office.

9 paráda, to ma ani netrklo ...


Strana:  1 ... « předchozí  60 61 62 63 64 65 66 67 68   další » ... 289

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28