Асуудал шийдвэрлэсэн нь (Инженер н.Бат-Эрдэнэ)

Зиак залуучууд, Exceler-үүдэд амралтын өдрийн мэнд хүргье. Та бүхэн сайхан амарч байна уу. Өнөөдөр ажил гайгүй байгаа болохоор нэгэн уншигчынхаа асуудлыг шийдэе гэж бодлоо. Нэлээд дээр манай нэгэн уншигч маань санамсаргүй сонголтын талаар нэг асуултыг өөрийн Facebook group (Engineering software users and developers) дээрээ асууж байсан юм.  Тухайн үед юун Excel, миний амралт маань ид дундаа орж байсан болохоор компьютер асаах ч сонирхолгүй үе таарсан. Одоо ч асуудлынх нь ач холбогдол байхгүй болсон биз дээ. Гэхдээ яахав тэрхүү асуудал нь надад сонирхолтой санагдаад, санаанаас гарахгүй байгаа юм. Тэгээд өнөө өглөө босоод асуудлыг шийдсэн юм. Иймээс энэхүү шийдлийнхээ талаар өнөөдрийнхөө нийтлэлээр та бүхэнд танилцуулая.

Зар сурталчилгаа


Үүссэн асуудал:

Инженер н.Бат-Эрдэнэд дараах зурагт үзүүлсэн тоон мэдээлэл өгөгджээ.rnd_table1

Энэхүү мэдээллийг дараах зурагт үзүүлсэн хэлбэрт шилжүүлэх шаардлага гарсан байна. Тодруулбал листээр өгөгдсөн мэдээллийг матриц хэлбэрт шилжүүлэх шаардлага гарсан байна.
rnd_table2

Гэхдээ зүгээр нэг матриц хэлбэрт шилжүүлэхээс гадна хамгийн гол нөхцөл нь C3:F6 мужид байрших тоон мэдээлэл санамсаргүй байршилд байх ёстой. Өөрөөр хэлбэл C3 нүдэнд байршиж бауй 62 гэсэн тоо E4 нүдэнд ч байршиж болно. Мөн C3:F6 мужид агуулагдах тоон мэдээлэл өөр хоорондоо давхардах ёсгүй. За өгөгдсөн тоон мэдээлэлд ийм нөхцөлүүд тавигдсан байна.

Аргагүй л инженер хүнд тулгардаг асуудлуудын нэг байх. Мань мэт шиг хэдэн тооны нийлбэр гаргаж, энд, тэнд бүртгэдэг хүмүүст түй ч хамаагүй асуудал байна даа 🙂 🙂 🙂 . Гэхдээ энэ асуудал сонирхол их татаад байсан юм. Иймээс та бүхэнд энэхүү асуудлыг хэрхэн шийдсэн тухайгаа нийтлэл болгон орууллаа. Шийдэл маань төгс ажиллаж байгаа эсэхийг сайтар шалгаагүй байгаа учраас алдаа мадаг байж магадгүй юм шүү.

Зар сурталчилгаа

Зарим нэг уншигч маань энэ чинь болохгүй байна, тэр чинь ажиллахгүй байна гэх мэтээр уурласан сэтгэгдэлүүүдийг бичиж байгаа харагддаг. Үнэхээр болохгүй байгаа бол та өөрөө асуудлыг шийдээд, алдааг маань надад хэлж өгч болно шүү дээ.


Асуудлыг шийдвэрлэсэн нь:

Асуудлын шийдэл, функцүүдийн хэрэглээг миний бие нэг бүрчлэн тайлбарлах нь цаг хугацаа их шаардах учраас та бүхэндээ шийдлийн үндсэн зарчмуудыг товч танилцуулаад явах болно.

