How to Use Group By Transformation in Power Query
Essential Text Transformation Functions in Power Query
সার্ভার ও স্টোরেজ কি এবং FTP ও HTTP কীভাবে কাজ করে

Essential Text Transformation Functions in Power Query

পাওয়ার কোয়েরিতে ডেটা নিয়ে কাজ করার সময়, টেক্সট ফাংশনগুলো আপনার ডেটাকে আরও গোছানো এবং বিশ্লেষণযোগ্য করে তুলতে গুরুত্বপূর্ণ ভূমিকা পালন করে। ধরুন আপনি আপনার দোকানের পণ্যের তালিকা নিয়ে কাজ করছেন, যেখানে পণ্যের নামগুলো এলোমেলোভাবে লেখা আছে—কখনও বড় হাতের অক্ষরে, কখনও ছোট হাতের অক্ষরে, আবার কখনও অপ্রয়োজনীয় স্পেস। পাওয়ার কোয়েরির টেক্সট ফাংশনগুলো আপনাকে এই ধরনের সমস্যাগুলো খুব সহজেই সমাধান করতে সাহায্য করবে।

Table of Contents

পাওয়ার কোয়েরি কেন এতো দরকারি?

পাওয়ার কোয়েরি হলো মাইক্রোসফট এক্সেলের একটি শক্তিশালী টুল, যা ডেটা সংগ্রহ, রূপান্তর এবং লোড করার কাজে ব্যবহৃত হয়। বাংলাদেশের প্রেক্ষাপাপটে, যেখানে ছোট ও মাঝারি ব্যবসা থেকে শুরু করে বড় কর্পোরেশন পর্যন্ত সবাই ডেটা নিয়ে কাজ করছে, সেখানে পাওয়ার কোয়েরি ডেটা বিশ্লেষণকে আরও সহজ করে তোলে। আপনি যদি একজন ডেটা অ্যানালিস্ট, ব্যবসায়ী, অথবা শিক্ষার্থী হন, তাহলে পাওয়ার কোয়েরি আপনার সময় বাঁচিয়ে দেবে এবং ডেটা প্রক্রিয়াকরণের কাজকে অনেক বেশি সহজ করে তুলবে।

টেক্সট ফাংশনগুলো কী কী কাজ করে?

টেক্সট ফাংশনগুলো আপনাকে অক্ষর, শব্দ, বা সম্পূর্ণ বাক্যকে পরিবর্তন করতে সাহায্য করে। যেমন, আপনি একটি টেক্সটের অক্ষরগুলোকে বড় হাতের অক্ষর থেকে ছোট হাতের অক্ষরে পরিবর্তন করতে পারেন, অপ্রয়োজনীয় স্পেস মুছে ফেলতে পারেন, অথবা দুটি টেক্সটকে একসাথে যোগ করতে পারেন। এই ফাংশনগুলি ডেটা পরিষ্কার করার জন্য খুবই জরুরি।

পাওয়ার কোয়েরির কিছু প্রয়োজনীয় টেক্সট ফাংশন

আসুন, কিছু গুরুত্বপূর্ণ টেক্সট ফাংশন সম্পর্কে জেনে নিই, যা আপনার ডেটা ট্রান্সফরমেশনের কাজকে আরও সহজ করবে।

Text.Proper(): প্রতিটি শব্দের প্রথম অক্ষর বড় করুন

ধরুন আপনার কাছে কিছু নাম আছে, যেমন "রহিম মিয়া", "করিম শেখ", যেখানে সব অক্ষর ছোট হাতের। Text.Proper() ফাংশনটি প্রতিটি শব্দের প্রথম অক্ষরকে বড় হাতের অক্ষরে রূপান্তর করে। যেমন, "রহিম মিয়া" হয়ে যাবে "রহিম মিয়া"। এটি ডেটাকে আরও পেশাদার দেখাতে সাহায্য করে।

উদাহরণ:

  • Text.Proper("ঢাকা বিশ্ববিদ্যালয়") ফলাফল দেবে: "ঢাকা বিশ্ববিদ্যালয়"
  • Text.Proper("রাজধানী ঢাকা") ফলাফল দেবে: "রাজধানী ঢাকা"

Text.Upper(): সব অক্ষর বড় করুন

