Using Conditional Columns in Power Query Like a Pro
Introduction to M Language in Power Query for Beginners
Understanding Cardinality in Power BI Data Models

Introduction to M Language in Power Query for Beginners

পাওয়ার কোয়েরিতে M ল্যাঙ্গুয়েজ: একদম নতুনদের জন্য একটি সহজ গাইড

ডেটা নিয়ে কাজ করতে ভালোবাসেন? আজকাল ডেটা অ্যানালাইসিস এবং রিপোর্টিংয়ের জন্য পাওয়ার কোয়েরি (Power Query) একটি দারুণ টুল, বিশেষ করে যারা মাইক্রোসফট এক্সেল বা পাওয়ার বিআই (Power BI) ব্যবহার করেন। আর এই পাওয়ার কোয়েরির প্রাণকেন্দ্র হলো M ল্যাঙ্গুয়েজ। আপনি হয়তো ভাবছেন, "M ল্যাঙ্গুয়েজ আবার কী? এটা কি খুব কঠিন কিছু?" একদম না! আজকের এই পোস্টে আমরা M ল্যাঙ্গুয়েজকে এমনভাবে উপস্থাপন করব যেন মনে হয় আপনি আপনার প্রিয় চা-কফির আড্ডায় নতুন কোনো মজার বিষয় শিখছেন।

Table of Contents

M ল্যাঙ্গুয়েজ কী?

M ল্যাঙ্গুয়েজ, যার পুরো নাম "Power Query M formula language", হলো পাওয়ার কোয়েরির ভেতরের ভাষা। যখন আপনি পাওয়ার কোয়েরিতে বিভিন্ন ধাপ (steps) অনুসরণ করে ডেটা পরিষ্কার করেন বা রূপান্তর করেন, তখন আসলে পর্দার আড়ালে M ল্যাঙ্গুয়েজ কোড তৈরি হয়। আপনি যদি কখনো পাওয়ার কোয়েরি এডিটর খুলে 'Advanced Editor'-এ উঁকি দেন, তাহলে এই কোডগুলো দেখতে পাবেন। এটা অনেকটা রিকশার প্যাডেল ঘোরানোর মতো – আপনি প্যাডেল ঘোরাচ্ছেন, আর রিকশা চলছে, কিন্তু ভেতরের চেইনের মেকানিজমটা আপনি হয়তো সবসময় খেয়াল করছেন না। M ল্যাঙ্গুয়েজ হলো সেই ভেতরের চেইনের মেকানিজম!

কেন আপনার M ল্যাঙ্গুয়েজ শেখা উচিত?

"আমি তো ক্লিক করেই কাজ চালাতে পারছি, তাহলে কেন এই M ল্যাঙ্গুয়েজ শিখব?" – এমন প্রশ্ন আসতেই পারে। এর কিছু চমৎকার কারণ আছে:

  • আরও বেশি নিয়ন্ত্রণ: অনেক সময় পাওয়ার কোয়েরির ইউজার ইন্টারফেস (UI) দিয়ে সব কাজ করা যায় না। M ল্যাঙ্গুয়েজ জানলে আপনি কাস্টম লজিক বা জটিল ডেটা রূপান্তর তৈরি করতে পারবেন যা UI দিয়ে সম্ভব নয়।
  • দক্ষতা বৃদ্ধি: বারবার একই কাজ করার বদলে M ল্যাঙ্গুয়েজ ব্যবহার করে আপনি আপনার প্রক্রিয়াগুলোকে স্বয়ংক্রিয় (automate) করতে পারবেন।
  • ভুল সংশোধন: যদি আপনার কোয়েরিতে কোনো ভুল হয়, M ল্যাঙ্গুয়েজ জানলে আপনি সহজেই সেই ভুল খুঁজে বের করে ঠিক করতে পারবেন।
  • কাস্টম ফাংশন তৈরি: আপনি নিজের প্রয়োজন মতো কাস্টম ফাংশন তৈরি করতে পারবেন, যা আপনার কাজকে আরও সহজ করে তুলবে।
  • ক্যারিয়ার উন্নতি: ডেটা অ্যানালাইসিস বা বিজনেস ইন্টেলিজেন্স (BI) সেক্টরে M ল্যাঙ্গুয়েজ জানা একটি বাড়তি যোগ্যতা যা আপনার ক্যারিয়ারে নতুন দিগন্ত উন্মোচন করতে পারে। বাংলাদেশে ডেটা অ্যানালিস্টদের চাহিদা দিন দিন বাড়ছে, আর M ল্যাঙ্গুয়েজ জানা থাকলে আপনি অন্যদের থেকে এক ধাপ এগিয়ে থাকবেন।