Мэдээж бид санамсаргүй сонголтын асуудлыг шийдэж байгаа болохоор зайлашгүй RND функцийг ашиглана. Энэхүү функц нь [0, 1]-ийн хооронд санамсаргүй тоо үүсгэдэг функц юм. Томьёоллыг хялбарчилах үүднээс өгөгдсөн мэдээллийн байршилд бага зэрэг өөрчлөлт оруулж, C1:C16 мужид байршуулая. Үүний дараагаар RND функцийг ашиглаж, A1:A16 мужид [0,1] хооронд санамсаргүй тоон утгыг үүсгэнэ. Томьёоллын үр дүнг дараах зурагт үзүүлэв.

=RAND()

rnd_table3

C1:C16 мужид нийт 16 ширхэг тоон мэдээлэл өгөгдсөн байгаа тул бид 1-ээс 16 хүртлэх тоог санамсаргүйгээр B1:B16 мужид тодорхойлно. Хамгийн гол нь 1-ээс 16 тоо маань өгөгдсөн мужид өөр хоорондоо давхардах ёсгүй гэдгийг анхаараарай. Энэ асуудлыг бид RANK функцийн тусламжтайгаар, RND функцийн үр дүнг ашиглан гаргаж авна. Томьёоллын үр дүнг дараах зурагт үзүүлэв.

=RANK(A1,$A$1:$A$16)

rnd_table4

Дээрх томьёоллын үр дүн B1:B16 мужид 1-ээс 16 гэсэн бүхэл тоог санамсаргүй байршилд үүсгэсэн байна. RANK функц нь өгөгдсөн тооны эрэмбэ тодорхойлох зориулалт бүхий функц юм. Зиак ингээд бид эхний ээлжийн томьёоллыг хийчихлээ. Тодруулбал бид C1:C16 мужид өгөгдсөн тоон мэдээллийн санамсаргүй байршлыг B1:B16 мужид тодорхойлчихлоо.

Одоо 1-ээс 16 тоог E1:H4 мужид 4 мөр, 4 баганатай матриц хэлбэрт оруулах шаардлагатай. Энэ үед 1-ээс 16 тоог дэс дарааллаар матриц хэлбэрт оруулна. Өөрөөр хэлбэл дараах хэлбэрт шилүүлнэ гэсэн үг юм.

rnd_table5

Энэхүү үр дүн буюу E1:H4 мужид тодорхойлсон үр дүнг бид дараах томьёогоор гаргасан болно. Үүнд:

=COLUMN()-COLUMN($E$1)+1+(ROW()-ROW($E$1))*(ROWS($B$1:$B$16)/4)

Энэхүү томьёоны ажиллах зарчмыг тайлбарлах нь нэлээдгүй хугацаа орох учраас та бүхэн өөрсдөө учрыг нь олоорой. Зиак ингээд бид 1-ээс 16 тоог матриц хэлбэрт оруулсан учраас VLOOKUP функцийн тусламжтайгаар өгөгдсөн байршил дахь санамсаргүй сонголтыг C1:C16 мужаас авна. Энэхүү санамсаргүй сонголтыг дараах томьёоллоор хийнэ.

=VLOOKUP(COLUMN()-COLUMN($E$1)+1+(ROW()-ROW($E$1))*(ROWS($B$1:$B$16)/4),$B$1:$C$16,2,FALSE)

rnd_table6

Ингээд бидний хүссэн үр дүн болох санамсаргүй сонголттой, давхардаагүй, матриц хэлбэрт мэдээлэл маань бэлэн боллоо. Үр дүнг дараах зурагт үзүүлэв.

rnd_table7

За ингээд Инженер н.Бат-Эрдэнийн асуудлыг шийдчихлээ. Миний ч санаа амарлаа 🙂 🙂 🙂 . Хэрэв танд энэхүү асуудлыг шийдэх хялбархан арга байгаа бол бидэнтэй хуваалцаарай. Та бүхэнд амжилт хүсье.

Зар сурталчилгаа

Бусадтай хуваалцах

One Response to Асуудал шийдвэрлэсэн нь (Инженер н.Бат-Эрдэнэ)

  1. why хэлдэг:

    dawgui l yum gehdee l ilvv hyalbar arga baih yostoi. jhan nvser yuma.

Хариулт үлдээх

Таны и-мэйл хаягийг нийтлэхгүй.

shares