srpskinacionalisti.com

Microsoft Office Excel

Форумска правила
Обавезно прочитајте Правилник о понашању на Форуму и форумски бонтон пре учешћа у дискусијама!
Аватар
Боки_СРС
Војвода
Војвода
 
Порука: 1048
Приступио: авг 2008
Место: Царство Небеско

Microsoft Office Excel

Порука Боки_СРС 9.5.2015. 18:43

Ову тему сам покренуо ради размене искуства и консултације везане за програм Ексел из породице програма Мајкрософт Офис.

Мене конкретно занимају формуле. Знам неке основне и знам да их има гомила и да могу да се комбинују, али већину њих не знам да користим.

Тренутно ме конкретно занима како бих могао да напишем формулу која би ми пребројала године од 1. до 2099. које испуњавају услов да се завршавају са 00 (тј. дељиве са 100), а да прве 2 цифре нису дељиве са 4 ??? Замлаћивао сам се синоћ 2 сата да то провалим и дошло ми је да пуцам у компјутер. :kill: Сигурно знате какав је то осећај! :mrgreen:
"ОПАСНЕ СУ КОРЕ ОД БАНАНЕ"
Коста
Војвода
Војвода
 
Порука: 6404
Приступио: мар 2006

Re: Microsoft Office Excel

Порука Коста 11.5.2015. 17:56

- ааа, `оћеш да се заебаваш са програмирањем? - црначки iе то пос`о...

- елем, наiбоље ти iе да "загазиш" и у VBA, он ти iе "доле" испод Ексела (ако уђеш у едитор макроа, односно VBA едитор) - многи и не знаiу да то постоiи, а проведу "цео живот" у Екселу.

- но- добро, на нивоу Ексела - ево сам ти на брзака направио две функциiе коiе можеш да пробаш за своi задатак (наравно да у математичкоi логици можеш исту ствар да урадиш на "милион" начина - ево ти само два:)

- претпоставимо да си прву колону (А1 па до А7000, заебавам се не треба ти тол`ко али може...) напунио растућим вредностима година (знаш фил-даун? - знаш. Развуци надоле до неке високе вредности преко оне твоiе 2099, можеш кол`ко `оћеш, рецимо до 7000)

- онда у кућици B1 ископираi следећу логичку формулу:

=IF(AND(NOT(MOD(A1;100));MOD(INT(A1/100);4));1;"")

- а можеш да пробаш и ову много краћу а у суштини исту:

=IF(NOT(MOD(A1;100))*MOD(A1;400);1;"")

- и ову формулу "развуци" на доле да досегне макар до кућице B2099. Формула ће остављати празна поља свуда сем за не-преступне "00-године" где ће стављати "1" (значи, биће ти све празно сем тамо негде свако стото поље.)

- онда негде (било где) у неку кућицу:

=COUNT(B1:B2099)

(а можеш и на краiу колоне, на позициiи B2100 да убациш аутосумирање) и добиiеш резултат: 15?! Ваљда iе то - то...

- и пази: помињеш "двоцифрене векове" - `ел` ти оћеш да рачунаш за 400 и за 800? Ако нећеш - имаћеш два мање: 13.

- поздрав.

(п.с: ово ради у Екселу 2003 - ваљда нису мењали синтаксу?!)
Правда држи земљу и градове...
Кадры решают всё! (Иосиф Виссарионович)
Коста
Војвода
Војвода
 
Порука: 6404
Приступио: мар 2006

Re: Microsoft Office Excel

Порука Коста 11.5.2015. 20:16

- Боки, `де си? - ебо-те, натерао си ме да смислим ово:

- па ти можеш у Екселу да користиш сопствене функције, онако како си их сам направио! Пази овамо, ако ово научиш бићеш Цар међу Ексел-корисницима:

- идемо да направимо функцију: Ne_Prestup_00

- из "обичног" Ексела иди: Tools - Macros - Visual Basic Editor

- било где (у "одељку" General) дефиниши (ископираi) ову функциiу:

Код: Изабери све
Public Function Ne_Prestup_00(God0 As Integer, God1 As Integer) As Integer

Dim nBroj As Integer, i As Integer
nBroj = 0

For i = God0 To God1
    If i Mod 100 = 0 And ((i / 100) Mod 4 <> 0) Then
        nBroj = nBroj + 1
    End If
Next i

Ne_Prestup_00 = nBroj
End Function


- врати се у Ексел и у неке две кућице дефиниши почетну и краiњу вредност година (рецимо: 1 у кућици D4 и 2099 у кућици E4) а рецимо у кућици F4 позови функциiу: =Ne_Prestup_00(D4;E4)

Код: Изабери све
=Ne_Prestup_00(D4;E4)


(пази добро! - делиметер (раздваiач) у Екселу је тачка-зарез (;) а у Вижуал-Беiзику зарез (,) - немоi то да те заебе!)

- кад промениш неку вредност у кућици E4 или D4 - и изађеш! - аутоматски ти се у кућици F4 рачуна број година које се завршаваiу са 00 а нису преступне по новом (Грегориiанском) календару.

- срећно, и учи!
Правда држи земљу и градове...
Кадры решают всё! (Иосиф Виссарионович)
Аватар
Боки_СРС
Војвода
Војвода
 
Порука: 1048
Приступио: авг 2008
Место: Царство Небеско

Re: Microsoft Office Excel

Порука Боки_СРС 11.5.2015. 22:49

Коста, брате, хвала ти. Али, знаш како? Ја бих волео да ми ти појасниш сваку од тих функција које си употребио у свом првом посту. Ово друго нећу. Нисам мислио да се бавим програмирањем.
Мислио сам само да научим што више постојећих функција да сам употребим, или евентуално у овом случају; али да знам зашто сам то написао, тј. која функција шта обавља. Ништа ми не значи да прекопирам твоје писаније и добијем 15 јер сам могао и сам да изборијим.
Неке од ових функција први пут видим. Волео бих да ми појасниш...

П. С.
И треба да испадне 15. Разлика је 13 дана из разлога што тај календар није примењен од 1. века него од неког тамо сабора. Занимљива чињеница је следеће: да је папа(к) одлучио да се тај календар примени од тог момента, чекало би се око 200 година да настане разлика међу календарима, а то њима није одговарало. Дотад би људи вероватно и заборавили ту реформу, а неки други папа би је можда и поништио.
"ОПАСНЕ СУ КОРЕ ОД БАНАНЕ"

Ко је тренутно на Форуму?

Корисници тренутно на Форуму: Нема регистрованих корисника и 17 гостију