এক্সেল নিঃসন্দেহে বিশ্বের সবচেয়ে গুরুত্বপূর্ণ পণ্যের একটি। ডেটা পরিচালনা ও বিশ্লেষণে এটি অত্যন্ত সহায়ক। কিন্তু এক্সেল ব্যবহার করার সময় কিছু বিষয় হতাশা সৃষ্টি করতে পারে। আজ আমি আপনাদের সাথে কিছু令人沮丧的 সমস্যা এবং তাদের সমাধান শেয়ার করব।
আপনাকে কষ্ট দিতে পারে ২২টি এক্সেল সীমাবদ্ধতা
আধুনিক যুগের কার্যকলাপে মাইক্রোসফট এক্সেল একটি কার্যকর ও উপযোগী সফটওয়্যার হলেও, এর কিছু সীমাবদ্ধতা রয়েছে जिनका আপনি কাজ করার সময় সম্মুখীন হতে পারেন।
১. ডিফল্ট ফরম্যাটে তারিখ প্রদর্শন
মান लीজिए আপনি এক্সেলে 2-1 লিখে ১ ফেব্রুয়ারি প্রতীক করতে চান। কিন্তু 2-1 লিখলে আপনি পাবেন 1-Feb। সেল ফরম্যাটিংয়ের কথা মনে পড়তে পারে। কিন্তু Format Cells ডায়ালগ বাক্স খোলা Date এ ক্লিক করলে Type ফিল্ডে উপলব্ধ সব ফরম্যাট আপনার কাজে আসবে না। তাহলে কী করবেন?
خوشকিসমتی से এক্সেল আমাদের TEXT ফাংশন দেয় যা Format Cells ডায়ালগ বাক্সের চেয়ে कहीं বেশি নমনীয়। নিচের চিত্রের বাম প্যানেলে TEXT ফাংশন ব্যবহার করে উপরের সমস্যা সমাধান করা দেখানো হয়েছে। এখানে তিনটি উদাহরণ এবং চারটি ফরম্যাটে TEXT ফাংশন কী রিটার্ন করবে তা দেখানো হয়েছে। আপনার প্রাপ্য সংখ্যা অঙ্কের চেয়ে কম হলে, এক্সেল প্রকৃত সংখ্যার আগে লিডিং জিরো যোগ করবে। উদাহরণস্বরূপ, TEXT($C7,"M-D") রিটার্ন করবে 5-23 আর TEXT($C7,"MM-DD") রিটার্ন করবে 05-23। নিচের চিত্রটি ভালোভাবে দেখুন এবং পেছনের প্রক্রিয়া বুঝতে চেষ্টা করুন।

Format Cell ডায়ালগ বাক্সটি নিচের চিত্রের মতো।

