excel-formula - sheet - excel tutorial




এক্সেল: একটি স্ট্রিং শেষ অক্ষর/স্ট্রিং ম্যাচ (7)

বেস ফাংশন ব্যবহার করে একটি স্ট্রিং মধ্যে শেষ চরিত্র / স্ট্রিং ম্যাচ চিহ্নিত করার একটি কার্যকর উপায় আছে? আমি স্ট্রিং এর শেষ চরিত্র / স্ট্রিং, কিন্তু একটি স্ট্রিং একটি অক্ষর / স্ট্রিং এর শেষ ঘটনার অবস্থান। Search এবং বাম থেকে ডান উভয় কাজ find তাই আমি দীর্ঘ recursive অ্যালগরিদম ছাড়াই কিভাবে আবেদন করতে পারি তা মনে করতে পারছি না। এবং এই সমাধান এখন অপ্রচলিত মনে হয়।


আপনি একটি স্ট্রিং মধ্যে একটি স্ট্রিং শেষ উদাহরণ খুঁজে পেতে নির্মিত এই ফাংশন ব্যবহার করতে পারে।

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

Public Function FindLastCharOccurence(fromText As String, searchChar As String) As Integer
Dim lastOccur As Integer
lastOccur = -1
Dim i As Integer
i = 0
For i = Len(fromText) To 1 Step -1
    If Mid(fromText, i, 1) = searchChar Then
        lastOccur = i
        Exit For
    End If
Next i

FindLastCharOccurence = lastOccur
End Function

আমি এটা ভালো ব্যবহার করি:

=RIGHT(A2, LEN(A2) - FindLastCharOccurence(A2, "\"))

আমি পার্টির কাছে একটু দেরিতে আছি, কিন্তু হয়তো এটা সাহায্য করতে পারে। প্রশ্নের লিঙ্কটিতে একই রকম সূত্র রয়েছে, তবে ত্রুটিগুলি পরিত্রাণ পেতে আমার খাত (আইএফ) বিবৃতি ব্যবহার করে।

আপনি যদি Ctrl + Shift + Enter থেকে ভীত না হন তবে আপনি অ্যারে সূত্রের সাথে বেশ ভালভাবে কাজ করতে পারেন।

স্ট্রিং (সেল A1): "one.two.three.four"

সূত্র:

{=MAX(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)))}  use Ctrl+Shift+Enter

ফলাফল: 14

প্রথমত,

ROW($1:$99)

1 থেকে 99 পর্যন্ত পূর্ণসংখ্যার একটি অ্যারে প্রদান করে: {1,2,3,4,...,98,99}

পরবর্তী,

MID(A1,ROW($1:$99),1)

লক্ষ্য স্ট্রিংয়ে পাওয়া 1-দৈর্ঘ্যের স্ট্রিংগুলির একটি অ্যারে প্রদান করে, তারপর লক্ষ্য স্ট্রিংয়ের দৈর্ঘ্যের পরে ফাঁকা স্ট্রিংগুলি ফেরত দেয়: {"o","n","e",".",..."u","r","","",""...}

পরবর্তী,

IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99))

অ্যারে প্রতিটি আইটেম স্ট্রিং "।" এবং স্ট্রিং বা মিথ্যাতে অক্ষর সূচীটি ফেরত দেয়: {FALSE,FALSE,FALSE,4,FALSE,FALSE,FALSE,8,FALSE,FALSE,FALSE,FALSE,FALSE,14,FALSE,FALSE.....}

সর্বশেষ,

=MAX(IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99)))

অ্যারের সর্বোচ্চ মান প্রদান করে: 14

এই সূত্রের উপকারিতা হল এটি সংক্ষিপ্ত, অপেক্ষাকৃত সহজে বোঝা এবং কোনও অনন্য অক্ষরের প্রয়োজন হয় না।

অসুবিধাগুলি Ctrl + Shift + Enter এবং স্ট্রিং দৈর্ঘ্যের সীমাবদ্ধতার প্রয়োজনীয় ব্যবহার। এটি নীচে দেখানো একটি বৈচিত্র্যের সাথে কাজ করা যেতে পারে, তবে যে বৈচিত্রটি OFFSET () ফাংশনটি ব্যবহার করে যা একটি অস্থির (পড়া: ধীর) ফাংশন।

