Динамик матриц үүсгэх томъёолол

Зиак залуучууд амралтын өдрийн мэнд хүргэе. Та бүхэн сайхан МАРТ-лсан уу?, Сайхан МАРТ-луулсан уу?Өчигдөр манай талыхан их ажлын ард гарсан байх гэж найдаж байна 🙂 🙂 🙂 . Joke шүү манайхаан. Манай бүсгүйчүүд маань бид бүгдийнхээ найдвартай ар тал, бат бүх цайз хэрэм болж явдагт өдөр болгон баярлаж явдаг шүү гэж манай бүх залуус дуу нэгтэйгээр хэлэх байх. Иймээс ганцхан МАРТ08-ны өдөр гэхгүйгээр  бүх л өдрүүдэд бүсгүйчүүдийнхээ эрхийг хамгаалж яваарай. Зиак ингээд өнөөдрийнхөө нийтлэлдээ орцгооё.

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

Өнөөдөр миний бие Excel программ дээр хэрхэн динамик матриц үүсгэж, томъёолох тухай бичих болно. Нийтлэлийн маань гарчиг нэлээд сүртэй өгөгдсөн байна уу? гайгүй байгаа. Гэхдээ та бүхэн энэ нэр томъёоноос нээх сүрдэх хэрэггүй. Зүгээр л тэгш өнцөг хэлбэртэй олон ширхэг тоог хэрхэн үүсгэх тухай л өгүүлэх юм. Би өөрөө л динамик матриц гэж нэрлээд байгаа юм. Яг зөв нэршил үү? эсвэл буруу нэршил үү? гэдгийг хэлж мэдэхгүй байна. Мэддэг нэг нь нийтлэлийн нэрийг санал болгож болно шүү.


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

Юуны өмнө матриц гэсэн нэр томъёог тодруулая. Матриц гэсэн нэр томъёо маань математикын шинжлэх ухаанд өргөн ашиглагддаг. Бүр онолын тодорхойлолтыг хэлбэл Тэгш өнцөгтэй хүснэгт хэлбэрээр өгөгдсөн тоонуудын олонлогийг матриц гэнэ. Матриц нь дотроо үндсэн хоёр төрөлтэй байна. Тус хоёр төрлийг дараах зурагт үзүүлэв.

Тэгэхээр өнөөдөр бидэнд үүссэн гол асуудал бол дээрх 2 хэлбэртэй матрицыг Excel программ дээр томъёо ашиглан хэрхэн үүсгэх тухай юм. Бүр тодруулбал матриын хэмжээсийг өгөхөд автоматаар тухайн хэмжээстэй матриц үүсэх загварчлал. Үүнийг л миний бие динамик матриц гэж нэрлээд байгаа юм. Жишээлбэл 5 мөртэй, 3 баганатай матриц үүсгэхийн тулд 5, 3 гэсэн өгөгдлийг Excel программд оруулахад автоматаар тухайн хэмжээстэй матриц үүсэх явдал юм. Энэ талаар дараах зурагт үзүүлэв.

Дээрхтэй адил зарчмаар Excel программ дээр өөрийн хүссэн хэмжээстэй матирыг томъёолж чадвал дараа, дараагийн загварчлалд маш чухал үүрэг гүйцэтгэдэг. Зиак ингээд гол асуудалдаа орцгооё.

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


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

Аливаа асуудал өөрийн гэсэн хязгаартай байдаг. Үүнтэй адилаар бидний динамик матрицын загварын дээд хязгаарыг 20 мөр, 20 баганаар хязгаарлая. Тодруулбал бид хамгийн ихдээ 20 мөртэй, 20 баганатай матриц үүсгэх боложтой гэсэн үг юм. Энэхүү хязгаарын бүсийг дараах зурагт дүрслэн үзүүлэв.

Тэгэхээр бид шаргал өнгөөр будсан талбайд өөрсдийн матрицыг үүсгэнэ гэсэн үг юм. Бид динамик матриц үүсгэхийн тулд COLUMN, COLUMNS, ROW, ROWS, IF, OR гэсэн 6 төрлийн функцийг ашиглана. Зиак ингээд загварчлалын ажлаа эхэлцгээе.

Нэн тэргүүнд бид матрицын эхний цэг буюу E4 нүдний утгыг тодорхойлж өгнө. Тус цэгийг дараах томъёоллоор тодорхойлно.

=COLUMN()-COLUMN($E$4)+1

