មេរៀនទី៣: អនុគមន៍ ឡូស៊ីច (១)

មេរៀនទី៣: អនុគមន៍ ឡូស៊ីច

បង្រៀនដោយលោកគ្រូ: ទាវ ឈុនណន
ព្រឹទ្ធបរុស មហាវិទ្យាល័យ វិទ្យាសាស្រ្ត និង បច្ចេកវិទ្យា
នៃ សាកលវិទ្យាល័យកម្ពុជា
Tel: 077778647-070778647-0977778647
Yahoo, Skype, google: chhunnan

ជាក្រុមអនុគមន៏ដែលប្រើប្រាស់ជាប្រចាំនៅក្នុងជីរភាពរស់នៅប្រចាំថ្ងៃ។ ក្នុងអនុគមន៏ នេះសម្រាប់ធ្វើការគណនាលើលំហាត់ផ្នែកតក្កវិជ្ជា (ពិត​ ឬ មិនពិត) ។

ក. គនុគមន៏ IF អនុគមន៏នេះត្រូវបានប្រើប្រាស់សំរាប់បង្ហាញតម្លៃពិត ប្រសិនបើ លក្ខខ័ណ្ឌ ដែលយើងធ្វើ តេស្តនេះពិត ផ្ទុយមកវិញវានឹងបង្ហាញតម្លៃ មិនពិតក្នុង ករណីដែលលក្ខខ័ណ្ឌមិនពិត ។

=IF(Condition,True,Fasle)

ទម្រង់ទូទៅ
ដែល៖

–       Condition: ជាលក្ខខ័ណ្ឌរបស់ប្រធានលំហាត់ដែលដាក់ឲ្យដោះស្រាយ
–        True: ជាចម្លើយដែលស្របនឹង Condition
–       False: ជាចម្លើយដែលផ្ទុយ ឬ ច្រាស់ពី Condition

សម្គាល់

–      គ្រប់រូបមន្តទាំងអស់នៅក្នុងកម្មវិធី Exel គឺត្រូវចាប់ផ្ដើមដោយសញ្ញាស្មើ (=)
–       ឈ្មោះអនុគមន៏អាចសរសេរជាគអក្សរធំ (Capital) ក៏បាន ឬ អក្សរតូច (Small) Letter ក៏បាន កុំឲ្យតែសរសេរអនុគមន៏ខុស ។
–          គ្រប់អនុគមន៏ទាំងអស់សុទ្ធតែមានអញ្ញាត្តិ និង ផ្ដល់តម្លៃមកវិញ ។

ឧទាហរណ៏ ចូរសរសេរអកនុគមន៏ IF ដើម្បីកំណត់ការឡើងថ្នាក់ របស់សិស្ស ក្នុងថ្នាក់ រៀនមួយដោយ កំណត់តាមមធ្យមភាគរបស់គេម្នាក់ៗ បើមធ្យមភាគតិចជាង ៥០ ឲ្យ បង្ហាញពាក្យថា ធ្លាក់ (False) ហើយបើផ្ទុយពិនេះគឺបង្ហាញពាក្យថា ជាប់ (Pass) ។

  1. ចូរបង្កើត Table មួយសម្រាប់ដោះស្រាយលំហាត់
  2. កំណត់ Data Type  ឲ្យ Record

Code

Name

Sex

Average

Result

001

Kong Seanglim

Male

87

=IF(Average<50,”False”,”Pass”)

002

Lay Visna

Male

78

003

Chan Dara

Male

84

004

Sorn Rasmey

Famale

68

005

San Sokha

Famale

48

រក Condition របស់លំហាត់ឲ្យឃើញនៅក្នុង Column Result  កំណត់ទីតាំង Cell ដែល ត្រូវសរសេរអនុគមន៏​  IF (យកCell Average) គឺសរសេរតាម៖  =IF(Average<50,”fale”,”pass”) Enter ។

ខ.​ ការប្រើអនុគមន៏ Nested IF

គឺជាការសរសេរអនុមន៏តាម Function IFច្រើនបញ្ចូលគ្នាដើម្បីស្វែងរកតម្លៃពិតណាមួយ ។

=IF(Condition,True,IF(condition,True…..False))

ទម្រង់ទូទៅ
ចំណាំ
​ ៖ Nested IF យើងអាចសរសេរបានត្រឹមតែ ៨ IF តែប៉ុណ្ណោះបើលើសពីនេះវានឹង Error

ឧទាហរណ៏ ចូរសរសេរអនុគមន៏ដើម្បីរកប្រាក់ខែសុទ្ធរបស់សាស្រ្តាចារ្យម្នាក់ៗបន្ទាប់ពីបង់ពន្ធរួច។​ ការយកពន្ធលើប្រាក់ខែ គឺយកតាមគោលការណ៏ដូចខាងក្រោម៖

