Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  Abi exceliga märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
nexus4
Kreisi kasutaja
nexus4

liitunud: 01.03.2012




sõnum 20.04.2015 12:17:19 Abi exceliga vasta tsitaadiga

Tea kui palju tegu programmerimise või exceliga, aga kasutusel olevatest tarkvaradest saaks veel kasutada ka oracle sql developerit ja Tabelau Desktop'i.

Vaja koostada graafik. Algandmed järgmised:


Pallide arv õhus | Millal pall õhku löödi | Millal pall maha tagasi kukkus
562  |28.10.2013 2:56  | 28.10.2013 7:05
9     28.10.2013 5:07    1.11.2013 16:20
6     28.10.2013 6:34    28.10.2013 10:21
3     28.10.2013 6:37    28.10.2013 7:43
17    28.10.2013 6:50    28.10.2013 9:19
16    28.10.2013 7:14    28.10.2013 11:13
281   28.10.2013 7:15    28.10.2013 12:40
7     28.10.2013 7:55    28.10.2013 10:50
9     28.10.2013 8:02    28.10.2013 9:32
20    28.10.2013 8:27    28.10.2013 10:40



Ehk löödi palle järjest õhku. Graafku x telg peaks olema aeg (antud juhul siis alates 28.10.2013 2:56 ning kuni 28.10.2013 10:50) ning y telg pallide arv õhus.
Ehk igal kuvataval ajahetkel mitu palli oli õhus.

Ei suuda algoritmi välja mõelda... icon_rolleyes.gif
Kommentaarid: 29 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 26
tagasi üles
vaata kasutaja infot saada privaatsõnum
Sults
HV veteran

liitunud: 06.09.2004




sõnum 20.04.2015 12:53:31 vasta tsitaadiga

Ei tohiks ju ülearu keeruline olla:
http://www.arbuarkel.com/~sulev/Excel/pallid.xls
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
nexus4
Kreisi kasutaja
nexus4

liitunud: 01.03.2012




sõnum 20.04.2015 15:02:35 vasta tsitaadiga

Selline algoritm täitsa töötab, aga pidasin silmas rohkem sellist valemit, koodijuppi, mis "pallide liikumise" ise arvutaks. praegu mulle tundub, et tegid selle käsitsi.
Antud ülesanne oli ainult näide, tegelikuses on ridu kuskil pea 3000
Kommentaarid: 29 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 26
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 20.04.2015 15:31:20 vasta tsitaadiga

Kui SQL võimalus olemas, siis lahendaks asja umbes nii:
Pallide andmed tabelisse. Tabel midagi sellist, väljade nimesid võib vabalt muuta muidugi.
sql:
  1. CREATE TABLE pallid (pallid_ohus int,yles_aeg timestamp,alla_aeg timestamp);


Seejärel genereerida aegrida soovitud sammuga (antud juhul minut).
sql:
  1. SELECT generate_series((SELECT min(yles_aeg) FROM pallid),(SELECT max(yles_aeg) FROM pallid),'1 minute');

, mis aktiivselt rakendatuna kujul:

sql:
  1.  
  2. SELECT ajahetk,(SELECT SUM(pallid_ohus) FROM pallid WHERE ajahetk BETWEEN yles_aeg AND alla_aeg) AS pallide_arv_ohus FROM
  3. (SELECT generate_series((SELECT min(yles_aeg) FROM pallid),(SELECT max(yles_aeg) FROM pallid),'1 minute') AS ajahetk) AS alpha
  4. ;


Pärast saadud tabel Excelisse ja suvaline graafikuvariant peale.
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
Sults
HV veteran

liitunud: 06.09.2004




sõnum 20.04.2015 17:13:21 vasta tsitaadiga

nexus4 kirjutas:
Selline algoritm täitsa töötab, aga pidasin silmas rohkem sellist valemit, koodijuppi, mis "pallide liikumise" ise arvutaks. praegu mulle tundub, et tegid selle käsitsi.
Antud ülesanne oli ainult näide, tegelikuses on ridu kuskil pea 3000

Mida ma seal sinu arvates käsitsi tegin? Panin ajahetked ühte tulpa? Vajutasin sortimise nuppu? Exceli valemid ju ise arvutavad omast vabast ajast ja graafik jookseb ka ise kokku. Eesmärk oli ju algse kirjelduse järgi saada graafik. Need tegevused ei oleks võtnud mul rohkem aega ka siis, kui kirjeid oleks olnud kümneid tuhandeid.
Teinekord kirjuta ikka kohe, mida sa saada tahad!

Kuna graafikul peavad ajahetked olema ühes tulbas (ühel teljel), siis on vaja allakukkumise aeg panna õhku löömise ajaga kokku. Mõistlik oleks algusest peale pidada arvestust kahetulbalises tabelis, kus ajahetkele lisaks on pallide liikumise arv, mille märk näitab, kas neid õhku lisandus või vähenes. Ükskõik, kas teed seda Exceli valemi või SQL lausega, tekita see 2 tulbaline tabel, sorteeri ajahetke järgi ja sul ongi graafiku jaoks andmed praktiliselt olemas (mingile ajahetkele vastava summa tekitamine ei ole keeruline ei Excelis, ega SQL-is).

SQLis peaks andma sellise tabeli:
SELECT palle AS arv, õhkuhetk AS hetk FROM tabel
UNION ALL
SELECT -palle AS arv, mahahetk AS hetk FROM tabel
ORDER BY hetk