Энэхүү томъёолол нь баганын дагуух дугаарлалтыг хийнэ. Үр дүнг E4 нүдний томъёог F4:X4 мужид Copy/Paste хийх замаар харж болно. Дараагийн алхамд дээрх томъёоллыг мөрийн дагуух дугаарлалт хийх томъёоллоор өргөтгөнө. Өргөтгөсөн томъёоллыг доор үзүүлэв. Мэдээж энэхүү өргөтгөл E4 нүдний томъёонд хийгдэж байгаа гэдгийг та бүхэн анхаараарай.

=COLUMN()-COLUMN($E$4)+1+(ROW()-ROW($E$4))

Дээрх томъёоллыг E4 нүдэнд оруулж улмаар E4 нүдний томъёоллыг E4:X23 мужид Copy/Paste хийнэ.  Үүний үр дүнд бидний матрицын мөр болон баганын дагуух дугаарлалт хийгдсэн байх болно. Үр дүнг дээрх зурагт үзүүлэв.

Бидний E4 нүдэнд оруулсан томъёолол нь ямар нэгэн баганын болоод мөрийн дагуух хязгаарлалт хийгдээгүй байгааг та бүхэн анзаарсан байх. Иймээс бид үүсгэх матрицынхаа боломжит дээд хэмжээнд хүртэл матрицыг үүсгэсэн.

Одоо тэгвэл E4 нүдэнд бичигдсэн томъёололд баганын хязгаарлалтийг хийж өгье. Өөрөөр хэлбэл бид C3 нүдэнд үүсгэх матрицын баганын тоог оруулж өгнө. Улмаар тус оруулсан баганын тоог дараах байдлаар E4 нүдний томъёололд оруулж, томъёог өргөтгөнө. Үр дүнг мэдээж E4:X23 мужид Copy/Paste хийнэ.

=COLUMN()-COLUMN($E$4)+1+(ROW()-ROW($E$4))*$C$3

Дээрх зурагт үзүүлсэн үр дүнд анализ хийе. Бид томъёололд баганын дагуух хязгаарлалтыг хийж өгсөн. Өөрөөр хэлбэл C3 нүдэнд 5 гэсэн утга оруулж, тухайн нүдийг мөрийн дагуух дугаарлалт хийсэн томъёогоор үржүүлсэн. Тодруулбал (ROW()-ROW($E$4))*$C$3 гэсэн томъёолол.

Томъёоллын үр дүнгээс харахад баганын дагуух хязгаарлалт хийгдээгүй юм шиг харагдавч мөрийн дагуух тоон дугаарлалт зөв зүй тогтлоор буюу 5 алхамаар нэмэгдэж байгааг та бүхэн анзаараарай. Тэгэхээр бид баганын дагуух хязгаарлалтыг 5 гэж өгсөн учраас томъёоллын үр 5 баганын дугаарлалт яваад 1 мөр доошилж байна.

Бид томъёонд баганын дагуух хязгаарлалтыг хийсэн ч гэсэн хязгаарлалтанд ороогүй тоонууд харагдаж байна. Иймээс бид мөр болон баганын дагуу хязгаарлалтанд ороогүй тоонуудыг үл харагдах төлөвт оруулах ёстой болж байна. Үүнийг бид дараах томъёоллоор шийднэ. Энэ нь E4 нүдэнд бичигдсэн томъёоллыг өргөтгөсөн болно.

=IF(OR(ROWS($E$3:E4)>$C$2,COLUMNS($E$3:E4)>$C$3),
"",COLUMN()-COLUMN($E$4)+1+(ROW()-ROW($E$4))*$C$3)

Зиак ингээд бидний асуудал шийдэгдлээ. Одоо бид өгөгдсөн хязгаарлалтын хүрээнд дурын хэмжээстэй хүссэн матрицыг үүсгэх боложтой боллоо. Жишээ болгож 15 мөртэй, 4 баганатай матриц үүсгэе. Үүний тулд C2 нүдэнд 15, C3 нүдэнд 4 гэсэн утгуудыг гараас оруулж өгнө. Үр дүнг дараах зурагт үзүүлэв.

Зиак ингээд бид асуудлыг томъёолж чадлаа. Дараагийнхаа нийтлэлээр динамик матриц үүсгэх энэхүү техникийг бодит хэрэглээнд хэрхэн ашиглах талаар нэгэн кейсийг загварчлах болно.

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


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

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

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

shares