যদি আপনার ডেটাতে কিছু নাম ছোট হাতের অক্ষরে থাকে এবং আপনি সেগুলোকে বড় হাতের অক্ষরে পরিবর্তন করতে চান, তাহলে Text.Upper() ফাংশনটি ব্যবহার করতে পারেন। এটি ডেটাকে একটি নির্দিষ্ট ফরম্যাটে আনতে সাহায্য করে, যা বিশ্লেষণের জন্য গুরুত্বপূর্ণ। যেমন, "বাংলাদেশ" হয়ে যাবে "বাংলাদেশ"।

উদাহরণ:

  • Text.Upper("চট্টগ্রাম") ফলাফল দেবে: "চট্টগ্রাম"
  • Text.Upper("পদ্মা সেতু") ফলাফল দেবে: "পদ্মা সেতু"

Text.Lower(): সব অক্ষর ছোট করুন

এর উল্টোটা করার জন্য, অর্থাৎ সব অক্ষরকে ছোট হাতের অক্ষরে পরিবর্তন করার জন্য Text.Lower() ফাংশনটি ব্যবহার করা হয়। এটি ডেটা পরিষ্কার করার একটি গুরুত্বপূর্ণ ধাপ, বিশেষ করে যখন আপনি বিভিন্ন উৎস থেকে ডেটা সংগ্রহ করেন। যেমন, "বাংলাদেশ" হয়ে যাবে "বাংলাদেশ"।

উদাহরণ:

  • Text.Lower("সিলেট") ফলাফল দেবে: "সিলেট"
  • Text.Lower("সুন্দরবন") ফলাফল দেবে: "সুন্দরবন"

Text.Trim(): অপ্রয়োজনীয় স্পেস দূর করুন

অনেক সময় ডেটা এন্ট্রি করার সময় শব্দের আগে বা পরে অপ্রয়োজনীয় স্পেস চলে আসে। এই অতিরিক্ত স্পেসগুলো ডেটা বিশ্লেষণের সময় সমস্যা তৈরি করতে পারে। Text.Trim() ফাংশনটি শব্দের শুরু বা শেষের অতিরিক্ত স্পেসগুলো মুছে ফেলে।

উদাহরণ:

  • Text.Trim(" বাংলাদেশ ") ফলাফল দেবে: "বাংলাদেশ"
  • Text.Trim(" মিরপুর ১০ ") ফলাফল দেবে: "মিরপুর ১০" (শব্দের মাঝখানের স্পেসগুলো অপরিবর্তিত থাকবে)

Text.TrimStart(): শব্দের শুরুর স্পেস দূর করুন

যদি শুধু শব্দের শুরুর অতিরিক্ত স্পেসগুলো মুছতে চান, তাহলে Text.TrimStart() ব্যবহার করতে পারেন।

Enhanced Content Image

উদাহরণ:

  • Text.TrimStart(" ঢাকা ") ফলাফল দেবে: "ঢাকা "

Text.TrimEnd(): শব্দের শেষের স্পেস দূর করুন

একইভাবে, শব্দের শেষের অতিরিক্ত স্পেসগুলো মুছতে Text.TrimEnd() ব্যবহার করা হয়।

উদাহরণ:

  • Text.TrimEnd(" খুলনা ") ফলাফল দেবে: " খুলনা"

Text.Replace(): একটি নির্দিষ্ট টেক্সটকে অন্য টেক্সট দিয়ে প্রতিস্থাপন করুন

আপনি যদি একটি নির্দিষ্ট টেক্সটকে অন্য একটি টেক্সট দিয়ে প্রতিস্থাপন করতে চান, তাহলে Text.Replace() ফাংশনটি খুবই কার্যকর। যেমন, আপনার ডেটাতে "Dhaka" এর বদলে "ঢাকা" লিখতে চান।

উদাহরণ:

  • Text.Replace("আমার বাড়ি ঢাকা", "ঢাকা", "চট্টগ্রাম") ফলাফল দেবে: "আমার বাড়ি চট্টগ্রাম"
  • Text.Replace("পণ্যের কোড: P-101", "P-", "প্রোডাক্ট-") ফলাফল দেবে: "পণ্যের কোড: প্রোডাক্ট-101"

Text.Combine(): একাধিক টেক্সটকে একসাথে যোগ করুন

অনেক সময় দুটি ভিন্ন কলামের ডেটাকে একসাথে যোগ করার প্রয়োজন হয়। যেমন, প্রথম নামে একটি কলাম এবং শেষ নামে আরেকটি কলাম থাকলে, সেগুলোকে একসাথে করে পূর্ণ নাম তৈরি করতে পারেন। Text.Combine() ফাংশনটি এই কাজটি করে।