M ল্যাঙ্গুয়েজের কিছু মৌলিক ধারণা

চলুন, M ল্যাঙ্গুয়েজের কিছু প্রাথমিক ধারণা সম্পর্কে জেনে নিই। ভয় পাবেন না, এগুলো শেখা খুব কঠিন কিছু নয়!

h3: লেট (let) এক্সপ্রেশন

M ল্যাঙ্গুয়েজের কোডগুলো সাধারণত let এক্সপ্রেশন দিয়ে শুরু হয়। এর গঠন অনেকটা এমন:

let
    Source = Csv.Document(File.Contents("C:\Users\YourUser\Documents\Data.csv"),[Delimiter=",", Columns=5, Encoding=1252, QuoteStyle=QuoteStyle.Csv]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type datetime}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Column1", "Product"}, {"Column2", "OrderDate"}})
in
    #"Renamed Columns"

এখানে:

  • let: এর মাধ্যমে আমরা কোয়েরি শুরু করছি।
  • Source, "Changed Type", "Renamed Columns": এগুলো হলো একেকটি ভ্যারিয়েবল বা ধাপের নাম। প্রতিটি ধাপে আমরা ডেটার উপর কোনো না কোনো পরিবর্তন আনছি।
  • in: let এক্সপ্রেশনের শেষে in ব্যবহার করা হয়। in এর পরে আমরা কোন ধাপের ফলাফল দেখতে চাই তা উল্লেখ করি। সাধারণত, শেষ ধাপের ফলাফলই এখানে ব্যবহৃত হয়।

Enhanced Content Image

h3: ফাংশন (Functions)

M ল্যাঙ্গুয়েজে প্রচুর বিল্ট-ইন ফাংশন আছে যা ডেটা ম্যানিপুলেশনের জন্য ব্যবহার করা হয়। যেমন:

  • Table.TransformColumnTypes: কলামের ডেটা টাইপ পরিবর্তন করার জন্য।
  • Table.RenameColumns: কলামের নাম পরিবর্তন করার জন্য।
  • Text.Upper: কোনো টেক্সটকে বড় হাতের অক্ষরে রূপান্তর করার জন্য।
  • Date.Day: তারিখ থেকে দিন বের করার জন্য।

এই ফাংশনগুলো অনেকটা বাংলা সিনেমার 'আর্ট ডিরেক্টর' এর মতো। যেই দৃশ্য যেমন দরকার, সেই অনুযায়ী সেট ডিজাইন করে দেয়।

h3: ডেটা টাইপ (Data Types)

অন্যান্য প্রোগ্রামিং ভাষার মতো M ল্যাঙ্গুয়েজেও বিভিন্ন ডেটা টাইপ আছে। যেমন:

  • type text: টেক্সট ডেটার জন্য।
  • type number: সংখ্যার জন্য (পূর্ণসংখ্যা বা দশমিক)।
  • type date: তারিখের জন্য।
  • type datetime: তারিখ এবং সময়ের জন্য।
  • type logical: True/False (বুলিয়ান) ডেটার জন্য।

