দুই বা ততোধিক কলামের ভিত্তিতে একটি ক্ষেত্র অনুসন্ধান করুন


1

আমি professorহলুদ ক্ষেত্রগুলির ইনপুটের ভিত্তিতে ক্ষেত্রটি আউটপুট করতে চাই । ইনপুট সম্ভব হবে sub_codeএর column Dবা column G। আমি চেষ্টা করেছি VLOOKUP(...)এবং INDEX(...,MATCH(...)), কিন্তু সঞ্চালন বের করার চেষ্টা আমি আটকে যান: either column D or column G

উদাহরণস্বরূপ, আমি Johnটাইপ করার সময় Ag1বা Ps1E8 এ মুদ্রণ করতে চাই ।

এই মামলার জন্য আমি কীভাবে কোনও ফাংশন লিখতে পারি?

স্প্রেডশিট টেবিল


@ ফিক্সার 1234 মূলত, Johnআমি টাইপ করার সময় Ag1বা Ps1সেই বাক্সে হলুদ কার্সার বাক্সে মুদ্রিত হতে চাই । কোন সূত্রটি ব্যবহার করবেন তা আমি নিশ্চিত নই।
সোকুন্থেথ

কেবল স্পষ্ট করে বলতে গেলে, ইনপুট এবং ফলাফল একই বাক্সে থাকা দরকার কি? যদি তা হয় তবে আপনার ভিবিএ দরকার হবে, কারণ টাইপ করা ইনপুটটি ঘরের কোনও ফাংশন প্রতিস্থাপন করবে।
ফিক্সার 1234

@ ফিক্সার 1234 দুঃখিত, এটি আলাদা বাক্স। একই বক্স ব্যবহার করার দরকার নেই। আসুন আমি ধূসর বাক্সে আউটপুট বলি যখন আমি sub_codeহলুদ কার্সর বাক্সে প্রবেশ করি ।
সোকুনথেথ

একাধিক অধ্যাপকের একই সাব_কোড থাকার কোনও সম্ভাবনা?
ফিক্সার 1234

@ ফিক্সার 1234 একজন অধ্যাপকের এক বা একাধিক থাকতে পারে তবে sub_codeএকই রকম নয় sub_code। প্রতিটি sub_codeঅনন্য।
সোকুনথেথ

উত্তর:


1

বিকল্প 1:

সমস্যাটি সমাধান করার জন্য আপনার পছন্দসই কোডটি ব্যবহার করতে চান তা নির্ধারণ করতে আপনার একটি হেল্পার সেল দরকার ।

এখানে চিত্র বর্ণনা লিখুন

এই সূত্রটি ঘরে লিখুন F10

=IFERROR(INDEX($A$3:$A$6,IF($C$9=1,MATCH($D$10,$D$3:$D$6,0),IF($C$9=2,MATCH($D$10,$G$3:$G$6,0)))),"Wrong Code")

কিভাবে এটা কাজ করে:

  • সাহায্যকারী কক্ষে C9, আপনার পছন্দটি 1 বা 2 হওয়া উচিত।
  • Sub Codeসেলে লিখুন D10
  • সূত্র অনুসন্ধান করবে Sub Codeমধ্যে Column Dযদি C9 has 1, অন্যথায় পরীক্ষা Sub Codeমধ্যেColumn G.
  • আপনি যদি ঘরগুলিতে ভুল সংমিশ্রণটি সেট করেন C9এবং D10তারপরে সূত্রটি ভুল কোড ত্রুটি ফিরে আসবে ।

সম্পাদিত:

বিকল্প 2:

এই অ্যারে সূত্রটি সেলটিতেও ব্যবহার করা যেতে পারে F10

{=IFERROR(INDEX($A$3:$A$6,MATCH(1,($D$3:$D$6=$D$10)+($G$3:$G$6=$D$10),0)),"Wrong Code")}

বিঃদ্রঃ,

  • উপরের লিখিত সূত্রটি দিয়ে শেষ করুন Ctrl+Shift+Enter
  • সঙ্গে কাজ করার সময় অপশন 2 সাহায্যকারী সেল মান লিখতে কোন প্রয়োজন C9, শুধুমাত্র লিখতে Sub Codeসেল D10

প্রয়োজন অনুসারে সূত্রটিতে ঘর উল্লেখগুলি সামঞ্জস্য করুন।


আমি মনে করি ওপির সমস্যাটি হ'ল সাব_ কোডটি যে কোনও একটি কলামে থাকতে পারে এবং আপনি জানেন না। কাজটি হ'ল একাধিক কলামে এটি সন্ধান করা (আপনি ম্যাচটি না পাওয়া পর্যন্ত প্রতিটি কলাম নিজেই চেষ্টা করে দেখুন)।
ফিক্সার 1234

@ ফিক্সার 1234, এখন আমি পোস্টটি সম্পাদনা করেছি এবং একটি অ্যারে সূত্র অন্তর্ভুক্ত করেছি যা উভয় কলামে সাব কোডটি স্বয়ংক্রিয়ভাবে অনুসন্ধান করবে! ☺
রাজেশ এস

বিকল্প 2: আরও ভাল! :-) উদাহরণগুলির মধ্যে সারি বা কলামের উল্লেখ নেই, তাই অনুসরণ করা একটু কঠিন। সম্ভবত এটি উল্লেখ করা উচিত যে এটি কেস সংবেদনশীল, এবং এটি কীভাবে কাজ করে তা ব্যাখ্যা করে কয়েকটি বাক্য যুক্ত করুন। +1 (এবং কেবল বিকল্পটি মুছুন তাই এটি সমাধানের ডান দিকে যায়))
ফিক্সার 1234

@ ফিক্সার १२৪ ,, ,, যেহেতু ফর্মুলার কেসটিকে আপত্তি নেই কারণ উভয়কে উচ্চ এবং নিম্ন উভয়ই বিবেচনা করে, 1 টিও ট্যুরের জন্য যা কর্নেল ডি বা জি তে কখনও হয়।
রাজেশ এস

এলও ক্যালকে কেস মেলে না তবে এটি মেলে না। অনুমান করুন আমরা এক্সেল এবং ক্যালকের পার্থক্য রয়েছে এমন অন্য একটি উদাহরণ পেয়েছি। আমার সমাধানে, ম্যাচ উভয় ক্ষেত্রেই কাজ করেছে। আপনার একটি সমতা ব্যবহার করা হয়, এবং এর জন্য ক্যালকের প্রয়োজনীয় ম্যাচিং কেস।
ফিক্সার 1234

0

=IFERROR(INDIRECT("A"&IF(SUMPRODUCT(--($D$2:$D$5=$E$8),ROW($A$2:$A$5))=0, SUMPRODUCT(--($G$2:$G$5=$E$8),ROW($A$2:$A$5)), SUMPRODUCT(--($D$2:$D$5=$E$8),ROW($A$2:$A$5)))), IF(E8="","","Invalid code"))

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

যাইহোক, আমার সূত্র ফিরে।

কিভাবে এটা কাজ করে

SUMPRODUCT(--($D$2:$D$5=$E$8),ROW($A$2:$A$5): কলাম ডিটিতে কোনও মিল রয়েছে কিনা তা পরীক্ষা করে। যদি তা হয় তবে এটি ম্যাচের সারি সংখ্যাটি দেয়। যদি কোনও মিল খুঁজে পাওয়া যায় না, তবে এটি 0 ফেরত দেয়।

SUMPRODUCT(--($G$2:$G$5=$E$8),ROW($A$2:$A$5): কলাম জিতে কোনও মিল রয়েছে কিনা তা পরীক্ষা করে। যদি তা হয় তবে এটি ম্যাচের সারি সংখ্যাটি দেয়। যদি কোনও মিল খুঁজে পাওয়া যায় না, তবে এটি 0 ফেরত দেয়।

IF(...=0, ..., ...): ডি কলামের মাধ্যমে অনুসন্ধান 0টি ফিরে এসেছে কিনা পরীক্ষা করে, কোনও মিল নেই। এই ক্ষেত্রে, এটি কলাম জি-এর ফলাফল প্রদান করে Otherwise অন্যথায়, এটি কেবল কলাম ডি-এর ফলাফল প্রদান করে

INDIRECT("A"&...): SUMPRODUCTS এর সারি নম্বর (বা 0, কোনও মিল না থাকলে) "এ" - প্রথম কলামের বর্ণের সাথে একত্রিত হয়। INDIRECT ফাংশন তারপর যে রেফারেন্স সহ সেল খুঁজে বের করে। উদাহরণস্বরূপ এটি 'A3' নামক ঘরটি আবিষ্কার করতে পারে, বা কোনও মিল না পাওয়া গেলে 'A0' - একটি অস্তিত্বহীন ঘর।

IFERR(..., ...): ত্রুটিগুলি পরীক্ষা করে এবং পরিচালনা করে। যদি কলাম ডি-তে কোনও মিল নেই, তবে এটি কলাম জি-এর অনুসন্ধানে ফিরে আসবে However তবে, কলাম জি-তে যদি কিছু না থাকে তবে "A0" সবেমাত্র ফাংশনে চলে যাবে INDIRECT , যা আসল ঘর নয়। অতএব, এটি একটি ত্রুটির ফলাফল করবে এবং এটি ত্রুটিটি দেখানোর পরিবর্তে ত্রুটি হ্যান্ডলারটি চালাবে।

IF(E8="","","Invalid code")): ত্রুটি পরিচালনা করে যদি ইনপুট সেলটি ফাঁকা থাকে, তবে এটি কেবল ফাঁকা থেকে যায়, কারণ এখানে কোনও গোলমাল করার দরকার নেই। তবে, যদি এটি ফাঁকা না হয় তবে তবুও একটি ত্রুটি রয়েছে তবে এটি 'অবৈধ কোড' ফিরিয়ে দেয় , কারণ এর অর্থ কেবল যে কোনও কিছু প্রবেশ করা হয়েছিল এবং এটি যে কোনও কিছু অবৈধ।

উদাহরণ

কাজের দিক:

'He1' E8 তে লেখা আছে, E7 'ফিলিপ' ফিরিয়ে দেয়।

'খ 1' E8 তে লেখা আছে, E7 'দেভ' ফিরিয়ে দেয়।

খালি ইনপুট:

E7 এবং E8 উভয়ই খালি

অবৈধ ইনপুট:

'Rn1' E8 এ লেখা আছে, E7 'অবৈধ কোড' দেয়


এটি কাজ করে এবং অন্য পদ্ধতির প্রদর্শন করে তবে আমি মনে করি এটি আরও মার্জিত বা স্থিতিশীল হওয়ার চেয়ে আরও বিশৃঙ্খলাবদ্ধ। যদি ওপিকে অতিরিক্ত কলামগুলির অতিরিক্ত সেট যুক্ত করার প্রয়োজন হয় তবে এটি পরিষ্কারভাবে স্কেলযোগ্য নয় (শিরোনামটি "দুটি বা আরও বেশি কলাম" বলে, তাই এটি প্রত্যাশিত)। সূত্রটি দ্বিগুণ দীর্ঘ এবং এর কী কী সুবিধা রয়েছে তা আমি মিস করছি। তবে এটি একটি বৈধ পন্থা এবং উত্তরটি খুব ভাল লেখা আছে; এটি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য আপনি একটি ভাল কাজ করেছেন।
ফিক্সার 1234

0

VLOOKUP এর বামতম কলাম অনুসন্ধান করা দরকার, যাতে এটি কাজ করে না। আইএনডিএক্স + ম্যাচ কাজ করবে তবে ম্যাচ একাধিক বা দ্বিমাত্রিক ব্যাপ্তি অনুসন্ধান করতে পারে না। বিভিন্ন পরিসরের জন্য একাধিক ম্যাচ একত্রিত করা একটি কার্যপ্রণালী।

এখানে চিত্র বর্ণনা লিখুন

E7 এর ফলাফলের ফলাফলটি এই সূত্রটি ব্যবহার করে:

=IFERROR(INDEX(A2:A5,IFERROR(MATCH(E8,D2:D5,0),0)+IFERROR(MATCH(E8,G2:G5,0),0)),"Invalid Sub_code")

প্রতিটি কলামের নিজস্ব ম্যাচ রয়েছে। ম্যাচটি কেবল একটি কলামে ঘটবে, সুতরাং কলামটির সাথে ম্যাচ না থাকলে IFERROR শূন্য ফিরে আসে। তারপরে ম্যাচের মানগুলি যুক্ত করা ম্যাচের সাথে কলামের জন্য একটি অবস্থান সূচক এবং কোনও অতিরিক্ত অনুসন্ধান করা কলামের জন্য শূন্যকে একত্রিত করবে। প্রশ্নের শিরোনামটি "দুই বা ততোধিক কলাম" বলে। প্রতিটি অতিরিক্ত কলামের জন্য আরও একটি ম্যাচ এক্সপ্রেশন যুক্ত করে এটি প্রসারণযোগ্য।

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

অবশ্যই, আপনার একাধিক এন্ট্রি সেল এবং সংশ্লিষ্ট ফলাফল কোষ থাকতে পারে।

বিকল্প

@ রাজেশ এস লক্ষ্য করেছেন যে এটি পুনর্গঠনও করা যেতে পারে:

=IFERROR(INDEX(A2:A5,MATCH(E8,D2:D5,0)),IFERROR(INDEX(A2:A5,MATCH(E8,G2:G5,0)),"Invalid Sub_code"))

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

যে কোনও সংস্করণটি সবচেয়ে স্বজ্ঞাত বলে মনে হচ্ছে ব্যবহার করুন।

কাঠামো এবং যুক্তির তুলনা করার জন্য, আমি সূত্রগুলি ভেঙে দেব।

বিকল্প 1:

=IFERROR(
       INDEX(A2:A5,
                 IFERROR( MATCH(E8,D2:D5,0) ,0) + IFERROR( MATCH(E8,G2:G5,0) ,0) )
        ,"Invalid Sub_code")

বিকল্প 2:

=IFERROR( 
         INDEX(A2:A5, MATCH(E8,D2:D5,0) )
         ,IFERROR(
                  INDEX(A2:A5, MATCH(E8,G2:G5,0) )
                  ,"Invalid Sub_code")  )
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.