উদাহরণ:

  • Text.Combine({"রহিম", "শেখ"}, " ") ফলাফল দেবে: "রহিম শেখ"
  • Text.Combine({"পণ্যের নাম:", "ল্যাপটপ"}, ": ") ফলাফল দেবে: "পণ্যের নাম:: ল্যাপটপ"

Text.Start(): টেক্সটের শুরু থেকে নির্দিষ্ট সংখ্যক অক্ষর নিন

একটি টেক্সটের শুরু থেকে নির্দিষ্ট সংখ্যক অক্ষর নিতে Text.Start() ফাংশনটি ব্যবহার করা হয়। যেমন, পণ্যের কোডের প্রথম তিনটি অক্ষর নিতে চান।

উদাহরণ:

  • Text.Start("ব্যাংক এশিয়া", 4) ফলাফল দেবে: "ব্যাংক"
  • Text.Start("BGD-12345", 3) ফলাফল দেবে: "BGD"

Text.End(): টেক্সটের শেষ থেকে নির্দিষ্ট সংখ্যক অক্ষর নিন

একইভাবে, টেক্সটের শেষ থেকে নির্দিষ্ট সংখ্যক অক্ষর নিতে Text.End() ফাংশনটি ব্যবহার করা হয়। যেমন, একটি ফোন নম্বরের শেষ চারটি ডিজিট নিতে চান।

উদাহরণ:

  • Text.End("01712345678", 4) ফলাফল দেবে: "5678"
  • Text.End("ProductCode_ABC123", 6) ফলাফল দেবে: "ABC123"

Enhanced Content Image

Text.Middle(): টেক্সটের মাঝখান থেকে নির্দিষ্ট সংখ্যক অক্ষর নিন

টেক্সটের মাঝখান থেকে অক্ষর নিতে Text.Middle() ফাংশনটি ব্যবহার করা হয়। এর জন্য আপনাকে শুরু করার অবস্থান এবং কতগুলো অক্ষর নিতে চান, তা উল্লেখ করতে হবে।

উদাহরণ:

  • Text.Middle("বাংলাদেশের রাজধানী ঢাকা", 4, 7) ফলাফল দেবে: "দেশের রা" (চতুর্থ অক্ষর থেকে শুরু করে ৭টি অক্ষর)
  • Text.Middle("Invoice-2023-001", 8, 4) ফলাফল দেবে: "2023" (অষ্টম অক্ষর থেকে শুরু করে ৪টি অক্ষর)

Text.Length(): টেক্সটের মোট দৈর্ঘ্য নির্ণয় করুন

একটি টেক্সটে মোট কতগুলো অক্ষর আছে, তা জানতে Text.Length() ফাংশনটি ব্যবহার করা হয়। এটি ডেটা ভ্যালিডেশনের জন্য সহায়ক হতে পারে।

উদাহরণ:

  • Text.Length("বাংলাদেশ") ফলাফল দেবে: 9 (স্পেস সহ)
  • Text.Length("01712345678") ফলাফল দেবে: 11

Text.Contains(): টেক্সটের মধ্যে নির্দিষ্ট শব্দ আছে কিনা তা পরীক্ষা করুন

একটি টেক্সটের মধ্যে নির্দিষ্ট কোনো শব্দ বা বাক্য আছে কিনা, তা পরীক্ষা করতে Text.Contains() ফাংশনটি ব্যবহার করা হয়। এটি True অথবা False ফলাফল দেয়।

উদাহরণ:

  • Text.Contains("আমার বাড়ি ঢাকা", "ঢাকা") ফলাফল দেবে: True
  • Text.Contains("পণ্যের নাম: ল্যাপটপ", "মোবাইল") ফলাফল দেবে: False

Text.StartsWith(): টেক্সট একটি নির্দিষ্ট শব্দ দিয়ে শুরু হয়েছে কিনা পরীক্ষা করুন

একটি টেক্সট একটি নির্দিষ্ট শব্দ দিয়ে শুরু হয়েছে কিনা, তা পরীক্ষা করতে Text.StartsWith() ফাংশনটি ব্যবহার করা হয়।