M ল্যাঙ্গুয়েজ ব্যবহার করে কিছু সাধারণ কাজ

চলুন, M ল্যাঙ্গুয়েজ ব্যবহার করে কিছু বাস্তব উদাহরণ দেখি।

h4: কাস্টম কলাম যোগ করা

Enhanced Content Image

ধরুন, আপনার কাছে পণ্যের দাম (Price) এবং পরিমাণ (Quantity) আছে, আর আপনি মোট মূল্য (Total Price) বের করতে চান।

পাওয়ার কোয়েরিতে: Add Column > Custom Column
M ল্যাঙ্গুয়েজে:

let
    Source = YourPreviousStep,
    #"Added Custom" = Table.AddColumn(Source, "Total Price", each [Price] * [Quantity])
in
    #"Added Custom"

এখানে each কী-ওয়ার্ডটি প্রতিটি সারির জন্য অপারেশনটি চালানোর নির্দেশ দেয়।

h4: শর্তসাপেক্ষ কলাম (Conditional Column) তৈরি করা

ধরুন, আপনি পণ্যের বিক্রয় ডেটা বিশ্লেষণ করছেন এবং এমন একটি কলাম যোগ করতে চান যা দেখাবে পণ্যটি 'High Value' নাকি 'Low Value' (যদি বিক্রয় 1000 টাকার বেশি হয় তবে 'High Value', অন্যথায় 'Low Value')।

পাওয়ার কোয়েরিতে: Add Column > Conditional Column
M ল্যাঙ্গুয়েজে:

let
    Source = YourPreviousStep,
    #"Added Conditional Column" = Table.AddColumn(Source, "Value Category", each if [Sales] > 1000 then "High Value" else "Low Value")
in
    #"Added Conditional Column"

এটা অনেকটা আপনার এলাকার দোকানে বাকি খাতার মতো। যদি কেউ বেশি টাকার জিনিস কেনে, তার নামটা একটু অন্যভাবে লিখে রাখা হচ্ছে।

h4: ডেটা ফিল্টার করা

Enhanced Content Image

আপনি শুধু ঢাকার ডেটা দেখতে চান।

পাওয়ার কোয়েরিতে: Home > Keep Rows > Keep Top Rows / Keep Bottom Rows / Remove Rows
M ল্যাঙ্গুয়েজে:

let
    Source = YourPreviousStep,
    #"Filtered Rows" = Table.SelectRows(Source, each ([City] = "Dhaka"))
in
    #"Filtered Rows"

M ল্যাঙ্গুয়েজ শিখবেন কীভাবে?

M ল্যাঙ্গুয়েজ শেখার জন্য কিছু টিপস:

  1. পাওয়ার কোয়েরি UI ব্যবহার করুন: প্রথমে পাওয়ার কোয়েরির গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) ব্যবহার করে ডেটা রূপান্তর করুন। এরপর 'Advanced Editor'-এ গিয়ে দেখুন M ল্যাঙ্গুয়েজে কী কোড তৈরি হয়েছে। এটি M ল্যাঙ্গুয়েজ বোঝার সবচেয়ে ভালো উপায়।
  2. ডকুমেন্টেশন পড়ুন: মাইক্রোসফটের অফিসিয়াল M ল্যাঙ্গুয়েজ ডকুমেন্টেশন একটি চমৎকার রিসোর্স।
  3. অনলাইন টিউটোরিয়াল: ইউটিউবে প্রচুর বাংলা এবং ইংরেজি টিউটোরিয়াল পাওয়া যায়। ডেভিড বিয়ার (David Biar), রুসেল গ্রান্ট (Russel Grant) এর মতো ব্যক্তিরা চমৎকার কনটেন্ট তৈরি করেন।
  4. অনুশীলন: ডেটা নিয়ে খেলা করুন। বিভিন্ন ফাংশন চেষ্টা করুন। ভুল হলেই বা কী! ভুল থেকেই শেখা যায়।
  5. কমিউনিটিতে যোগ দিন: ফেসবুক বা লিংকডইনে ডেটা অ্যানালিস্টদের গ্রুপগুলোতে যোগ দিন। প্রশ্ন করুন, অন্যদের উত্তর দেখুন।

কিছু সাধারণ M ল্যাঙ্গুয়েজ টিপস ও ট্রিকস

  • কেস সেন্সিটিভিটি: M ল্যাঙ্গুয়েজ কেস সেন্সিটিভ। অর্থাৎ Table.AddColumn এবং table.addcolumn এক জিনিস নয়।
  • কমেন্টস: আপনার কোডে কমেন্টস (// দিয়ে শুরু) যোগ করুন যাতে পরে বুঝতে সুবিধা হয়।
  • ফরম্যাটিং: কোড সুন্দরভাবে ফরম্যাট করে লিখুন, এতে কোড পড়া সহজ হয়।

FAQ (সবচেয়ে বেশি জিজ্ঞাসিত প্রশ্নাবলী)

h4: প্রশ্ন: M ল্যাঙ্গুয়েজ কি একটি প্রোগ্রামিং ভাষা?

উত্তর: হ্যাঁ, M ল্যাঙ্গুয়েজ একটি ফাংশনাল প্রোগ্রামিং ভাষা, যা বিশেষভাবে ডেটা ম্যাশআপ (data mashup) এবং কোয়েরিংয়ের জন্য ডিজাইন করা হয়েছে। এটি ডেটা রূপান্তরের জন্য খুবই শক্তিশালী।

h4: প্রশ্ন: M ল্যাঙ্গুয়েজ শিখতে কত সময় লাগে?

উত্তর: এটি আপনার পূর্বের প্রোগ্রামিং জ্ঞান এবং শেখার পদ্ধতির উপর নির্ভর করে। মৌলিক বিষয়গুলো শিখতে কয়েক সপ্তাহ লাগতে পারে, কিন্তু দক্ষ হতে কয়েক মাস অনুশীলন প্রয়োজন। নিয়মিত অনুশীলন আপনাকে দ্রুত শিখতে সাহায্য করবে।

h4: প্রশ্ন: আমি কি M ল্যাঙ্গুয়েজ না শিখেও পাওয়ার কোয়েরি ব্যবহার করতে পারব?

উত্তর: অবশ্যই! পাওয়ার কোয়েরির শক্তিশালী গ্রাফিক্যাল ইউজার ইন্টারফেস (GUI) ব্যবহার করে আপনি অনেক কাজই করতে পারবেন। তবে, M ল্যাঙ্গুয়েজ শিখলে আপনি আরও জটিল এবং কাস্টমাইজড ডেটা রূপান্তর করতে পারবেন, যা আপনাকে ডেটা অ্যানালাইসিসে অনেক বেশি সুবিধা দেবে।

h4: প্রশ্ন: M ল্যাঙ্গুয়েজ কি শুধু পাওয়ার বিআই-এর জন্য?

উত্তর: না, M ল্যাঙ্গুয়েজ পাওয়ার কোয়েরির ভাষা, যা মাইক্রোসফট এক্সেল, পাওয়ার বিআই, SQL সার্ভার অ্যানালাইসিস সার্ভিসেস (SSAS) এবং অন্যান্য মাইক্রোসফট প্রোডাক্টে বিল্ট-ইন থাকে। আপনি যেখানেই পাওয়ার কোয়েরি ব্যবহার করবেন, সেখানেই M ল্যাঙ্গুয়েজ কাজ করবে।

h4: প্রশ্ন: M ল্যাঙ্গুয়েজ শেখার জন্য কি কোনো পূর্বশর্ত আছে?

উত্তর: কোনো নির্দিষ্ট পূর্বশর্ত নেই, তবে এক্সেল বা ডেটাবেস সম্পর্কে প্রাথমিক ধারণা থাকলে শেখাটা সহজ হবে। প্রোগ্রামিং ভাষার অভিজ্ঞতা থাকলে M ল্যাঙ্গুয়েজের ধারণাগুলো দ্রুত ধরতে পারবেন, কিন্তু এটি বাধ্যতামূলক নয়।

h4: প্রশ্ন: M ল্যাঙ্গুয়েজ কি অন্য ডেটা অ্যানালিসিস টুলের সাথে তুলনা করা যায়?

উত্তর: M ল্যাঙ্গুয়েজ মূলত ডেটা এক্সট্রাকশন, ট্রান্সফরমেশন এবং লোডিং (ETL) প্রক্রিয়ার জন্য ব্যবহৃত হয়। এটি পাইথন বা R এর মতো পূর্ণাঙ্গ ডেটা অ্যানালিসিস ভাষা নয়, তবে ডেটা প্রিপারেশনের ক্ষেত্রে এটি খুবই শক্তিশালী। পাওয়ার কোয়েরির মধ্যে M ল্যাঙ্গুয়েজ একটি অনন্য ভূমিকা পালন করে।

h4: প্রশ্ন: M ল্যাঙ্গুয়েজ ব্যবহার করে কি ডেটা ভিজ্যুয়ালাইজ করা যায়?

উত্তর: না, M ল্যাঙ্গুয়েজ ডেটা ভিজ্যুয়ালাইজেশনের জন্য নয়। এটি ডেটা পরিষ্কার, রূপান্তর এবং একত্রিত করার জন্য ব্যবহৃত হয়। ডেটা ভিজ্যুয়ালাইজেশনের জন্য পাওয়ার বিআই বা এক্সেলের মতো টুলস ব্যবহার করতে হয়, যেখানে পাওয়ার কোয়েরি থেকে প্রস্তুতকৃত ডেটা লোড করা হয়।

Key Takeaways (মূল শিক্ষা)

  • M ল্যাঙ্গুয়েজ হলো পাওয়ার কোয়েরির ভেতরের ভাষা, যা ডেটা পরিষ্কার ও রূপান্তরের জন্য ব্যবহৃত হয়।
  • এটি শেখা আপনার ডেটা অ্যানালিসিসের ক্ষমতাকে বাড়িয়ে তুলবে এবং আপনাকে আরও জটিল কাজ করতে সাহায্য করবে।
  • let এক্সপ্রেশন এবং ফাংশনগুলো M ল্যাঙ্গুয়েজের মৌলিক বিল্ডিং ব্লক
  • পাওয়ার কোয়েরির GUI ব্যবহার করে M কোড তৈরি হতে দেখা শেখার একটি চমৎকার উপায়।
  • নিয়মিত অনুশীলন এবং অনলাইন রিসোর্স ব্যবহার করে আপনি M ল্যাঙ্গুয়েজে দক্ষ হতে পারবেন।

ডেটা অ্যানালিসিসের এই ডিজিটাল যুগে M ল্যাঙ্গুয়েজ শেখাটা আপনার জন্য একটি স্মার্ট বিনিয়োগ। এটি শুধু আপনার কাজের দক্ষতা বাড়াবে না, বরং আপনার ক্যারিয়ারের পথকেও আরও মসৃণ করবে। আশা করি, এই পোস্টটি আপনাকে M ল্যাঙ্গুয়েজের জগতে পা রাখতে উৎসাহিত করেছে। আপনার ডেটা জার্নি শুভ হোক!

কেমন লাগলো আমাদের এই M ল্যাঙ্গুয়েজ নিয়ে আজকের আলোচনা? আপনার যদি আরও প্রশ্ন থাকে বা কোনো নির্দিষ্ট বিষয় জানতে চান, তবে কমেন্ট করে জানান। আমরা আপনার মতামত জানতে আগ্রহী!

Add a comment

Leave a Reply

Your email address will not be published. Required fields are marked *