সংক্ষেপে, TEXT ফাংশন আপনার মানগুলো ফরম্যাট করার জন্য একটি ভালো বিকল্প। উদাহরণস্বরূপ, আপনি YYYY-MM-DD ফরম্যাট ব্যবহার করে 2015-05-23 দেখাতে পারেন।
২. লিডিং জিরো গিয়ে যাওয়া
সোশ্যাল সিকিউরিটি নম্বর, ফোন নম্বর, ক্রেডিট কার্ড নম্বর বা পোস্টাল কোড ওয়ার্কবুকে লিখলে, এক্সেল সেগুলো সংখ্যা হিসেবে বিবেচনা করে এবং জেনারেল নম্বর ফরম্যাট প্রয়োগ করে। ফলস্বরূপ, সেই নম্বর কোডগুলো থেকে লিডিং জিরো গিয়ে যায়। এই এক্সেল সীমাবদ্ধতা সবসময় ঘটে। উদাহরণস্বরূপ, সেল B5-এ 000123 লিখলে আপনি পাবেন 123। একইভাবে, সেল B6-এ 001234 লিখলে এক্সেল 1234 দেখাবে। এটি očвидно আপনি যা চান তা নয়। সেল B5 থেকে B7- পর্যন্ত মানগুলো আপনার প্রাপ্ত চাওয়া। তাহলে কী করবেন?
উপরের সমস্যা সমাধানের মতোই, এখানেও TEXT ফাংশন ব্যবহার করে নম্বর কোডে লিডিং জিরো যোগ করা যায়।
অন্য একটি উপায় হলো নম্বর কোডের আগে একটি সিঙ্গেল কোটেশন مار্ক (') বসানো।
সেল D5-এ TEXT ফাংশন নিচের মতো লিখুন।
=TEXT($C5,"000000")

ENTER চাপা এবং Fill Handle ব্যবহার করার পর আউটপুট নিচের চিত্রের মতো হবে।

৩. বড় সংখ্যাকে সাইন্টিফিক নোটেশনে ফরম্যাট করা
এক্সেলে যেকোনো বড় সংখ্যা লিখলে সেটি সংখ্যা হিসেবে সংরক্ষিত হয় এবং সাইন্টিফিক নোটেশনে সংক্ষিপ্ত হয়ে যায়। এটি একটি সাধারণ এক্সেল সীমাবদ্ধতা। ধরুন, সেল B2-এ আপনি 12409003888123 जैसा একটি দীর্ঘ সংখ্যা লিখলেন। এক্সেল জেনারেল নম্বর প্রয়োগ করবে এবং 12409003888123 কে 1.2409E+13 হিসেবে সাইন্টিফিক নোটেশনে দেখাবে। এক্সেলকে এটা করার থেকে বাধা দেওয়া সম্ভব কি?
সবচেয়ে সহজ উপায় হলো সেল B2-এ রাইট-ক্লিক করে Format Cells নির্বাচন করুন। প্রম্পট হওয়া Format Cells ডায়ালগ বাক্সে Number নির্বাচন করুন এবং দশমিক স্থানের সংখ্যা 0 সেট করুন। এখন বড় সংখ্যাটি সাইন্টিফিক নোটেশনের বদলে পুরোভাবে প্রদর্শিত হবে।

৪. VLOOKUP ফাংশনে অ্য প্রক্সিমেট ম্যাচ ব্যবহার
এক্সেলের একটি সাধারণ সীমাবদ্ধতা হলো অনেক লোক আপনাক্ত হন না যে VLOOKUP অ্য প্রক্সিমেট ম্যাচ-এ কী করে। নিচের চিত্রে, যদি আপনার লুকআপ ভ্যালু chun হয়, তবে এক্সেল রিটার্ন করবে $93,500। ডেটা টেবিল B5:E12 রেঞ্জের সাথে মিলিয়ে দেখলে, এই মান আমাদের চাওয়া মান নয়। আমাদের ধারণা অনুযায়ী, সঠিক মান হওয়া উচিত $151,200 কারণ chun Chung-এর সাথে মিলে যাচ্ছে।

বস্তুতঃ, VLOOKUP অ্য প্রক্সিমেট ম্যাচ আমাদের চিন্তার মতো কাজ করে না। এটি লুকআপ টেবিলের সারি दर সারি নিচে আসে এবং অবসান করে সেই সারিতে যেখানে মান লুকআপ ভ্যালু থেকে কম বা সমান হয়, কিন্তু পরবর্তী সারির মান লুকআপ ভ্যালু থেকে বেশি।
উপরের উদাহরণটি আবার দেখুন। Bueller chun-এর চেয়ে কম, আর Chung chun-এর চেয়ে বেশি। তাই এক্সেল ৬ষ্ঠ সারিতে থেমে গেল এবং Column C-এ $93,500 রিটার্ন করল। একইভাবে, $89,450-এর জন্য এক্সেল ৫ম সারিতে থেমে গেল কারণ সেখানে $71,900 যা $89,450-এর চেয়ে কম, আর পরবর্তী সারির মান $89,450-এর চেয়ে বেশি। ৫ম সারি এবং Column D-এর ইন্টারসেকশন আপনাকে কমিশন রেট 6% দেবে।
আরও পড়ুন: এক্সেল অ্যাড-ইন তৈরির পদ্ধতি [উদাহরণসহ বর্ণনা]
তবে ডেটা রেঞ্জটি গৌরবদৃষ্টিতে দেখলে পাবেন, $89,450-এর কমিশন রেট %7। এটি চিত্র ৪.১-এ পাওয়া %6-এর থেকে আলাদা। কি কিছু ভুল হয়েছে? হ্যাঁ, VLOOKUP অ্য প্রক্সিমেট ম্যাচ ব্যবহার করার আগে লুকআপ টেবিলকে আহবান ক্রমে সাজাতে হবে, কারণ VLOOKUP লুকআপ টেবিলের সারি दर সারি নিচে আসে।
নিচের চিত্রে B5:E12 রেঞ্জের আরেকটি লুকআপ টেবিল দেখানো হয়েছে। এই টেবিলটি Sales অনুযায়ী আরোহী ক্রমে সাজানো হয়েছে। এখন আপনি দেখবেন যে $89,450-এর কমিশন রেট এখন সঠিক।

শেষে, আবার আপনাকে মনে করিয়ে দিচ্ছি। VLOOKUP অ্য প্রক্সিমেট ম্যাচ ব্যবহার করার আগে লুকআপ রেঞ্জকে আরোহী ক্রমে সাজাতে হবে। অন্যথায়, আপনি ভুল ফলাফল পাবেন।
৫. VLOOKUP ফাংশন কেস-সেনসিটিভ নয়
এক্সেলের আরেকটি সীমাবদ্ধতা হলো অনেক লোক জানেন না যে VLOOKUP কেস-সেনসিটিভ নয় এবং এই কারণে ভুল হতে পারে। নিচের চিত্রটি দেখুন। VLOOKUP ভ্যালু Marie হলে marie ম্যাচ হয়ে যায় এবং এক্সেল সেল F5-এ 14 রিটার্ন করে। আসলে সেল C6-এ থাকা 23 টিই আপনার চাওয়া মান। এই ধরনের ভুল থেকে বাঁচা কীভাবে যায়?

INDEX, MATCH, এবং EXACT ফাংশনগুলো একসাথে ব্যবহার করে সঠিক সংখ্যা 23 পাওয়া যায়। রেঞ্জ G5:G7 আপনাকে ফর্মুলা দেবে যা রেঞ্জ F5:F7-এ সংখ্যা রিটার্ন করবে। ফর্মুলাটি নিচের মতো।
=INDEX($B$4:$C$12,MATCH(TRUE,INDEX(EXACT($E5,$B$4:$B$12),0),0),2)
এখানে, MATCH(TRUE,INDEX(EXACT($E5,$B$4:$B$12),0),0) হলো সমস্যা সমাধানের কী। এটি আপনাকে সেই সারির রেফারেন্স দেবে যেখানে এক্সएक্ট ম্যাচ (Marie আমাদের কেসে) বিদ্যমান। নিজে করে দেখুন।

আরেকটি সহজ পদ্ধতি হলো OFFSET এবং MATCH ফাংশন-এর সমন্বয় ব্যবহার করা। আপনি সেল F15-এ নিচের ফর্মুলা লিখতে পারেন।
=OFFSET($B$4,MATCH($E15,$B$4:$B$12,0),1)
শেষে, ENTER চাপলে আপনি আউটপুট 23 পাবেন। একসাথে Fill Handle ব্যবহার করে সব আউটপুট পাওয়া যাবে।

৬. VLOOKUP ফাংশনে যেকোনো কলাম বা সারি থেকে শুরু করা যাবে না
এটা বিরক্তিকর যে VLOOKUP ফাংশন দিয়ে শুধু বাম থেকে ডান দিকে লুকআপ করা যায়। কিন্তু আপনি যদি ৫ নম্বর সেকশন-এ প্রস্তাবিত আর্টিকেলটি পড়েন, তবে জানবেন যে OFFSET/MATCH ফাংশন আপনাকে যেকোনো কলাম বা সারি থেকে সার্চ শুরু করতে সক্ষম করে। নিচের উদাহরণে, সেল C10-এর মান পরিবর্তন হবে আপনি সেল C9 এবং B10-এর মান পরিবর্তন করলে।

৭. কলাম ডিলিট করলে VLOOKUP ফাংশন কলাম অফসেট অ্যাডজাস্ট করে না
ধরুন, আমাদের একটি লুকআপ রেঞ্জ আছে যা C5 থেকে E12 পর্যন্ত। এবং আমরা রেঞ্জ G4:I6-এ VLOOKUP অ্য প্রক্সিমেট ম্যাচ করছি। সেল H5-এর ফর্মুলা নিচের মতো হবে যদি আমরা chun-এর জন্য অ্য প্রক্সিমেট কমিশন রেট বের করতে চাই।
=VLOOKUP(G5,B5:E12,3,TRUE)
C কলাম মুছে ফেলার পর, আপনি দেখবেন উপরের ফর্মুলা নিচের ফর্মুলায় পরিণত হয়েছে।
=VLOOKUP(O3,K3:M10,3,TRUE)

শেষে, লুকআপ টেবিলটি আটোমেটিক্যালি পরিবর্তন হয়েছে। লুকআপ ভ্যালুর সেল রেফারেন্সও "G5" থেকে "F5"-এ চলে গেছে। এগুলো সব ঠিক আছে। কিন্তু কলাম অফসেট এখনও 3। আসলে এটি হওয়া উচিত 2, কারণ কমিশন রেট এখন লুকআপ টেবিলের দ্বিতীয় কলামে আছে।

৮. সেলের দীর্ঘ কন্টেন্ট দেখতে কষ্ট
নিচের চিত্রে আপনি দেখবেন যে ফর্মুলা =COUNTIFS($C3:$C10,"="&$F3) সেল G3 থেকে সেল G4-এ কপি করার পর সেল রেফারেন্সগুলো কীভাবে পরিবর্তন হয়েছে। সেল G4-এ ফর্মুলা হলো =COUNTIFS($C4:$C11,"="&$F4) এবং এটি রিটার্ন করে 4। কিন্তু রেঞ্জ B2:D10 ভালোভাবে দেখলে পাবেন পুড়ছেলে শিক্ষার্থীর সংখ্যা হওয়া উচিত 5, 4 নয়। আমরা এখানে ভুল করেছি। কারণ আপনি রিলেটিভ রেফারেন্স - $C3:$C10 ব্যবহার করেছেন যা অন্য সেলে কপি করার পর পরিবর্তন হয়ে যায়। সঠিক পদ্ধতি হলো অ্যাবসোলিউট রেফারেন্স ব্যবহার করা এবং "$C3:$C10"-কে "$C4:$C11"-এর সাথে রিপ্লেস করা। ঠিক যেমন রেঞ্জ F7:H9-এ করা হয়েছে। ফর্মুলা পেস্ট করার সময় ভুল করা খুব সহজ, তাই আপনাকে সাবধান থাকতে হবে।

৯. সেলের কন্টেন্ট খুব দীর্ঘ হলে পুরো কন্টেন্ট দেখতে সমস্যা
এই সমস্যাটি ব্যাখ্যা করার জন্য, আমি এই আর্টিকেল থেকে একটি প্যারাগ্রাফ কপি করে সেল B6-এ রেখেছি। নিচের চিত্রে দেখানো হয়েছে যে ওয়ার্কশিটে শুধু এক লাইন আছে এবং পুরো কন্টেন্ট দেখতে কষ্ট হচ্ছে।

সেল B6-এ ALT + ENTER চাপা লাইন ব্রেক যোগ করার পর, আমরা নিচের চিত্রের মতো কিছু পাই। এখন ১১ লাইন আছে।

১০. মাইক্রোসফট ওয়ার্ডের সাথে নিখুঁতভাবে কাজ করতে পারা না
ওয়ার্ড থেকে এক্সেলে টেবিল কপি করার সময়, এক্সেল ক্যারেজ রিটার্ন ধারণকারী এক সারি একাধিক সারিতে ভাগ করে দেয়। ধরুন, একটি ডক ফাইল আছে - Copy table from word to excel.docx - যাতে নিচের টেবিলটি আছে।
| No | Details | Date |
|---|---|---|
| 1 | Notification Date | 22.07.2013 |
| 2 | Last Date for Receiving of filled in Application Form |
10.08.2013 |
| 3 | Announcement of Eligible Candidates List for Entrance Test | 13.08.2013 |
আমরা এই টেবিলটি CTRL+C এবং CTRL+V ব্যবহার করে ওয়ার্কশিটে কপি করলে, চিত্র ১০.১-এর মতো কিছু পাব। আপনি দেখতে পাবেন যে Last Date for Receiving of filled in Application Form দুটি সারিতে ভাগিয়ে পড়েছে। এটি আপনাক hiç কাঙ্ক্ষিত নয়।

এটি রোধ করতে, আমরা VBA ম্যাক্রো ব্যবহার করে ওয়ার্ড ফাইল থেকে টেবিল এক্সট্রাক্ট করে এক্সেল ফাইলে আনতে পারি। নিচের টেবিলের কোডটি একটি ওয়ার্ড ডকুমেন্টের সব টেবিল থেকে ডেটা রিট্রিভ করে এক্সেল ফাইলে আনে।
Sub Import_Table() Dim wdDoc As Object Dim wdFileName As Variant Dim tableNo As Integer 'Word-এ টেবিল নম্বর Dim iRow As Long 'Excel-এ সারি ইন্ডেক্স Dim iCol As Integer 'Excel-এ কলাম ইন্ডেক্স Dim resultRow As Long Dim tableStart As Integer Dim tableTot As Integer On Error Resume Next ActiveSheet.Range("A:AZ").ClearContents wdFileName = Application.GetOpenFilename("Word files (*.docx),*.docx", , _ "Browse for file containing table to be imported") If wdFileName = False Then Exit Sub '(user canceled import file browser) Set wdDoc = GetObject(wdFileName) 'Word ফাইল খুলুন With wdDoc tableNo = wdDoc.tables.Count tableTot = wdDoc.tables.Count If tableNo = 0 Then MsgBox "This document contains no tables", _ vbExclamation, "Import Word Table" ElseIf tableNo > 1 Then tableNo = InputBox("This Word document contains " & tableNo & " tables." & vbCrLf & _ "Enter the table to start from", "Import Word Table", "1") End If resultRow = 1 For tableStart = 1 To tableTot With .tables(tableStart) 'Word টেবিল সেল কন্টেন্ট এক্সেল সেলে কপি করুন For iRow = 1 To .Rows.Count For iCol = 1 To .Columns.Count ThisWorkbook.Worksheets("Import_Table").Cells(resultRow, iCol) = WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text) Next iCol resultRow = resultRow + 1 Next iRow End With resultRow = resultRow + 1 Next tableStart End With End Sub
ইম্পোর্ট টেবিল বাটনে ক্লিক করার পর, আমরা চিত্র ১০.২-এর মতো একটি টেবিল পাব। এখানে আমি কলাম প্রস্থ ম্যানুয়ালি পরিবর্তন করেছি দেখানোর জন্য যে "Last Date for Receiving of filled in Application Form" দুটি সারিতে ভাগ হয়নি।

