এক্সেলের কোনও সেলের জন্য বর্তমান লাইন নম্বর এবং বর্তমান কলামের নাম পাওয়ার জন্য কী কাজ করবে?
OFFSET
সাথে বা পরিবর্তে ফাংশনটি ব্যবহার করতে পারেন INDIRECT
। আপনি যদি স্ট্রিং ব্যবহার করতে চান তবে আমি আমার উত্তরও আপডেট করেছি।
এক্সেলের কোনও সেলের জন্য বর্তমান লাইন নম্বর এবং বর্তমান কলামের নাম পাওয়ার জন্য কী কাজ করবে?
OFFSET
সাথে বা পরিবর্তে ফাংশনটি ব্যবহার করতে পারেন INDIRECT
। আপনি যদি স্ট্রিং ব্যবহার করতে চান তবে আমি আমার উত্তরও আপডেট করেছি।
উত্তর:
এটি করতে আপনি ROW
এবং COLUMN
ফাংশনগুলি ব্যবহার করতে পারেন । আপনি যদি সেই সূত্রগুলির জন্য যুক্তি বাদ দেন তবে বর্তমান ঘরটি ব্যবহৃত হবে। এই সরাসরি সাথে ব্যবহার করা যাবে ফাংশন , বা অন্য কোন ফাংশন যেখানে আপনি সংখ্যাসূচক মান হিসাবে উভয় সারি ও কলাম নির্দিষ্ট করতে পারেন।OFFSET
উদাহরণস্বরূপ, আপনি =ROW()
সেল ডি 8 এ প্রবেশ করলে, প্রত্যাশিত মান 8 হয় you আপনি যদি =COLUMN()
একই ঘরে প্রবেশ করেন, ফেরত মান 4 হয়।
আপনি যদি কলামের চিঠিটি চান তবে আপনি CHAR
ফাংশনটি ব্যবহার করতে পারেন । আমি কলামটি উপস্থাপন করার জন্য চিঠিগুলি ব্যবহার করার পরামর্শ দিচ্ছি না, কারণ ডাবল-অক্ষর কলামের নামগুলিতে প্রবেশ করার সময় জিনিসগুলি জটিল হয়ে ওঠে (যেখানে কেবল সংখ্যাগুলি ব্যবহার করা আরও যুক্তিযুক্ত)।
নির্বিশেষে, আপনি যদি এখনও কলাম লেটার পেতে চান, আপনি কেবল কলাম নম্বরটিতে 64 যোগ করতে পারেন (then৪ ততক্ষণে একটি অক্ষর কম A
), সুতরাং পূর্ববর্তী উদাহরণে, আপনি যদি ঘরটির মান সেট করে থাকেন =CHAR(COLUMN()+64)
তবে ফিরে আসা মানটি হবে D
। আপনি যদি কোনও ঘরের মান নিজের ঘরে অবস্থান করতে চান তবে সম্পূর্ণ সূত্রটি হবে =CHAR(COLUMN()+64) & ROW()
।
মাত্র একটি এফওয়াইআই, আমি একটি এসকিআইআই টেবিল থেকে 64 পেয়েছি। আপনি CODE
সূত্রটিও ব্যবহার করতে পারেন , সুতরাং এটি ব্যবহার করে আপডেট করা সূত্রটি হবে =CHAR(COLUMN() + CODE("A") - 1)
। আপনাকে সর্বনিম্ন 1 টি করতে হবে যেহেতু সর্বনিম্ন মান COLUMN
সর্বদা 1 হয় এবং তারপরে পুরো সূত্রের ন্যূনতম ফেরত মান হবে B
।
তবে এটি দ্বি-বর্ণের কলামগুলির সাথে কাজ করবে না। সেক্ষেত্রে দ্বি-বর্ণের কলামগুলি সঠিকভাবে পার্স করতে আপনার নিম্নলিখিত সূত্রটি দরকার:
=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()
আমি নিশ্চিত যদি এটার বা না করার জন্য একটি সহজ উপায় নই, কিন্তু আমি কক্ষ থেকে যে সব কাজের কথা জানি A1
করতে ZZ99
কোন সমস্যা হয়। তবে এটি চিত্রিত করে যে চিঠি-ভিত্তিক কলাম শনাক্তকারীদের ব্যবহার এড়ানো ভাল এবং খাঁটি সংখ্যা ভিত্তিক সূত্রগুলি (যেমন বর্ণের সাথে অক্ষরের পরিবর্তে কলাম নম্বরটি ব্যবহার করা OFFSET
) থাকা উচিত।
OFFSET
পরিবর্তে ব্যবহার করার পরামর্শ দিচ্ছি , যা আপনাকে কলামগুলি সংখ্যা হিসাবে নির্দিষ্ট করার অনুমতি দেয়। নির্বিশেষে, আমি দ্বি-অক্ষরের কলাম দিয়ে কাজ করার জন্য এটি বাড়ানোর জন্য একটি সূত্র দিয়ে উত্তর আপডেট করেছি।
However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
এটা চেষ্টা কর
=SUBSTITUTE(SUBSTITUTE(CELL("address"),"$" & ROW(),""), "$", "")
এটি আপনাকে কোনও column ইত্যাদি ছাড়াই সঠিক কলামের শিরোনাম দেয়
এটিকে যে কোনও ঘরে টাইপ করুন:
এস্পাওল :
=SI(ENTERO((COLUMNA()-1)/26)=0;"";CAR((ENTERO(COLUMNA()-1)/26)+64))&CAR(COLUMNA()-(ENTERO((COLUMNA()-1)/26)*26)+64)
ইংরেজি :
=IF(INT((COLUMN()-1)/26)=0,"",CHAR((INT(COLUMN()-1)/26)+64))&CHAR(COLUMN()-(INT((COLUMN()-1)/26)*26)+64)
আপনি সারি সংখ্যা দ্বারা কলাম () প্রতিস্থাপন করতে পারেন।
কলামের নাম পেতে আমি নিম্নলিখিত সূত্রগুলি ব্যবহার করেছি।
একটি নির্দিষ্ট কক্ষের জন্য:
=SUBSTITUTE(CELL("address",H3),"$" & ROW(H3),"")
বর্তমান কক্ষের জন্য:
=SUBSTITUTE(CELL("address"),"$" & ROW(),"")
এই প্রকরণের চেষ্টা করুন। এটি 3-বর্ণের কলামগুলিতে কাজ করে এবং সামনের প্রান্তে একটি "$" ছাড়বে না:
=SUBSTITUTE(ADDRESS(ROW(XFD123),COLUMN(XFD123),4),ROW(XFD123),"")
আর একটি সম্ভাব্য উপায় হ'ল এই জাতীয় কিছু ব্যবহার করা:
=INDIRECT("MySheet1!"&LOOKUP(COLUMN(),colid)&ROW())
যেখানে colid
কোনও নামাঙ্কিত পরিসীমা বোঝানো হয়েছে সেখানে আপনি একাধিক সারি সহ দুটি সংলগ্ন কলাম যুক্ত ওয়ার্কবুকের ভিতরে অন্য কোথাও তৈরি করবেন: প্রথম কলামটিতে সংখ্যার সাথে 1 থেকে n COLUMN()
সংখ্যক সমন্বিত, দ্বিতীয়টি A - ZZ, অথবা আরও অনেক কলাম আপনাকে উল্লেখ করেছে মিটমাট করতে ইচ্ছুক। ROW()
জরিমানা করে ছেড়ে দেওয়া হয় যেমন সারি নম্বর আসতে হয়।
সুতরাং আপনি যদি উপরের স্ট্রিংটি 'মাই শীট 2' এর সেল এ 1 এ অনুলিপি করতে চান তবে এটি মূল্যায়ন করবে =MySheet1!A1
এবং এর সাথে সম্পর্কিত সেলে পাওয়া মানটি ফিরিয়ে দেবে MySheet1
।
এটি আপনাকে সক্ষম করবে, উদাহরণস্বরূপ, MySheet1
একটি কার্যক্ষম অঞ্চল হিসাবে ব্যবহার করতে , নতুন ডেটা মুছতে এবং পুনরায় সন্নিবেশ MySheet2
করতে, সেই সাথে সম্পর্কিত যে কোনও ফর্ম্যাট বা গণনাগুলি উল্লিখিত ট্যাবযুক্ত কার্যপত্রক থেকে নতুন ডেটাসেটের সাথে সঠিকভাবে কাজ চালিয়ে যাবে।
এখানে একটি ভিবিএ, ব্যবহারকারী নির্ধারিত সূত্র, সমাধান। এটি 1, 2, এবং 3 অক্ষরের কলামগুলির সাথে কাজ করে।
একটি কোড মডিউলে নিম্নলিখিত রাখুন:
Function COLUMNLETTER(Optional rng As Range) As String
'Returns the Column Letter of the top left cell in rng.
If rng Is Nothing Then Set rng = Application.Caller
COLUMNLETTER = Left(rng.Address(0, 0), IIf(rng.Column > 26, IIf(rng.Column > 702, 3, 2), 1))
End Function
= যে কোনও ঘরে COLUMNLETTER () ঘরের কলাম লেটারটি ফিরিয়ে দেবে।
= যে কোনও ঘরের কলম্বল্টার (বি 3) বি ফিরে আসবে ।
INDIRECT ফাংশনের ভিতরে জেনেরিক সূত্র তৈরি করার সময় এই ব্যবহারকারীর সংজ্ঞায়িত ফাংশন দুর্দান্ত কাজ করে।
=MID(ADDRESS(ROW(),COLUMN()),2,FIND("$",ADDRESS(ROW(),COLUMN()),2)-2)
ঠিকানা সূত্রটি কলাম এবং সারি নামটি দিয়ে কাজ করে। প্রত্যাবর্তিত ফর্ম্যাটটি সর্বদা থাকবে $(Column Letters)$(Row Numbers)
- যেমন $AA$2
বা$XAA$243556
যদি আমরা জানি যে always সর্বদা প্রথম অক্ষরটিতে উপস্থিত হয় তবে আমরা প্রথম mid চিহ্নের পরে অক্ষরগুলি টানা শুরু করতে প্রথম মধ্য সূত্রটি ব্যবহার করতে পারি (অর্থাত ২ য় অক্ষর)।
তারপরে, আমরা পরবর্তী $ চিহ্নটি খুঁজে পাই (যেমনটি আমরা জানি কেবলমাত্র দুটি থাকবে) এবং আমরা জানি প্রথম এবং দ্বিতীয় ডলারের চিহ্নের মধ্যে কতগুলি অক্ষর রয়েছে। বাকীটি সরল বিয়োগফল।
এটা চেষ্টা কর:
= যদি (কলম্ব ()> 26, চার (কলম্ব () / 26 +64), "") এবং চার (এমওডি (কলম্বন () - 1,26) +65) এবং ROW ()
"ZY1" বা কলাম = 701 অবধি এই ফাংশন কার্যকর
=IF(COLUMN()>702,RIGHT(LEFT(ADDRESS(ROW(),COLUMN()),4),3),IF(COLUMN()>26,RIGHT(LEFT(ADDRESS(ROW(),COLUMN()),3),2),RIGHT(LEFT(ADDRESS(ROW(),COLUMN()),2),1)))
LIN
এবংCOL
তবে সমস্যাটি হ'ল তারা নম্বরগুলি ফেরত দেবে, এবংINDIRECT
এটিতে আমার কলাম লেটার দরকার ।