এই সূত্র গতি বনাম অন্যদের কি নিশ্চিত না।

প্রকারভেদ:

=MAX((MID(A1,ROW(OFFSET($A$1,,,LEN(A1))),1)=".")*ROW(OFFSET($A$1,,,LEN(A1)))) works the same way, but you don't have to worry about the length of the string

=SMALL(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd occurrence of the match

=LARGE(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd-to-last occurrence of the match

=MAX(IF(MID(I16,ROW($1:$99),2)=".t",ROW($1:$99))) matches a 2-character string **Make sure you change the last argument of the MID() function to the number of characters in the string you wish to match!


কিভাবে একটি কাস্টম ফাংশন তৈরি এবং আপনার সূত্র ব্যবহার করে? InStrRev একটি অন্তর্নির্মিত ফাংশন আছে, InStrRev , যা আপনি খুঁজছেন ঠিক কি।

একটি নতুন মডিউল এই রাখুন:

Function RSearch(str As String, find As String)
    RSearch = InStrRev(str, find)
End Function

এবং আপনার ফাংশন এই মত দেখতে হবে (মূল স্ট্রিং B1 মধ্যে হয় অনুমান):

=LEFT(B1,RSearch(B1,"\"))

পার্টিতে খুব দেরী, কিন্তু একটি সহজ সমাধান একটি কাস্টম ফাংশন তৈরি করতে VBA ব্যবহার করা হয়।

ওয়ার্কবুক, ওয়ার্কশীট, অথবা একটি ভিবিএ মডিউলে VBA এ ফাংশন যুক্ত করুন

Function LastSegment(S, C)
    LastSegment = Right(S, Len(S) - InStrRev(S, C))
End Function

তারপর কোষ সূত্র

=lastsegment(B1,"/")

কোষ B1 তে অনুসন্ধান করা একটি স্ট্রিং এবং স্ট্রিংটি সেল B1 থেকে শেষ "/" পিছনে থাকা পাঠ্য সহ সেলটিকে ভরাট করবে। কোন দৈর্ঘ্য সীমা, কোন অস্পষ্ট সূত্র। কেবলমাত্র নীচের দিকে আমি মনে করতে পারি যে একটি ম্যাক্রো-সক্ষম ওয়ার্কবুকের প্রয়োজন।

কোনও ব্যবহারকারী VBA ফাংশনটি একটি বিল্টিন এক্সেল ফাংশনের প্যারামিটার সহ একটি সেল সূত্রের একটি মান ফেরত দিতে এই ভাবে বলা যেতে পারে।

আপনি যদি ফাংশনটি ভারীভাবে ব্যবহার করতে যাচ্ছেন তবে চরিত্রটি স্ট্রিংয়ে না থাকলে কেসটি চেক করতে চান, তারপর স্ট্রিংটি খালি, ইত্যাদি।


ভিবিএতে এটি করার একটি সহজ উপায় হল:

YourText = "c:\excel\text.txt"
xString = Mid(YourText, 2 + Len(YourText) - InStr(StrReverse(YourText), "\" ))

@SSilk একটি মন্তব্যের একটি অংশ বিবেচনা করে আমার শেষ লক্ষ্যটি আসলেই সেই শেষ @SSilk সবকিছু অর্জন করা হয়েছে। খুব সহজ সূত্র সহ বিকল্প পদ্ধতির একটি স্ট্রিংগুলির কলাম (বলুন A ) এবং অনুলিপি অনুলিপি করা ( কলামবি বলুন) খুঁজুন এবং প্রতিস্থাপন প্রয়োগ করুন। উদাহরণস্বরূপ উদাহরণ গ্রহণ: Drive:\Folder\SubFolder\Filename.ext

কোনও চরিত্র নির্বাচিত হওয়ার (এখানে \ ) কোনও অবজেক্টের শেষ উদাহরণের পরে এটি (এখানে Filename.ext ) রয়েছে যা কখনও কখনও উদ্দেশ্য এবং কোনও সংক্ষিপ্ত সূত্র সহ শেষ অক্ষরটির অবস্থান খুঁজে পেতে সহায়তা করে:

=FIND(B1,A1)-1






excel-formula