১১. কখনও কখনও ফর্মুলা রিক্যালকুলেশনে অনেক সময় লাগে
ওয়ার্কবুক খোলার সময় বা বড় পরিবর্তন করার সময় এক্সেল আপনার ওয়ার্কবুকের ফর্মুলাগুলো রিক্যালকুলেট করে। এই ফিচারটি ভালো, কিন্তু এই রিক্যালকুলেশনগুলো কখনও কখনও অনেক সময় নেয়। এই দৃষ্টিকোণ থেকে এটি খুব ভালো নয়। নিচে আপনার জন্য দুটি পদ্ধতি দেওয়া হলো যাতে আপনি ক্যালকুলেশন নিয়ন্ত্রণ করতে পারেন এবং সময় বাঁচাতে পারেন।
♦ অটোমেটিক রিক্যালকুলেশন বন্ধ করুন
প্রথমে, File ট্যাবে ক্লিক করুন -> Options।
দ্বিতীয়ে, Formulas ক্যাটেগরিতে ক্লিক করুন।
আপনি নিচের চিত্রের মতো Excel Options ডায়ালগ বাক্স পাবেন। Calculation options সেকশনে Workbook Calculation-এর নিচে Automatic মানে এক্সেল আপনি هر وقت কোনো মান, ফর্মুলা বা নাম পরিবর্তন করলে সব ডিপেন্ডেন্ট ফর্মুলা রিক্যালকুলেট করবে। Automatic except for data tables মানে ডেটা টেবিল বাদে সব ডিপেন্ডেন্ট ফর্মুলা রিক্যালকুলেট করবে। শেষ অপশন Manual আপনাকে অটোমেটিক রিক্যালকুলেশন বন্ধ করতে দেবে।

