Count and Sum
Last Updated: Dec 13 2013 19:03, Started by
tzuny
, Dec 12 2013 16:18
·
0
#1
Posted 12 December 2013 - 16:18
Din nou va salut VB guys.
Am o tabela in excel. Cap de tabela : Timp | Date masurate($B5) | Masuratori eronate | Timp(Frecventa) Timp2 00:00:00 54,880 54,88000107 0 01:00:00 01:00:00 49,721 Ha 1 02:00:00 52,191 52,19077924 0 01:00:00 03:00:00 49,686 Ha 1 04:00:00 50,247 50,24746735 0 05:00:00 52,359 52,35869203 0 02:00:00 06:00:00 48,997 Ha 1 07:00:00 52,305 52,30469259 0 08:00:00 50,112 50,11161015 0 09:00:00 49,997 Ha 1 Pentru Masuratori eronate am functia : =IF(($B5>40)*OR($B5<50);"Ha";$B5) (verifica daca din valorile masurate se incadreaza in limite si daca nu pune valoarea daca nu pune Ha=Valoare buna) Pentru (Frecventa) am : =IF(C5="Ha";IF(C6="Ha";0;1);0) (calculeaza frecventa de cate ori iese din limitele admise ) Intr-o alta coloana as vrea timpul cat a stat in afara limitelor gen(coloana Timp2). Nu stiu exact cum am putea face aceasta functie daca nu e o rutina exact a valorilor eronate.(Adik : pot sa am 3 valori Ha=Bune dupa care 14 valori eronate ceea ce inseamna 14 ore dupa care 1 valoare buna dupa care 3 valori eronate si tot asa.) As putea generaliza aceasta functie. M-am gandit la un Count ....if..... |
#2
Posted 12 December 2013 - 17:01
Parerea mea, avand in vedere ca observ o continua dezvoltare a acelui excel, este aceea de a renunta la a face calcule cu ajutorul formulelor din excel.
Cu alte cuvinte, calculeaza, fa-ti ce statistici vrei cu ajutorul codului si pe urma poti popula un excel (daca asta vrei neaparat) cu valorile aferente nevoilor tale. Cu toate ca nu se poate spune ca este chiar un cod IDE, folosirea unor astfel de metode se vor dovedi mai devreme sau mai tarziu, paguboase. In locul tau m-as orienta catre urmatorul scenariu. Presupunand ca device-ul ce genereaza valorile citite le scrie direct in excel, cu ajutorul unui cod scris le-as citi/analiza/trata asa cum am nevoie. Acest tabel l-as pastra ca "fisier sursa". Functie de rezultatele obtinute prin codul scris as popula un alt tabel excel cu noile date. Aduc ca argument "codul scris" plecand de la ideea ca in perspectiva dezvoltarii proiectului ai cele mai multe sanse ca la un moment dat excel-ul ca atare sa nu te mai poata ajuta. Foloseste-l ca interfata de citire a datelor si ulterior ca interfata de afisare a rezultatelor. |
#3
Posted 13 December 2013 - 08:55
Din cate am inteles, imi sugerezi sa scriu toate formulele si tot in cod (macrouri)?
|
#4
Posted 13 December 2013 - 12:55
...da...e mai simplu, mai usor de urmarit si de gasit bugurile...
|
#5
Posted 13 December 2013 - 14:39
=(SMALL(IF($D$5:$D$50=$D$6;MATCH(ROW($D$5:$D$50);ROW($D$5:$D$50));ROW(D6)+1)-SMALL(IF($D$5:$D$50=$D$6;MATCH(ROW($D$5:$D$50);ROW($D$5:$D$50));ROW(D6))-1) . Am gasit acesta formula care face count de cate ori se afla intre valoarea 1(Din coloana timp(frecventa)).Ar fi okay pentru ca as inmulti cu cat dureaza 1 inregistrare. Dar am o problema imi da erori de genul :
#NUM! #N/A #NUM! #N/A #NUM! #NUM! #N/A #NUM! #NUM! #N/A #NUM! #N/A #NUM! #NUM! #N/A #NUM! #NUM! #N/A #NUM! #NUM! |
#6
Posted 13 December 2013 - 19:03
Cod in Macro este o solutie de tip 50/50.
Eu ma gandesc la scrierea codului in VB, care nu are nicio legatura cu vreun Macro. In opinia mea tot ceea ce ar trebui facut cu tabelul 'Interfata de Afisare', ar fi, eventuala formatare a coloanelor functie de tipul de date ce ar trebui sa afiseze. Dar calculele de baza nu s-ar face decat in cod VB (sau alt limbaj), in acest fel avand controlul total asupra intregului proiect. Nu stiu cata programare cunosti, la fel si cat VBA sau ce capacitate ai de a manipula sau construi un Macro. La fel nu stiu daca acesta este un prioect 'unic' (ceva de genul, unul in viata si atunci chiar nu merita sa aprofundezi codul necesar), dar daca tu crezi ca este posibil sa nu te opresti aici, atunci nu exista alta solutie viabila decat sa manipulezi totul prin cod (orice limbaj) Daca nu crezi ca te vei mai lovi de astfel de probleme, atunci poti incerca sa gasesti fel de fel de solutii date de altii (cu bune intentii) dar pe care nu le vei intelege mai mult de 60% si chiar daca iti vei atinge obiectivul niciodata nu vei intelege cum ai ajuns la final (ce sa mai zic despre o eventuala experienta) Gandeste-te la solutiile gasite din surse externe (cum ar fi acest forum) ca la o invitatie de a aprofunda si de a invata/experimenta diverse solutii si nu la o modalitate de a aplica punctual o solutie la o problema existenta (si poate presanta pe moment). Edited by nexusm, 13 December 2013 - 19:05. |
Anunturi
Bun venit pe Forumul Softpedia!
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users