Příspěvky uživatele


< návrat zpět

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

lubo, dobrý tip, ďakujem :)

takže, prípadné zjednodušenie prvého obludného vzorca na trochu menej obludný:

=DATEDIF(DatumOd; DatumDo; "y")&"R-"&
DATEDIF(DatumOd; DatumDo; "ym")&"M-"&
DATEDIF(DATE(YEAR(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd))); MONTH(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd)))+DATEDIF(DatumOd; DatumDo; "ym"); DAY(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd)))); DatumDo; "d")&"D"

No, v SQL to tak má byť, t.j. v hranatých zátvorkách necháš to, čo uvádzam, t.j. [DatumOd] a [DatumDo]. On v tých zátvorkách nemusí text byť, ale je lepšie to tam nechať kvôli prehľadnosti. Inými slovami, ten SQL príkaz by mohol byť i v tvare:

SELECT Meno, TypFormulara, Datum
FROM Tabulka1
WHERE Datum>=[] AND Datum<=[]

Pri spustení dotazu budeš potom vyzvaný, aby si vložil dátumy (do textboxu), alebo, pokiaľ v dotaze uvedieš zdroj, z ktorého sa hodnoty od a do budú načítať, t.j. adresy buniek v Exceli, v ktorých budeš tie dátumy zadávať tak si ich dotaz dosadí z uvedených buniek (toto opäť názorne ukazuje Craig vo svojom videjku, tak sa na to pozri)

eLCHa podle mé teorie z minulého příspěvku je 8R-7M-3D špatně
Tak v tom prípade sa to vysvetlilo asi k obojstrannej spokojnosti :)

eLCHa, ešte som predošlý príspevok zeditoval a môj predpoklad vysvetľujem, tak sa na to eventuálne podívajte, prečo ja počítam 6, proste, je to vec konvencie:

Datediff pre dátumy 1/1/2014 a 2/1/2014 dá výsledok 1 deň, rovnako ako ObdDo mínus ObdOd. Proste, od pondelka do utorka ubehne jeden deň, ale pokiaľ pracujem v pondelok a utorok, tak pracujem dni dva. V tom prípade ako konečné dátum ale volím stredu, alternatívne môžem k výsledku DateDif pripočítať jedničku. Toľko k vysvetleniu rozdielu 6 vs. 7 1

@eLCHa: Nástup 31.12.2006 => 7 let, 10 měsíců a 7 dní
Moje dva vzorce v tomto prípade dávajú nie 7, ale 6 dní. I keď to spočítam na prstoch, tak mi vyjde dní 6 :) Teda, za predpokladu, že napr. obd. od 15/10 do 16/10 počítam ako jeden deň, nie dva dni. Pokiaľ by to mali byť dni dva, tak k mojim vzorcom je treba pripočítať ešte jedničku. V tom prípade sa ale budeme rozchádzať u toho predošlého príkladu. No, nič, pmn to vzorcami riešiteľné je, ďaleko jednoduchšie a istejšie je ale v tomto prípade použitie UDF, 3 cykly - pre počítanie rokov, mesiacov a dní a je to. Tá funkcia je jednoduchá a i dostatočne rýchla. Pokus o riešenie vzorcom pokladám za výzvu, pokiaľ by som ale chcel mať istotu, že dostanem vždy správny výsledok, tak v tomto prípade by som ja osobne preferoval UDF.

@eLCHa: áno, 8R,7M,3D sedíme :)

ešte trebárs takto:
=YEAR(DatumDo)-YEAR(DatumOd)-(MONTH(DatumDo)-MONTH(DatumOd)<0)&"R-"&
IF(MONTH(DatumDo)-MONTH(DatumOd)>0; MONTH(DatumDo)-MONTH(DatumOd); 12+MONTH(DatumDo)-MONTH(DatumOd))-(DAY(DatumDo)-DAY(DatumOd)<0)&"M-"&
IF(DAY(DatumDo)-DAY(DatumOd)>0; DAY(DatumDo)-DAY(DatumOd); DAY(DATE(YEAR(DatumDo); MONTH(DatumDo); 0))+DAY(DatumDo)-DAY(DatumOd))&"D"

@lenn: tak ten hrůzostrašný vzorec mi hodil chybu (#NÁZEV?)
no, do češtiny to fakt prekladať nebudem, musíte si nájsť české ekvivalenty jednotlivých funkcií, t.j.
Date=Datum
Year=Rok
Day=Den
atd., nechcite po mne to, čo zvládnete pri troche snahy sama 1

S istým zjednodušením by sa dal asi použiť trochu hrôzostrašný vzorec 1 :

=DATEDIF(DatumOd; DatumDo; "y")&"R-"&
DATEDIF(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd)); DatumDo; "m")&"M-"&
DATEDIF(DATE(YEAR(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd))); MONTH(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd)))+DATEDIF(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd)); DatumDo; "m"); DAY(DATE(YEAR(DatumOd)+DATEDIF(DatumOd; DatumDo; "y"); MONTH(DatumOd); DAY(DatumOd)))); DatumDo; "d")&"D"