নিচের চিত্রে অটোমেটিক রিক্যালকুলেশন বন্ধ করার আরেকটি পদ্ধতি দেখানো হয়েছে। এখানেও আপনার জন্য তিনটি অপশন আছে।
- Automatic,
- Automatic Except for Data Tables, এবং
- Manual।
শেষে, অটোমেটিক রিক্যালকুলেশন বন্ধ করার পর, আপনি Formulas ট্যাবের Calculation group-এ থাকা Calculate Now বাটনে ক্লিক করতে পারেন। এই পদ্ধতিতে এক্সেল সব ওপেন ওয়ার্কশিট রিক্যালকুলেট করবে। আরেকটি অপশন - Calculate Sheet বাটন - এক্সেলকে এক্টিভ ওয়ার্কশিট এবং এই ওয়ার্কশিটের সাথে লিংক করা চার্ট/চার্ট শিট রিক্যালকুলেট করতে বলবে।
♦ এক্সেল কতবার একটি ফর্মুলা ইটারেট করবে তা পরিবর্তন করুন
Enable iterative calculation চেক বাক্সটি সিলেক্টেড আছে কিনা নিশ্চিত করুন, তারপর ম্যাক্সিমাম ইটারেশন এবং ম্যাক্সিমাম চেঞ্জ সেট করুন। ইটারেশনের সংখ্যা যত বেশি, এক্সেলকে একটি ওয়ার্কশিট রিক্যালকুলেট করতে তত বেশি সময় লাগবে। ম্যাক্সিমাম চেঞ্জের পরিমাণ যত ছোট, ফলাফল তত সঠিক এবং এক্সেলকে রিক্যালকুলেট করতে তত বেশি সময় লাগবে।

