top of page
Data Transformation ဆိုင်ရာ လက်တွေ့ဥပမာများ
7.3  Column တစ်ခုတည်းတွင် အဆင့်ဆင့်ရှိနေသည့် Data များကို Row များအဖြစ်ပြောင်းလဲ ခြင်း

Software တစ်ခုမှ ထွက်လာသည့် တန်ဖိုးများသည် Column တစ်ခုတည်းတွင် အပေါ် အောက် ဖြည့်ထားရာ အဆိုပါ တန်ဖိုးများကို ညာဘက်တွင် ပြထားသည့် အတိုင်း သင့်လျော်သည့် Table Format ဖြစ်ရန် ယခုသင်ခန်းစာတွင် ပြောင်းလဲသွားမည် ဖြစ်ပါသည်။

အဆင့် ၁)

မူရင်း Data Range အား Power Query သို့ ထည့်သွင်းရန် အတွက် Table အဖြစ် ပြောင်းလဲပါ။ ပြောင်းလဲပြီးနောက် Table ပေါ်တွင် Cursor ချ၍ Data tab အောက်မှ From Range/Table ကို ကလစ်ပြီး Power Query အတွင်းသို့ ထည့်သွင်းပါ။ တစ်ဘက်ပါပုံအတိုင်း Power Query အတွင်းသို့  Data များ ရောက်ရှိသွားပါမည်။

Column တွင်ရှိနေသည့် Data ၅ ခုလျင် တစ် Row အဖြစ် ပြောင်းလဲလိုခြင်းဖြစ်သည်။ ထို့သို့ ပြောင်းလဲရန်အတွက် နံပါတ် စဉ် Column များ သတ်မှတ်ပါမည်။ တူညီသည့် နံပါတ်ရှိရာ တန်ဖိုးများကို Column တစ်ခုအဖြစ် ယူသွားပေးရန် သတ်မှတ်လိုခြင်း ဖြစ်သည်။

အဆင့် ၄)  

Modulo Column  ထည့်သွင်းရန်အတွက် Index Column ကို Select မှတ်၍ Add Column tab အောက်မှ Standard မှ တဆင့် Modulo ကိုရွေးချယ်ပါ။

ယခုအခါ Modulo Value များကို Column Heading များ အဖြစ်အသုံးပြုထားသည့် အောက်ပါ Table ကို ရရှိမည် ဖြစ်သည်။

အဆင့် ၂)

နံပါတ်စဉ်များ ရရှိရန် Index Column ထည့်သွင်းပါမည်။ ထည့်သွင်းရာတွင် 0 မှ ထည့်သွင်း ပါမည်။ ( အဘယ်ကြောင့် 0 မှ စတင်ထည့်သွင်းရသည်ကို နောက်အဆင့်များတွင် နားလည်သွား မည် ဖြစ်ပါသည်။ )

ထည့်သွင်းရန် Add Column tab အောက်မှ Index Column > From 0 ကို ရွေးချယ်ပါ။

အဆင့် ၆)

Index Column နှင့် အတူ မလိုအပ်သည့် null Column များကို ဖျက်ပါမည်။ ထို Column Column များကို Select မှတ်၊ Right Click ထောက်၍ Remove ကို ကလစ်ပါ။

image43.png
image44.png
image45.png
image46.png

အဆင့် ၃)

Index Column ထည့်သွင်းပြီးနောက် Modulo Column တစ်ခု ထပ်မံထည့်သွင်းပါမည်။ Modulo ဆိုသည်မှာ Excel Formula ဖြစ်သည့် MOD နှင့် အတူတူဖြစ်သည်။ ကိန်းဂဏန်း တစ်ခုကို အခြားကိန်းတစ်ခုနှင့် စားသည့်အခါ ရရှိသည့် စားကြွင်းတန်ဖိုးကို ဆိုလိုသည်။ ယခု မိမိတို့တွင် ရရှိထား သည့် Index Column မှ ကိန်းဂဏန်းများကို အခြားကိန်းတစ်ခုဖြင့် စား၍ စာကြွင်းကို ရှာဖွေလိုခြင်းဖြစ်ရာ မည်သည့်ကိန်းဖြင့်စားမည်ကို သတ်မှတ်ပေးရမည်ဖြစ်သည်။