Ilmselt saaks keerukama SQL lausega ka kohe liitmistehte ka teha, aga ma pole enam aastaid SQLiga tegelenud, ei hakka pakkuma.
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
nexus4
Kreisi kasutaja
nexus4

liitunud: 01.03.2012




sõnum 20.04.2015 17:40:25 vasta tsitaadiga

Ah sorry, piisavalt kaua tegeleda millegagi siis ei näe neid lahendusi ka.

Mõlemale ajale pallide arv külge, mahakukkumis ajale märgi muutus, see järel ühte tulpa ja läheb minna. Proovin kui andmebaasile uuesti ligi saan ja annan teada mis tulemus sai.
Kommentaarid: 29 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 26
tagasi üles
vaata kasutaja infot saada privaatsõnum
Sults
HV veteran

liitunud: 06.09.2004




sõnum 20.04.2015 19:07:45 vasta tsitaadiga

Seda jooksvat summat võiks arvutada nt:
SELECT hetk, SUM(arv) OVER (ORDER BY hetk) AS hetkelõhus FROM eelmiseSQLitulemus

Ehk kokku siis:
SELECT hetk, SUM(arv) OVER (ORDER BY hetk) AS hetkelõhus FROM
(
SELECT palle AS arv, õhkuhetk AS hetk FROM tabel
UNION ALL
SELECT -palle AS arv, mahahetk AS hetk FROM tabel
)
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
nexus4
Kreisi kasutaja
nexus4

liitunud: 01.03.2012




sõnum 23.04.2015 22:26:54 vasta tsitaadiga

Ei ole andmebaasile ligi saanud et sql'iga proovida, aga kuna mul on palju kattuvaid aegasid (nt mitu erineval ajahetkel õhku löödud palli kukub samal ajahetkel maha tagasi või mõlemat) siis tekib ühele ja samale kuupäevale mitu erinevat rida... Mis keerab nagu tuksi veits selle lähenemise. Käsitsi on jällegi jube töö samadel kuupäevadel korrigeerimisi teha.
Kommentaarid: 29 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 26
tagasi üles
vaata kasutaja infot saada privaatsõnum
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 24.04.2015 08:58:21 vasta tsitaadiga

See ongi koht, kus referentsiks olev ajajoon tuleb eraldi tekitada ja sinna andmed külge lugeda.
Kui tegemist on lõpliku andmestikuga (mingist X ajast, mitte jooksev), siis võid privasse mingi kontakti visata.
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
Sults
HV veteran

liitunud: 06.09.2004




sõnum 24.04.2015 09:31:18 vasta tsitaadiga

Ma ei saa aru, mida pagana pusimist sa seal käsitsi teed?
Excelis on sellest andmestikust graafiku tegemine minuti küsimus isegi kümnete tuhandete kirjete korral! Kopeerid üleslöömise ja allakukkumise ajad ühte tulpa ja sorteerid siis ajaliselt.
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
alfreedo
HV vaatleja

liitunud: 20.06.2010




sõnum 24.04.2015 17:41:42 vasta tsitaadiga

tsitaat:

nexus4
... aga kuna mul on palju kattuvaid aegasid (nt mitu erineval ajahetkel õhku löödud palli kukub samal ajahetkel maha tagasi või mõlemat) siis tekib ühele ja samale kuupäevale mitu erinevat rida..


Seda ma ka mötlesin, et kole lihtsalt tahad graafikut sellistest andmetest saada?
Siin tekib Sul isegi samale kellaajale mitu erinevat rida..

tsitaat:

9 28.10.2013 5:07 1.11.2013 16:20


Need 9 on isegi mitu päeva õhus?


Sa peaks äkki andmed laiali laotama ja siis valemiga igal sekundil (või minutil) õhus olevad pallid kokku summeerima ja selle baasil graafiku tegema
Kommentaarid: 2 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 2
tagasi üles
vaata kasutaja infot saada privaatsõnum
Sults
HV veteran

liitunud: 06.09.2004




sõnum 25.04.2015 12:56:06 vasta tsitaadiga

See, mitu pallilöömist või kukkumist satub samale hetkele, ei muuda seda ülesannet karvavõrragi keerukamaks.
Samuti mitte ka see, kas pallid on õhus 1 sekundi, 9 päeva või 9 aastat. Üles löödud pallide arv - alla kukkunud pallide arv näitab ikka sellel ajahetkel õhus olevate pallide arvu. Graafiku tüüp tuleb lihtsalt õige valida (ajatelg peab olema pidev), mitte suvaline. Ja iseasi on see, kas graafiku pealt iga üleslöömine ja allakukkumine loetav on, sest kui samal hetkel kukub alla sama palju palle kui üles lüüakse, siis graafikule jõnksu ei teki.

alfreedo kirjutas:
tsitaat:

nexus4
... aga kuna mul on palju kattuvaid aegasid (nt mitu erineval ajahetkel õhku löödud palli kukub samal ajahetkel maha tagasi või mõlemat) siis tekib ühele ja samale kuupäevale mitu erinevat rida..


Seda ma ka mötlesin, et kole lihtsalt tahad graafikut sellistest andmetest saada?
Siin tekib Sul isegi samale kellaajale mitu erinevat rida..

tsitaat:

9 28.10.2013 5:07 1.11.2013 16:20


Need 9 on isegi mitu päeva õhus?


Sa peaks äkki andmed laiali laotama ja siis valemiga igal sekundil (või minutil) õhus olevad pallid kokku summeerima ja selle baasil graafiku tegema
Kommentaarid: 38 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  Abi exceliga
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.