১২. একাধিক ওয়ার্কশিট রিনেম করার সহজ উপায় নেই
কখনও কখনও আমাদের একাধিক ওয়ার্কশিট ইনসার্ট করতে হয়। আপনি সেই সব ওয়ার্কশিট রিনেম করতে কী করবেন? একে একে রিনেম কমান্ড ব্যবহার করবেন? যদি ১০০টি ওয়ার্কশিট রিনেম করতে হয় তবে? এটি করতে আপনার অনেক সময় লাগবে। خوشকিসমتی से, আমরা একাধিক ওয়ার্কশিট রিনেম করার জন্য VBA কোড ব্যবহার করতে পারি।
একাধিক ওয়ার্কশিট ইনসার্ট ও রিনেম করার কোড নিচে দেওয়া হলো।
Sub rename_tab() Application.DisplayAlerts = False 'Define variable Dim wbk As Workbook Dim ws As Worksheet 'Open workbookFile Set fnm = ThisWorkbook.Sheets(1).Cells(1, 2) Set wbk = Workbooks.Open(fnm) 'Set workbook as active workbook wbk.Activate For i = 2 To ThisWorkbook.Worksheets(2).UsedRange.Rows.Count 'Return number of all worksheet in the active workbook n = Worksheets.Count 'Add worksheet after the last worksheet Set ws = Sheets.Add(After:=Worksheets(Worksheets.Count)) 'Give the newly added worksheet a name ws.Name = ThisWorkbook.Worksheets(2).Cells(i, 2) Next i 'Close and save active workbook wbk.Close Savechanges:=True End Sub
চিত্রটি আপনাকে দেখাচ্ছে কীভাবে এই ম্যাক্রো ডিজাইন ও ব্যবহার করতে হয়। ধরে নিন, ম্যাক্রোটি Insert and Rename Multiple Tabs.xlsm ফাইলে সংরক্ষিত। এই xlsm ফাইলে দুটি ট্যাব আছে। প্রথমটি একটি ফাইল ইনক্লুড করতে হবে যেখানে আপনি ট্যাব ইনসার্ট করতে চান। সেল B1-এ ফাইল পাথনেম লিখতে হবে। ম্যাক্রো সেল B1-এ লিস্ট করা ফাইলটি (WS.xlsx আমাদের কেসে) খুলবে। দ্বিতীয় ওয়ার্কশিট (চিত্রের ডান প্যানেল) ট্যাবের নামগুলো দেবে যেগুলো VBA ম্যাক্রো ব্যবহার করবে। আপনি দ্বিতীয় ওয়ার্কশিটে যত ইচ্ছে ট্যাবের নাম যোগ করতে পারেন।

নিচের চিত্রটি WS.xlsx-এর স্ক্রিনশট দেখাচ্ছে উপরের VBA কোড চালানোর আগে এবং পরে।

১৩. পিভট টেবিলে মিডিয়ান নেই
পিভট টেবিল সবচেয়ে শক্তিশালী ফিচারগুলোর একটি। এটি আপনাকে ডেটা সারসংক্ষেপ, বিশ্লেষণ, এক্সপ্লোর এবং উপস্থাপন করতে দেয়। এটি আপনাকে গুরুত্বপূর্ণ ইনসাইট এবং বিস্তারিত ডেটা সেট বের করতে সাহায্য করে।
নিচের চিত্রের বাম প্যানেলে আমাদের কেসের জন্য বিশ্লেষণ করার ডেটা আছে। আপনি দেখতে পাচ্ছেন যে বিভিন্ন ছাত্রের উচ্চতা ও ওজন সহ তাদের লিঙ্গ ও বয়স আছে।
প্রথমে, রেঞ্জ B5:F23-এ যেকোনো সেলে ক্লিক করুন।
দ্বিতীয়ে, Insert ট্যাবে PivotTable-এ ক্লিক করুন।

তৃতীয়ে, প্রম্পট হওয়া Create PivotTable ডায়ালগ বাক্সে ডিফল্ট লোকেশন বেছে নিন। আপনি দেখতে পাচ্ছেন যে এই রেঞ্জটি চিত্রের মাঝ প্যানেলে সিলেক্টেড।

প্রচুর হওয়া PivotTable field list ডায়ালগ বাক্সে (চিত্রের ডান প্যানেল), SEX এবং AGE-কে Row Labels এরিয়ায় টেনে আনুন। তারপর WEIGHT-কে Values এরিয়ায় টেনে আনুন। শেষে, সেল H5 থেকে I19 পর্যন্ত একটি পিভট টেবিল তৈরি হয়েছে।

