Microsoft Office Excel
uređuje Dragan Grbić

Bookmark and Share
Matična strana sajta
  Novo na sajtu
  Mapa sajta
  Beleške
  Kontakt
  Pretraga MSKB

 Blog Praktikuma
  RSS feed
  P@W @Tw

  Izvezi stranicu u PDF
 
Office Praktikum

Još o Excelu
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

 
       

Sponzori sajta

SBB CS 1.6 game server: 82.117.200.1
 
Connectivity by SBB

 


 

Informacije

NOVOSTI

I još dva nova priloga o Excelu
Novi prilozi o Wordu
Novi i prilozi u temi "razno o Officeu"
Novi članci o novostima u Officeu 2010!

SADRŽAJI ZA PREUZIMANJE

Lokalizacija Total Commandera 7.51Obe jezičke školjke za popularni program na srpskom sad funkcionišu u bilo kojoj varijanti Windowsa!
RNDalica.ExcelDodatak za Excel 2007/2010 za generisanje slučajnih podataka!
YuConv.ExcelDodatak za Excel 2007/2010 za konverziju pisama!
YuConvNetDodatak za Word 2007/2010 za konverziju pisama i kodnih rasporeda!

SKREĆEMO PAŽNJU

Kako pretraživati MSKB
a pronaći ćete i još mnogo novih sadržaja...

KONTAKT

Da li znate za pravila koja važe pri kontaktu sa nama? Molimo vas da se obavestite o tome!
 
POZIVAMO VAS

i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.

  (C) 2000-2010 Praktikum na Webu
 

Zaokrugljivanje po propisu

Nivo:  NIVO 2 - klinite za objašnjenje


Iako skoro da više ne baratamo novčićima manjim od jednog dinara, teorija i dalje nalaže račun do jedne pare. Još početkom 2005. godine, objavljen je nekakav nazovi-propis o zaokrugljivanju iznosa u novčanom prometu, po kome se decimalni iznosi do 24 pare zaokrugljuju na nulu, od 25 do 75 para na 50 para, a od 76 para naviše na jedan dinar. Tu tabelu je očigledno napravio neko ko nije naučio u osnovnoj školi kako se pravilno zaokrugljuju brojevi. I sad zbog njega ja moram da pišem VBA funkciju. Ne bih ni znao za to, nego prijatelj me je zamolio da mu pomognem da to reši u Excelu; pošto nije baš vičan formulama, mislio je da neće ići baš tako lako; ispalo je da je u pravu.

Sledi zanimljiva priča: da mi je neko drugi pričao, ne bih mu verovao...

Krenuo sam da pravim neke "kobasice" od formula, prisećajući se kako John Walkenbach, planetarni guru za formule u Excelu, u svojoj knjizi kaže da nema problema koji nije rešiv formulom u nekoj kombinaciji Excelovih funkcija. Išlo mi je trapavo, jer sam hteo da napravim što elegantnije rešenje, tako da ga čak mogu izdiktirati telefonom, ali nisam čak ni nalazio valjan rezultat.

Minut pre nego što sam zamalo rešio da napišem VBA funkciju, u spisku funkcija mi padne pogled na stavku MROUND. Moram priznati, prvi put sam je uočio, ali sam brzo shvatio da je to deo programskog dodatka Analysis ToolPak; taj add-in inače ne držim uključen u svom Excelu, ali sam zaboravio da ga isključim nakon obrade pitanja jednog posetioca Praktikuma. Brzo sam shvatio, to je adut: ta funkcija zaokrugljuje brojeve do najbližeg decimalnog umnoška koji bude naveden kao drugi argument; korak od 0,5 je upravo zaokrugljivanje na 50 para. Bilo bi dovoljno napisati =MROUND(A1;0,5) i posao bi bio gotov - da nije razlike između matematike i preporuke državnog organa, koji upošljava matematičke neznalice. Po toj preporuci, broj 1,75 treba da bude pretvoren u 1,50; funkcija MROUND će ga pretvoriti u 2,00. Sve ostale vrednosti, proverio sam, zaokrugljuju se na željeni način.

I tek tad, umesto da sam to učinio odmah, lupio sam ALT+F11, ušao u editor makroa i za tri minuta napisao prostu funkciju:

Function okruglo(broj As Single) As Single

decimale = (broj * 100) Mod 100
celo = Int(broj)

Select Case decimale
  Case Is < 25
    decimale = 0
  Case 25 To 75
    decimale = 0.5
  Case Is > 75
    decimale = 0
    celo = celo + 1
End Select

okruglo = celo + decimale

End Function

Nakon unosa u VBE, koristićete je ravnopravno sa drugim, prostim pisanjem formule =OKRUGLO(A1). Ne zaboravite da sigurnost rada makroa mora biti postavljena na srednji nivo (dijalog Alatke / Makro / Bezbednost, tj. Tools / Macro / Security). Ako želite da ovu funkciju pripremite tako da funkcioniše globalno u vašem Excelu, treba da je postavite u biblioteku ličnih makroa (Personal Macro Workbook). Da ne bih ovde po ko zna koji put ponavljao kako se to radi, skoknite na prilog Glavna biblioteka zajedničkih makroa i pročitajte sve o tome.

Dok sam pripremao ovaj prilog, vratio sam se problemu, pa sam nastavio da istražujem formule koje sam na početku napravio. Našao sam "onu elegantnu" koju sam tražio, da bih na kraju shvatio da ona, zapravo, radi isto kao i funkcija MROUND; ona glasi

=ROUND(A1/0,5;0)*0,5

I sada bi trebalo uneti malo grananja u tu formulu samo zbog nesrećnog 0,75:

=IF(MOD(A1*100;100)=75;TRUNC(A1)+0,5;ROUND(A1/0,5;0)*0,5)

John Walkenbach bi bio vrlo zadovoljan mojim radom, zar ne? Ali, ovo baš i nije za diktiranje telefonom... Pozdravljam neimenovanog eksperta koji je napisao onaj propis i želim mu da vidi ovu formulu pre nego što opet sedne da uređuje platni promet...

 

  (C) 2000-2010 Praktikum na Webu

PC 109


 
 

Vrh stranice  Prethodna stranica  Naslovna strana  Mapa sajta  Pretraga

AFORIZAM ZA DANAS OVIH DANA SLUŠAMO...

Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana.