Excel программ дээр элдэв янзийн загвар боловсруулж байхад хачин жигтэй асуудлуудтай байнга тулгарч байдаг. Тэдгээр асуудлуудыг тухай бүр нь шийдвэрлэж, загвартаа ашигладаг. Excel загварт ашиглагдаж буй тухайлсан нэг асуудал нь энгийн Excel хэрэглээнд тийм ч чухал ач холбогдолтой биш мэт санагдавч, боловсруулж буй загварт маань маш чухал үүргийг гүйцэтгэж байдаг. Үүнийг нэг жишээ бол крилл үсгийг англи үсгэнд хөрвүүлэх асуудал юм. Жишээлбэл Амгалан гэдэг Монгол нэрийг англи үсгээр илэрхийлвэл Amgalan гэж бичигдэнэ. Энэ кейс саяхан боловсруулсан нэг загвар дээр тохиолдсон юм.
Тухайн байгууллага Монгол болон гадаад удирдлагуудтай. Бүртгэл тооцооны ажилчид нь тайлан мэдээ гаргахдаа ажилчидынхаа нэрсийг Монгол болон Англи галигаар бичиг шаардлагатай болдог. Өнөөдрийн байдлаар энэ бүгдийг гар аргаар дандаа хийж гүйцэтгэдэг байна. Тэгвэл энэ механик ажиллагаатай процессийг Excel программ ашиглаж хэрхэн автоматжуулсан талаарх шийдлийг өнөөдрийнхөө нийтлэлээр та бүхэндээ танилцуулая.
Үүссэн асуудал:
Бидэнд Excel программын A1:A17 мужид компанийн ажилчдын нэр өгөгдсөн байна.
Энэхүү мэдээлэл буюу нэрсийн жагсаалтыг D1:D17 мужид Англи галигаар бичих шаардлагатай болжээ. Үр дүнг дараах зурагт үзүүлэв.
Асуудлыг шийдвэрлэсэн нь:
Хэрэв та дээрх асуудлыг хялбар шийдэх аргыг мэдэхгүй байгаа нөхцөлд гараар нэг бүрчлэн бичихээс өөр ямар ч сонголт байхгүй. Хэрэв гар аргаар бичвэл нэлээдгүй хугацааг энэ ажилд зарцуулна. Өгөгдсөн мэдээлэл 1000 эсвэл 5000 байвал яах бэ гэсэн асуултыг та өөрөөсөө асуугаад үзээрэй.
Бид дээрх асуудлыг шийдвэрлэн хамгийн хялбар арга бол VBA код бичих явдал юм. Тодруулбал Бид Excel программд VBA код ашиглаж Translator хэмээх шинэ функцийг үүсгэнэ. Бичигдэх VBA кодны хувьд ажиллах үндсэн зарчим нь Монгол үсгэнд тохирох Англи үсгийг үүсгэж, тус үсгээр Монгол үсгийг солих явдал юм.
Function Translator(Mongolian As String)
letters = Array(“A”, “B”, “V”, “G”, “D”, “E”, “YO”, “J”, “Z”, “I”, “Y”, “K”, _
“L”, “M”, “N”, “O”, “P”, “R”, “S”, “T”, “U”, “F”, “KH”, “TS”, _
“CH”, “SH”, “SCH”, “”, “Y”, “”, “E”, “YU”, “YA”, “a”, “b”, “v”, _
“g”, “d”, “e”, “yo”, “j”, “z”, “i”, “y”, “k”, “l”, “m”, “n”, “o”, _
“p”, “r”, “s”, “t”, “u”, “f”, “kh”, “ts”, “ch”, “sh”, “sch”, “”, “y”, “”, “e”, “yu”, “ya”, “#”)
i = 1040
For Each letter In letters
Dim val As String
Select Case letter
Case “YO”
val = ChrW(1025)
Case “yo”
val = ChrW(1105)
Case “#”
val = ChrW(8470)
Case Else
val = ChrW(i)
i = i + 1
End Select
Mongolian = Replace(Mongolian, val, letter)
Next letter
Translator = Mongolian
End Function
Одоо Translator хэмээх шинэ VBA функцийг хэрхэн ашиглах талаар одоо танилцуулая. Юуны өмнө Excel программын Developer цэснээс Visual Basic коммандыг өгч, Visual Basic Editor цонхыг нээнэ.
Үүний дараагаар Visual Basic Editor-ийн тухайн Excel файлд шинээр Модуль үүсгэнэ.
Ингээд шинээр үүсэх модульд дээрх VBA кодыг хуулж тавьсанаар бидний Translator функц ажиллахад бэлэн болно. Энэ талаар дараах зурагт үзүүлэв.
За ингээд Translator функц ажиллахад бэлэн боллоо. Одоо Visual Basic Editor программаа хаагаад Excel файл дээр очъё. Excel программын D1 нүдэнд:
=Translator(A1)
гэсэн томъёоллыг оруулж, тус томъёог D17 нүд хүртэл хуулая. Үр дүнг дараах зурагт үзүүлэв.
Ингээд л бидний хүссэн үр дүн маш богино хугацаанд гарчихлаа. Та бүхэн туршаад үзээрэй. Амжилт хүсье.
Сэтгэгдэл үлдээх
Маш их баярлалаа хэрэг боллоо, Харин Ө үсэг л тиймхэн байна
vba кодоо хуулж тавьсан ч болохгүй байх юм
“” кавичкыг нь “” болгож replace хийнэ. Дараа нь Case “yo” гэснийг Case “YO” болгоод ажиллуулвал болж байна шүү.
Гайхалтай юм аа, Тоог үгээр илэрхийлэх макро хэрхэн бичих вэ
A3:B38 – vlookup range (mongol useg, latin useg). if vlookup-d oldoogui bol hooson zai avah. Jishee case n: “Баатар Болд” gesen buten neriig haih uyed
=PROPER(CONCAT(
IFNA(VLOOKUP(
MID(UPPER(D2);SEQUENCE(LEN(D2));1);A3:B38;2;FALSE);
” “)
))
Nice! Ene gxde Я,Ё,Е,Ц,Ч,Ш zereg latin usgeer olon bichigddg usegnuudiig ylgaj xiix bolomj bga bolvu?
1. Anhaarah: windows/excel locale-s hamaaraad argument tusgaarlagch tseg taslal bish taslal baij bolno.
2. Note: Hooson zaig hooson zaigaar orluulahaar bichigdev.
3. Tomyo:
=PROPER(CONCAT(
INDEX(
{” “;”A”;”B”;”V”;”G”;”D”;”Ye”;”Yo”;”J”;”Z”;”I”;”I”;”K”;”L”;”M”;”N”;”O”;”Ö”;”P”;”R”;”S”;”T”;”U”;”Ü”;”F”;”Kh”;”Ts”;”Ch”;”Sh”;”Sh”;”i”;”y”;”i”;”E”;”Yu”;”Ya”};
MATCH(
MID(UPPER(E2);SEQUENCE(LEN(E2));1);
{” “;”А”;”Б”;”В”;”Г”;”Д”;”Е”;”Ё”;”Ж”;”З”;”И”;”Й”;”К”;”Л”;”М”;”Н”;”О”;”Ө”;”П”;”Р”;”С”;”Т”;”У”;”Ү”;”Ф”;”Х”;”Ц”;”Ч”;”Ш”;”Щ”;”Ъ”;”Ы”;”Ь”;”Э”;”Ю”;”Я”};0))
))