excel - যবহ - এম এস এক্সেল pdf




আমি কিভাবে VBA ব্যবহার না করে এক্সেলের বিপরীত স্ট্রিং অনুসন্ধান সম্পাদন করতে পারি? (10)

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

এক্সেল ফাংশন (কোন ভিবিএ) তৈরি করা, প্রতিটি স্ট্রিং শেষ শব্দ বিচ্ছিন্ন করার একটি উপায় আছে?

উদাহরণ:

  Are you classified as human? -> human?
Negative, I am a meat popsicle -> popsicle
                  Aziz! Light! -> Light!

আমারও এমন একটি কাজ ছিল এবং যখন আমি সম্পন্ন হলাম, উপরের পদ্ধতিটি ব্যবহার করে, আমার কাছে একটি নতুন পদ্ধতি ঘটে: কেন আপনি এটি করবেন না:

  1. স্ট্রিং বিপরীত ("স্ট্রিং এক" হয়ে যায় "Eno gnirts")।
  2. ভাল পুরানো খুঁজুনটি ব্যবহার করুন (যা বাম থেকে ডানে হার্ডকোড করা হয়)।
  3. আবার পাঠযোগ্য স্ট্রিং মধ্যে এটি বিপরীত।

এই শব্দ কিভাবে?


আমি গুগল এ এটি পেয়েছি, এক্সেল 2003 এ পরীক্ষা করা হয়েছে এবং এটি আমার জন্য কাজ করে:

=IF(COUNTIF(A1,"* *"),RIGHT(A1,LEN(A1)-LOOKUP(LEN(A1),FIND(" ",A1,ROW(INDEX($A:$A,1,1):INDEX($A:$A,LEN(A1),1))))),A1)

[সম্পাদনা] আমার কাছে মন্তব্য করার জন্য যথেষ্ট সংখ্যক প্রতিলিপি নেই, তাই এটি সর্বোত্তম জায়গা বলে মনে হচ্ছে ... ব্র্যাডিসির উত্তরটি পিছিয়ে থাকা স্থান বা খালি কোষগুলির সাথেও কাজ করে না ...
[দ্বিতীয় সম্পাদনা] আসলে, এটি একক শব্দের জন্য কাজ করে না ...


এই অর্জন করার অন্য উপায় নিচে হিসাবে

=IF(ISERROR(TRIM(MID(TRIM(D14),SEARCH("|",SUBSTITUTE(TRIM(D14)," ","|",LEN(TRIM(D14))-LEN(SUBSTITUTE(TRIM(D14)," ","")))),LEN(TRIM(D14))))),TRIM(D14),TRIM(MID(TRIM(D14),SEARCH("|",SUBSTITUTE(TRIM(D14)," ","|",LEN(TRIM(D14))-LEN(SUBSTITUTE(TRIM(D14)," ","")))),LEN(TRIM(D14)))))


এই এক পরীক্ষা এবং কাজ করে (ব্র্যাড এর মূল পোস্টের উপর ভিত্তি করে):

=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1," ","|",
     LEN(A1)-LEN(SUBSTITUTE(A1," ","")))))

যদি আপনার মূল স্ট্রিংগুলিতে পাইপ থাকতে পারে "|" চরিত্র, তারপরে উপরের কোনও চরিত্রের সাথে আপনার উত্সে উপস্থিত না থাকা উভয়কে প্রতিস্থাপন করুন। (আমি ব্র্যাড এর মূল ভাঙ্গা কারণ অনুবাদ একটি অপ্রচলিত চরিত্র মুছে ফেলা হয়েছে সন্দেহ)।

বোনাস: এটি কিভাবে কাজ করে (ডান থেকে বাম দিক থেকে):

LEN(A1)-LEN(SUBSTITUTE(A1," ","")) - মূল স্ট্রিংয়ের শূণ্যস্থান গণনা
SUBSTITUTE(A1," ","|", ... ) - একটি সাথে শুধুমাত্র চূড়ান্ত স্থান প্রতিস্থাপন করে |
FIND("|", ... ) - প্রতিস্থাপিত পরম অবস্থান খুঁজে পায় (যে চূড়ান্ত স্থান ছিল)
Right(A1,LEN(A1) - ... )) - তার পরে সমস্ত অক্ষর ফেরত দেয় |

সম্পাদনা করুন: উৎসের পাঠ্যটিতে কোনো স্থান নেই এমন ক্ষেত্রে অ্যাকাউন্টের জন্য, সূত্রের শুরুতে নিম্নলিখিতটি যোগ করুন:

=IF(ISERROR(FIND(" ",A1)),A1, ... )

এখন পুরো সূত্র তৈরি করছে:

=IF(ISERROR(FIND(" ",A1)),A1, RIGHT(A1,LEN(A1) - FIND("|",
    SUBSTITUTE(A1," ","|",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))))

অথবা আপনি অন্য সংস্করণের =IF(COUNTIF(A1,"* *") সিনট্যাক্স ব্যবহার করতে পারেন।

যখন মূল স্ট্রিংটি শেষ অবস্থানে একটি স্থান ধারণ করতে পারে তখন সমস্ত স্পেস গণনা করার সময় একটি টিম ফাংশন যুক্ত করুন: ফাংশনটিকে নিম্নলিখিতটি তৈরি করুন:

=IF(ISERROR(FIND(" ",B2)),B2, RIGHT(B2,LEN(B2) - FIND("|",
    SUBSTITUTE(B2," ","|",LEN(TRIM(B2))-LEN(SUBSTITUTE(B2," ",""))))))

একটি কলামে কপি করুন, সেই কলামটি নির্বাচন করুন এবং HOME> সম্পাদনা> খুঁজুন এবং নির্বাচন করুন, প্রতিস্থাপন করুন:

সব প্রতিস্থাপন করুন

গ্রহাণু পরে একটি স্থান আছে।


এটি খুব পরিষ্কার এবং কম্প্যাক্ট, এবং ভাল কাজ করে।

{=RIGHT(A1,LEN(A1)-MAX(IF(MID(A1,ROW(1:999),1)=" ",ROW(1:999),0)))}

এটি কোন স্পেস বা এক শব্দের জন্য ফাঁদে ত্রুটি করে না, তবে এটি যোগ করা সহজ।

সম্পাদনা:
এটি পিছনে স্থান, একক শব্দ, এবং খালি সেল দৃশ্যকল্প পরিচালনা করে। আমি এটা বিরতি একটি উপায় খুঁজে পাওয়া যায় নি।

{=RIGHT(TRIM(A1),LEN(TRIM(A1))-MAX(IF(MID(TRIM(A1),ROW($1:$999),1)=" ",ROW($1:$999),0)))}

জেরি এর উত্তর আরো শক্তিশালী সংস্করণ:

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), " ", REPT(" ", LEN(TRIM(A1)))), LEN(TRIM(A1))))

যে স্ট্রিং দৈর্ঘ্য, নেতৃস্থানীয় বা পিছনের স্পেস, বা অন্য যাই হোক না কেন এবং এটা এখনও খুব ছোট এবং সহজ নির্বিশেষে কাজ করে।


স্ট্রিং বিপরীত হতে পারে কল্পনা করুন। তারপর এটা সত্যিই সহজ। পরিবর্তে স্ট্রিং উপর কাজ করে:

"My little cat" (1)

আপনি সঙ্গে কাজ

"tac elttil yM" (2)

=LEFT(A1;FIND(" ";A1)-1) A2 তে আপনি (1) এবং "tac" (2) দিয়ে "My" পাবেন যা "cat" বিপরীত হয়, (1) ।

একটি স্ট্রিং বিপরীত দিকে প্রায় কয়েক VBAs আছে। আমি পাবলিক VBA ফাংশন ReverseString

বর্ণনা হিসাবে উপরে ইনস্টল করুন। তারপর A1 এ আপনার স্ট্রিং সহ, উদাহরণস্বরূপ, "My little cat" এবং এই ফাংশনটি A2:

=ReverseString(LEFT(ReverseString(A1);IF(ISERROR(FIND(" ";A1));
  LEN(A1);(FIND(" ";ReverseString(A1))-1))))

আপনি A2 এ "cat" দেখতে পাবেন।

উপরে পদ্ধতি অনুমান করে যে শব্দের বিভাজন দ্বারা পৃথক করা হয়। IF ধারাটি কোষের জন্য একক শব্দের = কোষে কোন স্থান নেই। নোট: TRIM এবং CLEAN মূল স্ট্রিং ভাল হিসাবে দরকারী। মূলত এটি A1 থেকে সম্পূর্ণ স্ট্রিংকে বিপরীত করে এবং শেষ (বিপরীত) শব্দ (অর্থাৎ, "tac " ) এর পাশে বিপরীত স্ট্রিংটিতে প্রথম ফাঁকাটি খুঁজে পায়। LEFT এই শব্দটি বাছাই করে এবং অন্য স্ট্রিং বিপরীত শব্দটি ( " cat" ) মূল ক্রম পুনর্গঠন করে। FIND বিবৃতির শেষে -1 খালি মুছে ফেলা হয়।

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

অতএব সমগ্র স্ট্রিং সহজভাবে বিপরীত হয়। LEFT এবং FIND স্বাভাবিক হিসাবে কাজ কিন্তু নিষ্কাশিত স্ট্রিং বিপরীত হয়। কিন্তু একবার আপনি একটি স্ট্রিং বিপরীত কিভাবে জানেন কোন বড় চুক্তি। সূত্র মধ্যে প্রথম ReverseString বিবৃতি এই কাজ করে।


=RIGHT(A1,LEN(A1)-FIND("`*`",SUBSTITUTE(A1," ","`*`",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))) 

=RIGHT(TRIM(A1),LEN(TRIM(A1))-FIND(CHAR(7),SUBSTITUTE(" "&TRIM(A1)," ",CHAR(7),
LEN(TRIM(A1))-LEN(SUBSTITUTE(" "&TRIM(A1)," ",""))+1))+1)

এটি খুব শক্তসমর্থ - এটি কোনও স্পেস, শীর্ষক / পিছিয়ে যাওয়া স্পেস, একাধিক স্পেস, একাধিক লিডিং / পিছিয়ে যাওয়া স্পেস সহ বাক্যগুলির জন্য কাজ করে ... এবং আমি উল্লম্ব বারের পরিবর্তে ডেলিমিটারের জন্য গৃহস্থালি (7) ব্যবহার করেছি। শুধু যে একটি পছন্দসই টেক্সট আইটেম হয়।





excel-formula