–       បើប្រាក់ខែតិចជាង ឬ ស្មើ១៦០ ដុល្លា នោះរដ្ឋមិនយកពន្ធទេ ។
–       បើប្រាក់ខែច្រើនជាង ១៦០ ដុល្លា និងតិចជាងឬ ស្មើ៣០០ ដុល្លានោះរដ្ឋយកពន្ធ ១០% ។
–       បើប្រាក់ខែច្រើនជាង ៣០០ដុល្លា នោះរដ្ឋយកពន្ធ ២០% ។

ចម្លើយ   ចូរធ្វើការពង្រាងដើម្បីដោះស្រាយលំហាត់

ការដោះស្រាយរកចម្លើយឲ្យឃើញពិតប្រាកដនូវ អ្វីដែលគេចង់បានជាដំបូង គឺត្រូវធ្វើការពង្រាងជាមុនសិន របៀបពង្រាងគឺធ្វើតាមគំរូខាងក្រោម៖

1. បង្កើតតារាង​​ និងវាយបញ្ចូលឈ្មោះសាស្រ្តចារ្យ នឹងប្រាក់ខែដែលមានទម្រង់ដូចនេះ៖
Excel 20132. ការប្រើអនុគមន៏ និងពង្រាងចម្លើយ

បន្ទាប់ពីបង្កើតារាង និងបានកំណត់ប្រភេទទិន្នន័យរួចហើយ យើងត្រូវសរសេរអនុគមន៏ ដើម្បីរកចម្លើយដែលប្រធានកលំហាត់គេឲ្យយើងដោះស្រាយ ។ ដោយធនុគមន៏ដែលយើងត្រូវយក មកដោះស្រាយនោះឈ្មោះអ្វី​ ហើយមានអញ្ញាត្តិប៉ុន្មនា ។

សម្រាប់លំហាត់ខាងលើនេះ យើងត្រូវប្រើអនុគមន៏មួយឈ្មោះថា IF ដែលអនុបីដែលមាន ទម្រង់ដូចខាងក្រោម៖​
Excel 2013ដោយអញ្ញាត្តិនីមួយៗ (Condition,True,False) ជាអ្នកផផ្ដល់តម្លៃឲ្យទៅឈ្មោះអនុគមន៏ IFបន្ទាប់មកអនុគមន៏ IF នឹងផ្ដល់តម្លៃទៅឲ្យ Cellដែលយើងបានសរសេរ ។

បន្ទាប់ពីបានស្វែងយល់អំពីអនុគមន៏នេះ គេត្រូវមើលប្រធានលំហាត់ម្ដងទៀតថាតើមាន ប៉ុន្មានលក្ខខណ្ឌ។ នៅក្នុងប្រធានលំហាត់ខាងលើគេសង្កេតឃើញមានបីសំនួរ ដូច្នេះ យើងត្រូវសរសេរ អនុគមន៏ IF សាំញ៉ាំចំនួនពីរដែលមានសញ្ឋាណដូចខាងក្រោម៖
Excel 2013នាំឲ្យយើងអាចកំណត់លក្ខខ័ណ្ឌខាងលើដូចខាងក្រោម៖
គ. អនុគមន៏ And

អនុគមន៏នេះប្រើជាឈ្នាប់ដាច់ខាត និងសម្រាប់ពិភាក្សាចំពោះតម្លៃនៅចនន្លោះ

=AND(Logical1,Logcal2,…,Logical30)

ទម្រង់ទៅទៅ
ដែល
Logical1,Logcal2,…,Logical30 ជាលក្ខខ័ណ្ឌរបស់អនុគមន៏ AND ប្រសិនបើការ ពិភាក្សារបស់ Logical ទាំង ៣០ នោះពិត វានឹងបង្ហាញពាក្យ True ផ្ទុយពីនេះវានឹងបង្ហាញពាក្យ False ។

Condition 1

Condition 2

Result

T

T

T

T

F

F

F

F

F

ឧទាហរណ៏
=AND(2+2=4,10+30=40) នោះលទ្ធផលគឺ True
=AND(2+2=4,10+30=40)​ នោះលទ្ធផលគឺ False

ឃ. ការផ្ដុំអនុគមន៏ IF នឹង AND ការផ្ដុំអនុគមន៏ IF នឹង​អនុគមន៏ ANDដើម្បីដោះស្រាយលំហាត់ដែលមានលក្ខខ័ណ្ឌច្រាសពីគ្នា