শেষে, পিভট টেবিল থেকে, ১১ বছর বয়সী ছেলে শিক্ষার্থীদের ওজনের সমষ্টি 57.5। এবং ১৩ বছর বয়সী মেয়ে শিক্ষার্থীদের ওজনের সমষ্টি 121.8।
সমষ্টি পরিসংখ্যানের পাশাপাশি, আমরা ১৩ বছর বয়সী ছাত্রদের সংখ্যা গুনতে পারি বা গড় ওজন বের করতে পারি। পিভট টেবিলের যেকোনো সেলে (রেঞ্জ H5:I19) রাইট-ক্লিক করুন এবং তারপর Value Field Settings বেছে নিন। Value Field Settings ডায়ালগ বাক্সে (চিত্রের ডান প্যানেল), আপনি আপনার আগ্রহের ক্যালকুলেশন টাইপ সিলেক্ট করতে পারেন।
গুরুত্বপূর্ণ, ক্যালকুলেশন টাইপে রয়েছে Count, Average, Max, Min ইত্যাদি। আপনি সব ক্যালকুলেশন টাইপ পড়লে খেয়াল করবেন যে এক্সেল পিভট টেবিল-এ Median পরিসংখ্যান দেয় না। তাহলে আপনি যদি আসলেই Median পরিসংখ্যান বের করতে চান? MEDIAN ফাংশন একটি ভালো বিকল্প।

MEDIAN ফাংশন ব্যবহার করার আগে, ডেটাকে SEX এবং AGE- অনুযায়ী সাজাতে ভালো। এখানে, আমরা ডেটাসেটকে SEX এবং AGE- অনুযায়ী সাজিয়েছি।

এখন MEDIAN ফাংশন ব্যবহার করে প্রতিটি সাবগ্রুপের Median বের করি। সেল J5-এ ফর্মুলাটি নিচের মতো।
=MEDIAN(E27:E35)
এখানে, E27:E35 বোঝায় মেয়ে শিক্ষার্থীদের WEIGHT।

শেষে, ENTER চাপলে এটি রিটার্ন করে 62.5। এটি বলে যে ১১ থেকে ১৫ বছর বয়সী মেয়ে শিক্ষার্থীদের মিডিয়ান WEIGHT হলো 62.5 kg।

একইভাবে, ছেলে শিক্ষার্থীদের কেসে নিচের ফর্মুলা লিখতে হবে।
=MEDIAN(E14:E23)
এখানে, E14:E23 বোঝায় ছেলে শিক্ষার্থীদের WEIGHT।

বারবার, ENTER চাপলে আউটপুট পাবেন 64.15।

১৪. পিভট টেবিলে ইউনিক ভ্যালু গুনতে পারা যায় না
কখনও কখনও আমরা জানতে চাই একটি রেঞ্জে কতগুলো ইউনিক ভ্যালু আছে যেটে ডুপ্লিকেট ভ্যালু আছে। কিন্তু পিভট টেবিল ইউনিক ভ্যালু গুনতে পারে না। নিচের চিত্রটি এটি ব্যাখ্যা করে। আপনি দেখতে পাচ্ছেন ১১ বছর বয়সী ২জন শিক্ষার্থী এবং ১২ বছর বয়সী ৫জন শিক্ষার্থী আছে। কিন্তু আপনি যদি বয়সের ডিস্ট্রিবিউশনের রেঞ্জ জানতে চান, তবে আপনাকে ম্যানুয়ালি একে একে গুনতে হবে।
প্রথমে, আপনাকে একটি পিভট টেবিল বানাতে হবে। ধরে নিন পিভট টেবিল-এ Row Levels এবং Sum of AGE আছে।

দ্বিতীয়ে, আপনি ROWS ফাংশন ব্যবহার করতে পারেন যা রেফারেন্স রেঞ্জের সারির সংখ্যা রিটার্ন করে। আপনাকে নিচের ফর্মুলা লিখতে হবে।
=ROWS(H5:H10)
এখানে, H5:H10 বোঝায় Row Levels।

শেষে, ENTER চাপা আউটপুট ৬ দেবে।

নিচের চিত্রটি আপনাকে দেখাচ্ছে কীভাবে আলাদা লিঙ্গ গ্রুপের জন্য ইউনিক ভ্যালু গুনতে হয়। আমরা এখানে প্রতিটি সাবগ্রুপে ROWS ফাংশন প্রয়োগ করেছি। মেয়ে গ্রুপ-এর জন্য, সেল D5-এ নিচের ফর্মুলা লিখুন।
=ROWS(B6:B10)
একইভাবে, ENTER চাপা কাউন্ট ৫ দেবে।

এবং ছেলে গ্রুপ-এর জন্য, সেল D11-এ নিচের ফর্মুলা লিখুন।
=ROWS(B12:B17)
শেষে, এটি রিটার্ন করবে ৬।

১৫. MAX বা MEDIAN যেন ফাংশনগুলোর জন্য SUMIF/COUNTIF/AVERAGEIF সমতুল্য ফাংশন নেই
SUMIFS ফাংশন একাধিক শর্ত পূরণকারী সেলগুলোর সমষ্টি বের করতে পারে। SUMIF ফাংশন শুধু একটি শর্ত लगाয়, কিন্তু SUMIFS ফাংশন একাধিক রেঞ্জে একাধিক শর্তের সেটে প্রয়োগ করা যায়।
ফাংশনে Sum_range আর্গুমেন্ট মানে যে রেঞ্জটি সমষ্টি করা হবে। Criteria_range এবং criteria জোড়ায় জোড়ায় দেয়া হয়।
প্রধানত, সেল I5-এর জন্য ফর্মুলা হলো।
=SUMIFS($E$5:$E$23,$C$5:$C$23,"F=")
সেল I5-এর সমষ্টি রেঞ্জ হলো E5:E23। প্রথম শর্ত হলো C5:C23,"= F" আর দ্বিতীয় শর্ত হলো E5:D23,= 11। ১১ বছর বয়সী মেয়ে শিক্ষার্থীদের ওজনের সমষ্টি 51.3 kg।