উদাহরণ:

  • Text.StartsWith("ঢাকা বিশ্ববিদ্যালয়", "ঢাকা") ফলাফল দেবে: True
  • Text.StartsWith("Product_123", "P_") ফলাফল দেবে: True

Text.EndsWith(): টেক্সট একটি নির্দিষ্ট শব্দ দিয়ে শেষ হয়েছে কিনা পরীক্ষা করুন

একটি টেক্সট একটি নির্দিষ্ট শব্দ দিয়ে শেষ হয়েছে কিনা, তা পরীক্ষা করতে Text.EndsWith() ফাংশনটি ব্যবহার করা হয়।

উদাহরণ:

  • Text.EndsWith("বাংলাদেশ ব্যাংক", "ব্যাংক") ফলাফল দেবে: True
  • Text.EndsWith("Report_2023.xlsx", ".xlsx") ফলাফল দেবে: True

কিভাবে এই ফাংশনগুলি ব্যবহার করবেন?

Enhanced Content Image

পাওয়ার কোয়েরিতে এই ফাংশনগুলো ব্যবহার করা খুবই সহজ। আপনি কাস্টম কলাম যোগ করে অথবা বিদ্যমান কলামে পরিবর্তন এনে এই ফাংশনগুলো ব্যবহার করতে পারেন।

ধাপে ধাপে ব্যবহার পদ্ধতি:

  1. পাওয়ার কোয়েরি এডিটর খুলুন: আপনার ডেটা এক্সেল থেকে পাওয়ার কোয়েরিতে লোড করুন এবং পাওয়ার কোয়েরি এডিটর খুলুন।
  2. কলাম নির্বাচন করুন: যে কলামে পরিবর্তন আনতে চান, সেটি নির্বাচন করুন।
  3. "Transform" ট্যাব ব্যবহার করুন: যদি আপনি বিদ্যমান কলামে পরিবর্তন আনতে চান, তাহলে "Transform" ট্যাবে যান।
  4. "Add Column" ট্যাব ব্যবহার করুন: যদি আপনি একটি নতুন কলাম তৈরি করে পরিবর্তন আনতে চান, তাহলে "Add Column" ট্যাবে যান এবং "Custom Column" নির্বাচন করুন।
  5. M ল্যাঙ্গুয়েজ লিখুন: ফর্মুলা বক্সে উপযুক্ত M ল্যাঙ্গুয়েজ ফাংশনটি লিখুন। উদাহরণস্বরূপ, যদি আপনি "ProductName" কলামের সব অক্ষরকে বড় হাতে করতে চান, তাহলে Text.Upper([ProductName]) লিখুন।
  6. "OK" ক্লিক করুন: পরিবর্তনগুলো প্রয়োগ করুন।

একটি উদাহরণ: ডেটা পরিষ্কার করা

ধরুন, আপনার কাছে একটি ডেটাসেট আছে যেখানে বাংলাদেশের বিভিন্ন শহরের নাম আছে, কিন্তু কিছু নাম ভুলভাবে লেখা হয়েছে:

City Name
dhaka
Chittagong
KHULNA
BARISAL

আপনি এই ডেটাকে পরিষ্কার করতে চান যাতে প্রতিটি শহরের নাম সঠিক ফরম্যাটে থাকে (যেমন: "Dhaka", "Chittagong")।

ধাপ ১: অতিরিক্ত স্পেস দূর করা (Text.Trim)

একটি নতুন কলাম তৈরি করুন (বা বিদ্যমান কলামেTransform করুন) এবং ফর্মুলা লিখুন:
= Text.Trim([City Name])

ফলাফল:

City Name Custom Column (Trimmed)
dhaka dhaka
Chittagong Chittagong
KHULNA KHULNA
BARISAL BARISAL

ধাপ ২: প্রতিটি শব্দের প্রথম অক্ষর বড় করা (Text.Proper)

এখন, "Custom Column (Trimmed)" কলামে Text.Proper() ফাংশনটি প্রয়োগ করুন:
= Text.Proper([Custom Column (Trimmed)])

ফলাফল:

City Name Custom Column (Trimmed) Custom Column (Proper)
dhaka dhaka Dhaka
Chittagong Chittagong Chittagong
KHULNA KHULNA Khulna
BARISAL BARISAL Barisal

এভাবে আপনি ধাপে ধাপে আপনার ডেটা পরিষ্কার করতে পারেন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