=IF(AND(Logical1,Logcal2,…,Logical30),True,False

ទម្រង់ ដែល AND(Logical1,Logcal2,…,Logical30) ក្លាយទៅជា Condition របស់អនុគមន៏ IF ហើយ True ជាចម្លើយដែលស្របនឹង Condition នឹង​ False ជាចម្លើយច្រាសនឹង Condition ។

ឧទាហរណ៏ នៅធនាគារមួយបានកំណត់ប្រាក់លើកទឹកចិត្តចំពោះ បុគ្គលិកទាំង ពីរភេទតាមគោលការណ៏ខាងក្រោមនេះ៖

  1. បើបុគ្គលិកជានារី ហើយមានកូនចាប់ពី ២នាក់ឡើង គឺធនាគារត្រូវបន្ថែម ២០ដុល្លារ ។
  2. បើបុគ្គលិកជាប្រុស ហើយមានកូនចាប់ពី ២នាក់ឡើងទៅ គឺ​ធនាគារបន្ថែមជូន១៥ដុល្លា

បើខុសពីលក្ខខ័ណ្ឌខាងលើនេះ​ នោះធនាគារមិនបន្ថែមជូនទេ ។
សំនូរ

–    ចូរសរសេរអនុគមន៏ដើម្បីគណនារកប្រាក់លើកទឹកចិត្តដែលបុគ្គលិកម្នាក់ៗនឹង ទទួលបាន?
Excel 2013ចម្លើយ

–      ចូរបង្កើតតារាង​ (Table)
–      រក Condition របស់លំហាត់ឲ្យឃើញ
–      ហើយកំណត់ទីតាំងដែលត្រូវសរសេរអនុគមន៏ ដោយសរសេរតាមគម្រូខាងក្រោម៖

=IF(AND(C5=”male”,D5>2),15,IF(AND(C5=”female”,D5>=2),20,0))

ង. អនុគមន៏ Datedif អនុគមន៏ Datedif គឺសម្រាប់គណនាស្វែងរកនៅចំនួនថ្ងៃ ខែ ឆ្នាំ ។

ទម្រង់ទូទៅ

=DATEDIF(Start Date,End Date,Prefix)

ដែល

–         Start Date: គឺជាថ្ងៃចាប់ផ្ដើម
–         End Date: គឺជាថ្ងៃបញ្ចប់
–         Prefix: គឺជាអក្សរដលតំណាងឲ្យថ្ងៃ(D) ខែ​ (M) និងឆ្នាំ (Y)
–         ប្រសិនបើចង់គណនារកចំនួនថ្ងៃគឺនៅត្រង់ Prefix ត្រូដាក់ “(D)”
–         ប្រសិនបើយើងចង់គណនារកចំនួនខែនៅត្រង់ Prefix ត្រូវដាក់ “(M)”
–         ប្រសិនបើយើងចង់គណនារកចំនួនឆ្នាំនៅត្រង់ Prefix ត្រូវដាក់ “(Y)”

ច. ការផ្ដុំអនុគមន៏ IF និង AND ង​ Datedifគឺជាអនុគមន៏មួយដែលគេសរសេរវាឡើងដើម្បីស្វែងរកនូវចម្លើយក្នុង លក្ខខ័ណ្ឌច្រើន ។

ឧទាហរណ៏ ក្រុមហ៊ុនសំណង់មួយ ដែលកម្មករទាំងអស់ធ្វើការគិត ទៅលើប្រាក់ក ម្រៃតាមថ្ងៃដែលគេបានធ្វើការ។ ដើម្បីលើកទឹកចិត្តដល់កម្មករក្រុមហ៊ុនបាន ផ្ដល់នូវ ឲ្យមានលក្ខខ័ណ្ឌដូចខាងក្រោម៖

–         ធ្វើការតិចជាង ឬស្មើ ១៥ថ្ងៃ នោះប្រាក់កម្រៃក្នុងមួយថ្ងៃគឺ ៥,០០០រៀល នឹងថែមជូន ១% នៃប្រាក់សរុបដែលធ្វើបាន ។
–         ធ្វើការច្រើនជាង ១៥ថ្ងៃ និងតិចជាង ឬស្មើ៣០ថ្ងៃ នោះប្រាក់កម្រៃក្នុងមួយថ្ងៃគឺ ៦,០០០ រៀលនិងថែមជូន ២% នៃប្រាក់ធ្វើការលើសពី ១៥ថ្ងៃ ។
–         ធ្វើការច្រើនជាង ៣០ថ្ងៃ នោះប្រាក់កម្រៃក្នុងមួយថ្ងៃគឺ ៧,០០០រៀល និងថែមជូន ៣% នៃប្រាក់ ធ្វើការលើសពី ៣០ថ្ងៃ ។

សំណួរ
–         ចូរសរសេរអនុគមន៏ដើម្បីគណនារកថ្ងៃសរុបដែលបុគ្គលិកម្នាក់ៗធ្វើបាន
–         ចូរសរសេអនុគមន៏ដើម្បីគណនារកប្រាក់​កម្រៃដែលបុគ្គលិកម្នាក់ៗទទួលបាន

ចម្លើយ នៅក្នុងលំហាត់នេះ ដើម្បីងាយស្រយលក្នុងការដោះស្រាយ យើងត្រូវកំណត់ នូវចំណុចសំខាន់ៗ ដែលជាគន្លិះនៃការប្រធានលំហាត់ជាមុនសិន ។

  1. បង្កើតតារាង ហើយបញ្ចូលទិន្នន័យដែលមានគំរូដូចខាងក្រោមនេះ
  2. ដើម្បីរកចំនួនថ្ងៃសរុបរបស់កម្មករម្នាក់ៗត្រូវដឹងថ្ងៃចាប់ផ្ដើមធ្វើការ និងថ្ងៃបញ្ចប់នៃថ្ងៃធ្វការ

Excel 2013រៀបដោះស្រាយលំហាត់ យើងអាចដោះស្រាយបាន២របៀប ដែលរបៀបទី១គឺ យើង ញែក ឲ្យដាច់រវាងអនុគមន៏ Datedif និង អនុគមន៏ IF AND ហើយរៀបទី២ គឺគេសរសេរ អនុគមន៏ IF ANDនិង Datedif បញ្ចូលគ្នាតែម្ដង​ ។

របៀបទី១ ដោយរបៀទី១ គឺយើងអាចគណនារក Datedif ឲ្យចេញសិនរួច ចាំរកតម្លៃ ថ្ងៃដែលរកឃើញហើយនោះបញ្ចូលទៅក្នុងអនុគមន៏ IF AND នៅក្នុង Cell Total Day (Cell: F5) ។

ដោយសរសេរអនុគមន៏នៅក្នុងCell​ F5 តាមអនុគមន៏ DATEDIF មើលគំរូ ខាងក្រោម៖
=DATEDIF(D5,E5,”d”) នោះវានឹងបានចម្លើយនៅក្នុង Cell F5

នៅពេលដែលយើងរកចំនួនថ្ងៃក្នុង Cell F5 ចេញហើយ គឺយើងអាចគណនារកប្រាក់កម្រៃ ដែលកម្មករម្នាក់ៗត្រូវទទួលបាន តាមរបៀបខាងក្រោម៖

=IF(AND(F5=>1,F5<=15),F5*5000*(1+0002E01),IF(AND(F5>15,F5<=30),((15*5000*(1+0.01))+(F5-15)*6000*(1+0.02),(15*5000*(1+0.01))+(15*6000*(1+0.02))+(F5-30)*7000*(1+0.03)))

របៀបទី១

របៀបននេះគឺមិនចាំបាច់សរសេរអនុគមន៏ឲ្យនៅដាច់ពីគ្នានោះទេ គឺបានន័យថាមិនចាំ បាច់ស្វែង រកចំនួនថ្ងៃនៅក្នុង Cell F5ឡើយគឺគេសរសេរអនុគមន៏ឲ្យបញ្ចូលគ្នាតែម្ដង ។

=IF(AND(DATEDIF(D5,E5,”d”)>=1,DATEDIF(D5,E5,”d”)<=15),(DATEDIF(D5,E5,”d”)*5000)*(1 +0.01),IF(AND(DATEDIF(D5,E5,”d”)>15,DATEDIF(D5,E5,”d”)<=30),(15*5000*(1+0.01))+(DATEDIF(D5,E5,””)-15)*6000*(1+0.02),(15*5000*(1+0.01))+(15*6000*(1+0.02))+(DATEDIF (D5,E5,”d”)-30)*7000*(1+0.03)))

ឆ. អនុគមន៏ OR

អនុគមន៏ OR គេប្រើសម្រាប់ជាឈ្នាប់មិនដាច់ខាត និយាយឲ្យខ្លីបើ Logical ណាមួយពិតនោះវានឹងយកជាការបាន ។

ទម្រង់ទូទៅ

=OR(Logical1,Logical2,…,Logical30)

ដែល Logical1,Logical2,…,Logical30 ជាលក្ខខ័ណ្ឌរបស់អនុគមន៏ OR ប្រសិនបើ ការ ពិភាក្សា របស់ Logical ណាមួយពិតនោះវានឹងបង្ហាញពាក្យ True តែប្រសិនបើ Logical ណាមួយមិនពិតនោះវានឹងបង្ហាញពាក្យ False ។

ឧទាហរណ៏

=OR(2+2=4,10+20=30)​ ​​នោះលទ្ធផលគឺ True
=OR(2+2=4,10+20=50) នោះលទ្ធផលគឺ False