সাধারণত, AVERAGEIFS ফাংশন-এর সিনট্যাক্স SUMIFS-এর সাথে মিলিত। নিচের চিত্রটি দেখাচ্ছে কীভাবে AVERAGEIFS ফাংশন ব্যবহার করতে হয়।

অতিরিক্তভাবে, COUNTIFS ফাংশন কিছুটা ভিন্ন SUMIFS ফাংশন এবং AVERAGEIFS ফাংশন-এর থেকে।
গুরুত্বপূর্ণ, সিনট্যাক্সে শুধু ভিন্ন ভিন্ন জোড়া criteria_range এবং criteria থাকে। sum_range বা average_range এর মতো রেঞ্জ থাকবে না। নিচের চিত্রটি দেখাচ্ছে কীভাবে COUNTIFS ফাংশন প্রয়োগ করতে হয়।

শেষে, এই ফাংশনগুলো উপকারী, ঠিক না? কিন্তু MEDIANIFS ফাংশন এর মতো কোনো সমতুল্য ফাংশন নেই।
১৬. উইন্ডোজ এক্সেলে উপলব্ধ ফিচারগুলো ম্যাক এক্সেলে নেই
কিছু উপকারী রিপোর্টিং ফিচার Mac-এর জন্য এক্সেলে কাজ করে না এবং তাই আপনি সেগুলো ব্যবহার করতে পারবেন না যখন আপনি Mac ব্যবহারকারী ক্লায়েন্টের জন্য রিপোর্ট তৈরি করবেন। এই রিপোর্টিং ফিচারের পাশাপাশি, অন্যান্য ফিচারও আছে যা উইন্ডোজ ভার্সন এক্সেল-এ অন্তর্ভুক্ত কিন্তু ম্যাক ভার্সন এক্সেল-এ নেই।
উদাহরণস্বরূপ, উইন্ডোজ এক্সেল আপনাকে ফাইল সংরক্ষণের জন্য ডিফল্ট লোকেশন সেট করতে দেয়। এটি আপনি কাজ করার সময় আপনার ওয়ার্কবুকের ড্রাফট কপি আটোমেটিক্যালি সংরক্ষণ করে যাতে এক্সেল হঠাৎ ক্র্যাশ করলে আপনার ক্ষতি কম হয়। উইন্ডোজ ভার্সন এক্সেল আপনাকে Quick Access Toolbar কাস্টোমাইজ করতে দেয়। এই তিনটি ফিচার ম্যাক এক্সেল-এ সাপোর্টেড নয়।
সাধারণত, উইন্ডোজ এক্সেল-এ আপনি ওয়ার্কবুককে তিন মোডে প্রিভিউ করতে পারেন।
- Normal
- Page Layout এবং
- Page Break।
শেষে, ম্যাক এক্সেল-এ আপনি শুধু Normal এবং Page Layout প্রিভিউ মোড ব্যবহার করতে পারেন। Print Preview-এর জন্য, আপনি বড় প্রিন্ট প্রিভিউ দেখতে পারেন এবং জুম ইন/আউট করতে পারেন উইন্ডোজ ভার্সন এক্সেল-এ। কিন্তু ম্যাক এক্সেল-এ আপনি শুধু ছোট Print Preview দেখতে পারেন যা জুম করা যায় না। View Side by Side ফিচার যা দুটি ওয়ার্কবুক সহজে তুলনা করতে দেয় শুধু উইন্ডোজ ভার্সন এক্সেল-এ উপলব্ধ। এবং Synchronous Scrolling যা দুটি ওয়ার্কবুক একসাথে স্ক্রোল করতে দেয় সেটিও ম্যাক এক্সেল-এ নেই।
এছাড়া আরও অনেক ফিচার আছে যা আমি সবই অন্তর্ভুক্ত করতে পারিনি। বিস্তারিত জানতে এই আর্টিকেলটি পড়ুন।
১৭. এক্সেল অপশনস ডায়ালগ বাক্সে টেবিলে কুইক অ্যাক্সেস নেই
আপনি যদি Excel Options ডায়ালগ বাক্স খুলেন, তবে দেখবেন там ১০টি ট্যাব আছে এবং প্রতিটিতে দশক গুন সেটিংস ভরা আছে। একটি নির্দিষ্ট সেটিং খুঁজে বের করতে অনেক সময় নষ্ট হতে পারে।
১৮. এক্সেলের স্পেসিফিকেশন লিমিট
সবাই জানে এক্সেলের লিমিট আছে। উদাহরণস্বরূপ, ওয়ার্কবুক খুলবে কিনা তা উপলব্ধ মেমরি এবং সিস্টেম রিসোর্সে নির্ভর করে। সর্বোচ্চ সারির সংখ্যা ১,০৪৮,৫৭৬ এবং সর্বোচ্চ কলামের সংখ্যা ১৬,৩৮৪। নিচে সব এক্সেল লিমিটের সারসংক্ষেপ দেওয়া হলো।
কিন্তু কিছু সীমাবদ্ধতা বিরক্তিকর। উদাহরণস্বরূপ, সর্বোচ্চ সংখ্যা প্রিসিশন ১৫। মানে একটি সেলে অঙ্কের সংখ্যা শুধু ১৫টি হতে পারে। এক্সেল ১৫তম অঙ্কের পরের অঙ্কগুলোকে শূন্য দিয়ে রিপ্লেস করে। আপনি যদি সেলে 12345678901234567890 লিখেন, তবে আপনি পাবেন 12345678901234500000।
১৯. এক্সেলে অটোমেটিক স্পেল চেকিং নেই
মাইক্রোসফট ওয়ার্ড অটোমেটিক স্পেল চেকিং অফার করে যা আপনার ফাইলের স্পেলিং ও গ্রামার চেক করে এবং ভুলগুলো হাইলাইট করে। কিন্তু এক্সেল অটোমেটিক্যালি ভুলগুলো হাইলাইট করে না। কিন্তু Reviews > Proofing > Spelling কমান্ড ব্যবহার করে আপনি আপনার এক্সেল ফাইলগুলোর ত্রুটি চেক করতে পারেন।
২০. ম্যাক্রো চালানোর সময় এক্সেল সহজে ক্র্যাশ করে
হয়তো আপনার একই অভিজ্ঞতা আছে যে VBA ম্যাক্রো চালানোর সময় এক্সেল ঠপ হয়ে যায়, বিশেষ করে যখন আপনি DO WHILE লুপ বা FOR NEXT লুপ ব্যবহার করেন যা অনেকবার লুপ করতে হয় (যেমন ১০০০ বা ১০,০০০ বার)। আমি ইন্টারনেট থেকে ডেটা স্ক্রেপ করতাম ১০,০০০টির বেশি কোম্পানির নাম ও যোগাযোগের তথ্য বের করতে। মোট প্রায় ২৪ ঘণ্টা লাগলো কাজটি শেষ করতে। শুরুতে, খারাপ ইন্টারনেট কন্ডিশনের কারণে ১ বা ২ ঘণ্টা ম্যাক্রো চালানোর পর ক্র্যাশ করত। হঠাৎ সব কাজ মুছে যেত। দ্বিতীয়বার ক্র্যাশ করলে আমি খুব হতাশ হয়েছিলাম। হঠাৎ মনে পড়লো যে আমি প্রতিটি লুপ শেষ হলে ওয়ার্কবুক সেভ করতে পারি। প্রতিটি লুপের শেষে "ThisWorkbook.Save" স্টেটমেন্ট যোগ করার পর, এক্সেল ভুল সময়ে ক্র্যাশ করলে আমি আর কোনো কাজ হারিয়িনি।
২১. CSV ফাইল সংক্রান্ত এক্সেল সমস্যা
এক্সেলে CSV ফাইল ফরম্যাট সমস্যা আছে। কখনও কখনও, Excel 2013 এবং 2016 ব্যবহারকারী যাদের ল্যাঙ্গুয়েজ ভেরিয়েশন আছে, US অ্যাপ্লিকেশন থেকে জেনারেট হওয়া একটি CSV ফাইল ডাবল ক্লিক করে খোলতে চান। কিন্তু এক্সেল ফাইলটি ফরম্যাট করে না এবং ডিফল্টভাবে CSV মোডে (কমা সেপারেট) দেখায়। এক্সেল রিজনের জন্য List Separator ক্যারেক্টার (যেমন কমা, সেমিকোলন ইত্যাদি) ব্যবহার করে। এর সমাধান হতে পারে।
- কমাকে লিস্ট সেপারেটর হিসেবে ব্যবহার করা একটি রিজন সিলেক্ট করুন (যেমন USA, Canada ইত্যাদি)
- এক্সেলে CSV ফাইল খুলুন ও তৈরি করুন এবং এটি ওয়ার্কশিট হিসেবে সংরক্ষণ করুন।
- রিজনাল সেটিংসকে মূল অবস্থায় ফিরিয়ে আনুন।
২২. ডেটা অ্যানালিটিক্স-এর জন্য এক্সেল সীমাবদ্ধতা
এক্সেলে ডেটা অ্যানালসিস করার সময় আপনি নিচের সমস্যায় মুখোমুখি হবেন।
- জটিল মডেল তৈরি করার সময় এক্সেল ভিজিবিলিটি সীমাবদ্ধ করে।
- এক্সেল সীমাবদ্ধতা колাবোরেশনকে আরও চ্যালেঞ্জিং করে তোলে।
- টেমপ্লেট ও ডেটা এন্ট্রি পরিচালনায় এক্সেল অকার্যকর।
- এক্সেলের সীমাবদ্ধতা একাধিক স্প্রেডশিট ট্র্যাক করতে চ্যালেঞ্জিং করে তোলে।
উপসংহার
এই আর্টিকেলের উদ্দেশ্য এক্সেলের সাথে কাজ করার সময় কিছু গুরুত্বপূর্ণ সীমাবদ্ধতা ফোকাস করা। আরও কিছু সীমাবদ্ধতা থাকতে পারে। আরও জানতে আমাদের অফিসিয়াল এক্সেল লার্নিং প্ল্যাটফর্ম ExcelDemy দেখুন।
আরও পড়ুন
- এক্সেলে Offset ফাংশনের ব্যবহার [Offset – Match Combo, Dynamic Range]
- এক আর্গুমেন্ট সহ এক্সেল VBA ফাংশন
- এক্সেলে VLOOKUP ফাংশন: উদাহরণসহ শিখুন
- এক্সেলে সেল বিভাজন (সর্বোচ্চ গাইড)