প্রশ্ন ১: পাওয়ার কোয়েরি কি শুধু এক্সেলের জন্য?
উত্তর: না, পাওয়ার কোয়েরি শুধু এক্সেলের জন্য নয়। এটি পাওয়ার বিআই (Power BI) এবং এসকিউএল সার্ভার অ্যানালাইসিস সার্ভিসেস (SQL Server Analysis Services) এর মতো অন্যান্য মাইক্রোসফট প্রোডাক্টেও ব্যবহার করা হয়।

প্রশ্ন ২: আমি কি একসাথে একাধিক টেক্সট ফাংশন ব্যবহার করতে পারি?
উত্তর: হ্যাঁ, আপনি একসাথে একাধিক টেক্সট ফাংশন ব্যবহার করতে পারেন। একে "নেস্টিং" বলা হয়। যেমন, Text.Proper(Text.Trim([Column Name]))

প্রশ্ন ৩: পাওয়ার কোয়েরিতে টেক্সট ফাংশনগুলো কি কেস-সেনসিটিভ?
উত্তর: কিছু টেক্সট ফাংশন যেমন Text.Replace() বা Text.Contains() ডিফল্টভাবে কেস-সেনসিটিভ। তবে, আপনি ফাংশনের অতিরিক্ত প্যারামিটার ব্যবহার করে এটি পরিবর্তন করতে পারেন।

প্রশ্ন ৪: পাওয়ার কোয়েরি কি বাংলা টেক্সট নিয়ে কাজ করতে পারে?
উত্তর: হ্যাঁ, পাওয়ার কোয়েরি বাংলা টেক্সট নিয়ে খুব ভালোভাবে কাজ করতে পারে। উপরে দেখানো উদাহরণগুলো বাংলা টেক্সটে প্রয়োগ করা যাবে।

প্রশ্ন ৫: যদি আমার ডেটাতে কোনো টেক্সট না থাকে, তাহলে ফাংশনগুলো কি কাজ করবে?
উত্তর: যদি কোনো সেলে টেক্সট না থাকে (অর্থাৎ, সেলটি ফাঁকা বা null থাকে), তাহলে বেশিরভাগ টেক্সট ফাংশন ত্রুটি (error) দেখাবে অথবা null ফলাফল দেবে। এই ধরনের ক্ষেত্রে, try...otherwise স্টেটমেন্ট ব্যবহার করে ত্রুটিগুলো পরিচালনা করা যেতে পারে।

প্রশ্ন ৬: পাওয়ার কোয়েরিতে টেক্সট ফাংশন ব্যবহারের সুবিধা কী?
উত্তর: পাওয়ার কোয়েরিতে টেক্সট ফাংশন ব্যবহারের প্রধান সুবিধা হলো ডেটা পরিষ্কার এবং ফরম্যাট করা সহজ হয়। এটি সময় বাঁচায়, ডেটা বিশ্লেষণের নির্ভুলতা বাড়ায় এবং ডেটাকে আরও সামঞ্জস্যপূর্ণ করে তোলে।

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

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

মূল বিষয়গুলো (Key Takeaways)

  • পাওয়ার কোয়েরির টেক্সট ফাংশনগুলো ডেটা পরিষ্কার এবং ফরম্যাট করার জন্য অপরিহার্য।
  • Text.Proper(), Text.Upper(), Text.Lower() টেক্সটের কেস পরিবর্তন করে।
  • Text.Trim(), Text.TrimStart(), Text.TrimEnd() অপ্রয়োজনীয় স্পেস দূর করে।
  • Text.Replace() একটি টেক্সটকে অন্য টেক্সট দিয়ে প্রতিস্থাপন করে।
  • Text.Combine() একাধিক টেক্সটকে একসাথে যোগ করে।
  • Text.Start(), Text.End(), Text.Middle() টেক্সটের নির্দিষ্ট অংশ নিতে সাহায্য করে।
  • Text.Length() টেক্সটের দৈর্ঘ্য নির্ণয় করে।
  • Text.Contains(), Text.StartsWith(), Text.EndsWith() টেক্সটে নির্দিষ্ট শব্দ আছে কিনা তা পরীক্ষা করে।
  • এই ফাংশনগুলো ব্যবহার করে আপনি আপনার ডেটাকে আরও গোছানো এবং বিশ্লেষণের জন্য প্রস্তুত করতে পারবেন, যা আপনার সময় এবং শ্রম বাঁচাবে।

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

Add a comment

Leave a Reply

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