Занимавам се с електронни таблици от много години. Ако можете да разберете смисъла им, тяхното ползване несъмнено ще Ви направи много по-добри при работата с компютрите. А и не само. Идеята е проста, но страшно добра. Не знам дали имате представа наистина колко е добра.
Всичко в Електронните таблици се върти около една дума – Адрес. Адресът на една клетка в Excel е буквата на колоната, в която се намира и номерът на реда, на който е клетката. Колоните са букви от английската азбука, а редовете са арабски цифри. Например в клетка A1
(първа колона, ред 1)е числото 7, а в колона B2
(втора колона, ред 2) е текста „Маруля”. Съществува и друг тип адресиране, но засега това не е важно.
Сега се замислете колко пъти правите едно и също нещо с различни начални данни. Например едно квадратно уравнение. Ами задавате параметрите a, b
и c,
смятате
дискриминанта, намирате x1 и x2. Пресмятането на лихвите по заема, сметките за ток и вода, печалба на фирмата, данъка на заплатата Ви и т.н. примери, описани от колегите преди мен в раздела показват колко често се налага да смятаме едни същи алгоритми с различни входни данни. И ако мислите за тези данни като за адреси, а не за числа и текст, то с Електронните таблици ще може да правите доста неща.
В уроците досега са написани доста неща и няма да ги повтаряме, но нека да Ви напомня най-важното
:
В Електронните таблици се въвежда текст и числа. Въвеждат се нормално, без префикси или суфикси, т.е. (лв., год.) и т.н., като външният им вид се променя впоследствие с командите за форматиране на клетката. Ако напишете директно 20лева, то програмата разпознава това като текст и следователно не може да участва в следващи пресмятания.
Датата е вид число, което се използва основно при смятане на лихви, като 01.01.1900г. за Excel е числото 1.
Помнете винаги за адресите. В колона F съм записал формулите, които са използвани на съответните редове в колона Е. Умножаваме адресът на клетката, а не числото, което е записано там. Така, ако впоследствие хранителните ни стоки намалят или увеличат количеството си, или се промени цената, то общата сума веднага ще се промени автоматично.
Относително и абсолютно адресиране. В клетка Е2 е записана формулата „=C2*D2”. Това означава, че в клетката Е2 се умножава клетка, която е на същия ред и две колони вляво(С2) с клетка, която е на същия ред и една колона вляво( D2) . Защо така абстрактно Ви го обяснявам. Защото ако напишем формулата „=C2*D2” и копираме в клетки Е3, Е4 и Е5, то ще се повтори същото действие за съответни ред. Това означава, че в клетката Е3 се умножава клетка, която е на същия ред и две колони вляво(С3) с клетка, която е на същия ред и една колона вляво( D 3 ) . Което е и целта на занятието. Така, ако напишем формулата само на първия ред(колкото и да е сложна), можем да я копираме за секунди на всичките 65536 реда на Excel. Това се нарича относително адресиране. Абсолютното адрсиране се използва, ако например тези цени трябва да ги умножим по курса на долара или еврото. Тогава в една клетка (например G1) пишем стойността на еврото, като във формулата в която участва ще се фиксират колоната и реда със знак $. Ако пишем $G$1 във формула, то при копиране по хоризонтала или вертикала този адрес винаги е $G$1 .
Накрая ще Ви дам два примера, които ще Ви помогнат да работите с Excel.
Първото е един код на VB, с който може да превръщате числа в словом. 124 – сто двадесет и четири. Това може да допълни урока за изготвянето на фактура.
Option Compare DatabaseOption ExplicitGlobal Rupi As VariantFunction Slovom(Fsum) Dim Ssum As SingleDim Pr1 As SingleDim Pr2 As IntegerDim Pr3 As SingleDim Slov2 As String 'Dim M(12) As StringStatic M(12) As StringM(1) = "edin"M(2) = "dva"M(3) = "tri"M(4) = "chetiri"M(5) = "pet"M(6) = "shest"M(7) = "sedem"M(8) = "osem"M(9) = "devet"M(10) = "deset"M(11) = "edinadeset"M(12) = "dvanadeset" On Error GoTo Err1 Ssum = Int(Fsum)If Ssum > 999999 Or Ssum < 0 Then If MsgBox("Stoinostta e izvyn obhvata!", vbCritical + _ vbOKOnly, "ERROR") = vbOK Then Exit Function End IfElseIf Ssum = 0 Then Slovom = "nula" Exit FunctionEnd If If Ssum < 13 Then Slov2 = M(Ssum)Else If Ssum < 20 Then Slov2 = M(Val(Mid(Ssum, 2, 1))) + "nadeset" Else If Ssum < 1000 Then If Ssum < 100 Then If ((Ssum / 10) - (Ssum 10)) = 0 Then Slov2 = M(Val(Mid(Ssum, 1, 1))) + "deset" Else Slov2 = M(Val(Mid(Ssum, 1, 1))) + "deset" + " i " + _ M(Val(Mid(Ssum, 2, 1))) End If Else If Ssum < 200 Then Slov2 = "sto " Else If Ssum < 300 Then Slov2 = "dvesta " Else If Ssum < 400 Then Slov2 = "trista " Else Slov2 = M(Val(Left(Ssum, 1))) + "stotin " End If End If End If Pr1 = Val(Right(Ssum, 2)) If (Pr1 <> 0) And ((Pr1 < 20) Or _ ((Pr1 / 10 - Pr1 10) = 0)) Then Slov2 = Slov2 + "i " End If If (Pr1 <> 0) Then Slov2 = Slov2 + Slovom(Pr1) + " " End If End If Else If Ssum < 2000 Then Slov2 = "hiliada " Else If Ssum < 3000 Then Slov2 = "dve hiliadi " Else If Ssum < 10000 Then Pr2 = 4 Else If Ssum < 100000 Then Pr2 = 5 Else Pr2 = 6 End If End If Slov2 = Slovom(Val(Left(Ssum, Pr2 - 3))) + " hiliadi " End If End If Pr3 = Val(Right(Ssum, 3)) If (Pr3 <> 0) And ((Pr3 < 100) Or _ (Pr3 / 100 - Pr3 100 = 0)) Then Slov2 = Slov2 + "i " End If If (Pr3 <> 0) Then Slov2 = Slov2 + Slovom(Pr3) End If End If End IfEnd IfSlovom = Slov2 Err1: Exit Function End Function
Поводът за втория пример е един файл на Excel, който се разпространява от Министерството на земеделието по земеделските производители, като те трябва от 60 страници таблица да попълнят само 4-5 реда и да го разпечатат. Таблицата има защита и не може да се коригира, т.е. за 5 цифри ще разпечатат 60 листа таблица. Ето как можем да се справим с това:
С две думи: Маркираме всичко, копираме, отваряме нов файл и в него копираме само ширината на колоните. После копираме всичко в новия файл. Така си имаме два еднакви файла, като вторият няма защита.
Накрая искам да кажа две думи за старите Електронни таблици, които хората ползваха преди Били Гейтс да прибере всичко.
Една от най-добрите такива през годините на DOS беше Lotus 1-2-3. Нашите програмисти през годините на комунизма я бяха откраднали(заедно с други програми като dBase, Clipper и Word) и я бяха кръстили „Микроплан” („запазена марка” на Микросистеми). Впоследствие излезе Quattro Pro на Borland, но 1-2-3 си остана класика. В първите версии на Excel имаше преведено меню на 1-2-3.