ယခုရရှိထားသည့် Table တွင် Date တန်ဖိုးသည် ရှစ် Row မြောက်တိုင်းတွင် ပြန်လည် ရရှိ သည်ဖြစ်ရာ Modulo တန်ဖိုးကို 8 ဟု သတ်မှတ်ပါမည်။ တစ်နည်းအားဖြင့် Index Column တွင်ရှိသော ကိန်းဂဏန်းများကို ၈ ဖြင့် စား၍ ကျန်ရှိသည့် စားလဒ်တန်ဖိုးများကို ရယူလိုခြင်း ဖြစ်သည်။

image47.png
image48.png

Modulo Box ပေါ်လာသည့်အခါ 8 ဟု ထည့်သွင်းပါ။

image49.png

OK ပေးလိုက်သည့် အခါ အောက်ပါအတိုင်း Modulo Column အား မြင်တွေ့ရမည်ဖြစ်သည်။

image50.png

Modulo တန်ဖိုးအား 8 ဟု သတ်မှတ်ခဲ့ခြင်းဖြစ်သည့်အတွက် Index Column တွင် ကိန်းဂဏန်း 8 ရှိသည့် ( တနည်းအားဖြင့် Date တန်ဖိုး ပြန်လည်စတင်ပါဝင်သည့် ) Row တွင် Modulo Column ၌ 0 ဟု မြင်တွေ့ရမည်ဖြစ်သည်။ ထို့ကြောင့် ယခုအခါ Date Row များသည် 0 မှ စ၍ 7 နံပါတ်စဉ်များကို Modulo Column တွင် တွေ့ရမည် ဖြစ်ပါသည်။

အဆင့် ၅)

ယခုအခါ Modulo Column ရှိ 0  မှ 7 အထိ ကိန်းဂဏန်းများကို Column Heading များအဖြစ် သတ်မှတ်၍ ၎င်းတို့နှင့် သက်ဆိုင်သည့် Row များရှိ တန်ဖိုးများကို သက်ဆိုင်ရာ  Column များ အောက်တွင် ထည့်သွင်းပါမည်။ ထို့အတွက် Modulo Column ကို Select  မှတ်၍ Transform tab အောက်မှ Pivot Column ကို Click ပါ။

image51.png

Pivot Column Box ပေါ်လာသည့်အခါ Values Column တွင် Transaction ကို ရွေးချယ်၍ Aggregate Value Function တွင် Don’t Aggregate ကို ရွေးချယ်ပါ။

image52.png
image53.png
image54.png

အဆင့် ၇)

Date တန်ဖိုးများရှိသည့် Row များ၏ အခြား Column များတွင် အောက်မှ အခြားတန်ဖိုးများ တက်လာစေရန် Fill Up ပြုလုပ်ပါမည်။ ထို့အတွက် Date Column မပါဝင်ပဲ အခြား Column များကို Select  မှတ်၍ Transform tab အောက်မှ Fill > Up ကို ရွေးချယ် Click ပါ။

image55.png

ယခုအခါ အောက်ပါပုံတွင် မြင်တွေ့ရသည့်အတိုင်း Date ရှိသည့် Row များတွင် လိုအပ်သည့် အချက်အလက်များအားလုံးပြည့်စုံစွာ ရရှိသည်ကို တွေ့ရပါမည်။ ထို့ကြောင့် မလိုအပ်တော့သည့် အခြား Row များကို ဖယ်ထုတ်ပါမည်။

image56.png

အဆင့် ၈)

Date Column တွင် Filter ထောက်၍  null တန်ဖိုးများကို အမှန်ခြစ်ဖြုတ်ပါ။

image57.png

OK ပေးလိုက်သည့်အခါ Column အားလုံးတွင် တန်ဖိုးပြည့်စုံသည့် Row များသာ ကျန်ရှိတော့ မည် ဖြစ်ပါသည်။။

image58.png

အဆင့် ၉)

Data type များမှန်ကန်စွာ သတ်မှတ်၍ သင့်လျော်သည့် Column Heading အမည်များ ပေးလိုက်သည့်အခါ အောက်ပါအတိုင်း Dataset ကို မှန်ကန်စွာ ရရှိမည် ဖြစ်ပါသည်။

image59.png
bottom of page