Co se sešitů uložených jen pro čtení týká, tak to jsem již zkusil, ale není nic jednoduššího, než rozkliknout vlastnosti a odškrtnout, což se mi tu už stalo..
Neplatí pre postup zaheslovania, ktorý som uviedol vo svojom predošlom príspevku :)

Ospravedlňujem sa, že sa do toho pletiem, ale nestačilo by v uvedenom prípade uložiť súbor chránený heslom pre úpravy: F12->Nástroje->Možnosti->Obecné možnosti->Heslo pre úpravy? Áno, iste, ochranu heslom je v prípade Excelu (po verziu 2010 vrátane) pomerne ľahké prelomiť, ale toto pokiaľ niekto zvláda, tak bude zvládať i prípadné odstránenie záznamov z nejakého logu, pokiaľ tento nebude ukladaný v mieste, ku ktorému dotyčný nemá prístup. Pokiaľ by som to mal riešiť ja (zabránenie úprav v súbore iným užívateľom), tak by som volil hore uvedený postup - z mojich kolegov by takúto ochranu dokázal prekonať maximálne jeden, ale je fakt, že okolo mňa žiadni počítačoví géniovia nesedia :)

edit: než som to dopísal, tak ma elcha predbehol, no a elchovi by som ja osobne v otázkach excelu veril :)

Nemám prístup k SQL serveru, takže vyskúšať nedokážem. Vzhľadom k tomu, že píšeš, že dáta z SQL serveru do Excelu natiahnuť dokážeš, tak mám za to, že MS Query v tvojom prípade musí fungovať! Nič na tom nie je, stačí vedieť, ako na to, perfektný návod je tuná: https://www.youtube.com/watch?v=P9cUYpXIKsU
Mám za to, že tých 500000 riadkov z SQL ťaháš z jednej jedinej tabuľky, v tom prípade si v MS Query dotiahneš z danej tabuľky akurát požadované 3 stĺpce (polia) a výber obmedzíš parametrom (v tomto prípade budú parametre dva, t.j. dátum od-do), hodnoty ktorých budeš meniť v 2 bunkách v exceli, ako názorne popisuje vo svojom návode Craig Hatmaker. Toto zvládne pmn i človek s minimom znalostí SQL, okrem toho, stačí, pokiaľ to vytvoríš ty a kolegyne si potom budú meniť akurát rozsah od-do už v priamo v Exceli, oni o SQL nemusia vedieť ale naprosto nič :) Výsledok query vrátiš do Excelu samozrejme už rovno vo forme kontingenčnej tabuľky.

Inak, schématický zápis parametrického dotazu by v uvedenom prípade vyzeral približne takto:

SELECT Meno, TypFormulara, Datum
FROM Tabulka1
WHERE Datum>=[DatumOd] AND Datum<=[DatumDo];

prípadne takto:
SELECT Meno, TypFormulara, Datum
FROM Tabulka1
WHERE Datum BETWEEN [DatumOd] AND [DatumDo];

hranaté zátvorky v tomto prípade indikujú práve prítomnosť parametra. Ako hovorím, nič zložitého ani pre skoro úplného začiatočníka :)

btw, KT umožňuje okrem zoskupovania cez dátumy, čo zmieňuje lubo, dáta cez dátumy i filtrovať, t.j. nastaviť rozsah od-do priamo v KT tiež ide a pmn ani táto možnosť zložitá rozhodne nie je...

Zadaniu rozumiem a pochopil som ho, trúfam si tvrdiť, hneď z prvého príspevku. Rozumieš pre zmenu ty navrhovanému riešeniu (lubovmu, môjmu, to je fuk)? Asi nie, viď?

Ako najvhodnejší (najjednoduchší na zmenu parametru, ktorým je v tomto prípade rozsah dní od-do) sa mi javí z 3 mnou uvedených možností riešenia parametrický dotaz vytvorený v MS Query, kedy hodnotu parametru (v tomto prípade parametrov) je možno načítať priamo z konkrétnych buniek, v ktorých je potom možné rozsah od-do meniť. Do pivotky sa potom budú načítať rovno iba záznamy, spĺňajúce dané kritérium výberu.

Buď dotazom priamo v MS SQL obmedziť záznamy na rozsah požadovaných dátumov (ale píšeš, že to je user unfriendly), takže ďalšie možnosti, ktoré ma napadajú a sú pmn schodné (určite existujú i iné):

1. Ako medzistupeň použiť Access a vytvoriť príslušný dotaz v ňom
2. Do úvahy prichádza i MS Query, kde si môžeš parametrický dotaz vytvoriť, ale nie som si istý, či zvládne 500000 vstupných záznamov, asi zvládne, ale neskúšal som.
3. PowerPivot

@Palooo:
Stál som si trochu na vedení a zdalo sa mi, že ten LIKE proste fungovať v tomto prípade nebude, ale presvedčil si ma o opaku 1. Trochu sa hanbím za mierne zbytočnú poznámku.

@Palooo: if "Attack" LIKE "Attack, Charge, onslaught" Then
Takto sa to s LIKE pmn rozhodne napísať nedá. Pre porovnanie "Attack" s "Attack, Charge, onslaught" by šlo aplikovať trebárs InStr.


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

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje