* শেষ * ম্যাচটি ফিরতে কীভাবে ভিএলুকপআপ পাবেন?


12

আমি VLOOKUP এর সাথে কাজ করতে অভ্যস্ত কিন্তু এবার আমার চ্যালেঞ্জ রয়েছে। আমি প্রথম মিলের মানটি চাই না, তবে শেষটি চাই। কিভাবে? (আমি LibreOffice ক্যালকের সাথে কাজ করছি তবে একটি এমএস এক্সেলের সমাধানও সমানভাবে কার্যকর হওয়া উচিত))

কারণটি হ'ল আমার কাছে কয়েক হাজার সারি সহ দুটি পাঠ্য কলাম রয়েছে, আসুন আমরা বলি যে একটি হ'ল লেনদেন প্রদেয়দের তালিকা (আমাজন, ইবে, নিয়োগকর্তা, মুদি দোকান ইত্যাদি) এবং অন্যটি ব্যয় বিভাগের (মজুরি, কর,, পরিবার, ভাড়া ইত্যাদি)। কিছু লেনদেনের প্রতিবার একই ব্যয়ের বিভাগ থাকে না এবং আমি সর্বাধিক ব্যবহৃত ব্যবহৃতটিকে ধরতে চাই। নোট করুন যে তালিকাটি কলামের মাধ্যমে বাছাই করা হয়েছে (আসলে তারিখ অনুসারে), এবং আমি বাছাই ক্রম পরিবর্তন করতে চাই না।

আমার যা আছে (ত্রুটি পরিচালনাটি বাদ দিয়ে) হ'ল স্বাভাবিক "প্রথম ম্যাচ" সূত্র:

=VLOOKUP( 
[payee field] , [payee+category range] , [index of category column] , 
0 )

আমি এর মতো সমাধান দেখেছি , তবে আমি #DIV/0!ত্রুটিগুলি পেয়েছি :

=LOOKUP(2 , 1/( [payee range] = [search value] ) , [category range] )

সমাধানটি কোনও সূত্র হতে পারে, অগত্যা ভ্লুকআপ নয়। আমি আশেপাশে প্রাপক / বিভাগের কলামগুলি অদলবদল করতে পারি। অনুগ্রহ করে কলাম সাজানোর ক্ষেত্রে কোনও পরিবর্তন হয়নি please


বোনাস এমন একটি সমাধানের জন্য পয়েন্ট যা শেষের চেয়ে সর্বাধিক ঘন ঘন মান দেয়!

উত্তর:


3

আপনি সর্বশেষ ম্যাচের রেকর্ড থেকে ডেটা পেতে একটি অ্যারে সূত্র ব্যবহার করতে পারেন।

=INDEX(IF($A$1:$A$20="c",$B$1:$B$20),MAX(IF($A$1:$A$20="c",ROW($A$1:$A$20))))

সূত্র ব্যবহার করে লিখুন Ctrl+ + Shift+ + Enter

এটি a এর INDEX/ MATCHনির্মাণের মতো কাজ করে VLOOKUPতবে এর MAXপরিবর্তে শর্তযুক্ত ব্যবহৃত হয় MATCH

নোট করুন যে এটি ধরে নিয়েছে যে আপনার টেবিলটি সারি 1 থেকে শুরু হবে ROW(...)your


আমি সেই আক্ষরিক "সি" সম্পর্কে বিভ্রান্ত হয়েছি - আমি মনে করব যে মূল্যায়নটি সর্বদা মিথ্যা, তাই এটি আসলে কী করে?
টরবেন গুন্ডটোফেট-ব্রুন

আমি আপনার পরামর্শটি পরীক্ষা করেছি (এবং এটি অ্যারে সূত্র হিসাবে গৃহীত হয়েছিল কিনা তা পরীক্ষা করে দেখেছি)। আমি ধরে নিলাম কর্নেল এ প্রাপক এবং বি বিভাগের, তাই না? দুর্ভাগ্যক্রমে, LibreOffice "ERR: 502" প্রত্যাবর্তন করে যা "অবৈধ যুক্তি: ফাংশন আর্গুমেন্টটি বৈধ নয় For উদাহরণস্বরূপ, এসকিউআরটি () ফাংশনের জন্য একটি নেতিবাচক সংখ্যা, এটির জন্য দয়া করে আইএমএসকিউআরটি ()" ব্যবহার করুন। আমি যাচাই করেছিলাম যে LibreOffice এ সেই নামটি সহ সমস্ত ফাংশন উপস্থিত রয়েছে তবে আমি অবাক হয়েছি যে LibreOffice এর IFঅ্যারেগুলি পরিচালনা করতে পারে না কিনা ।
টরবেন গুন্ডটোফেট-ব্রুন

দুঃখিত, আক্ষরিক "গ" কেবলমাত্র সেই অর্থ প্রদানকারীর নাম ছিল যা আপনি মেলে চেয়েছিলেন। এটি আমি যে নমুনা ডেটা নিয়ে খেলছিলাম তার থেকে প্রাপ্ত একটি প্রতীক। আমি ধরে নিলাম যে আপনার শীটে একটি সেল রেফারেন্স দিয়ে প্রতিস্থাপন করা হবে।
এক্সেল 20

@ TorbenGundtofte-Bruun আপনি যে সূত্রটি ব্যবহার করছেন তা ভাগ করার জন্য যত্ন? আমি যদি এটি দেখতে পাই তবে আমি এটি সমস্যার সমাধান করতে সক্ষম হতে পারি। এছাড়াও, সূত্রের Evaluate Formulaকোন অংশটি ত্রুটি তৈরি করছে তা দেখতে আপনি সর্বদা সূত্রের মধ্য দিয়ে যাওয়ার চেষ্টা করতে পারেন । এই বৈশিষ্ট্যটি এক্সেলের মধ্যে বিদ্যমান এবং আমি যদি অবাক হই তবে অবাক হব যদি লিব্রিঅফিস ক্যালকের একই বৈশিষ্ট্য না থাকে।
এক্সসেল

আমার আসল সূত্রটি সোজা, এই কারণেই এটি পর্যাপ্ত নয় :-) =VLOOKUP(J1061;$J$2:$K$9999;2;0)যেখানে কর্নেল জে পেইস এবং কর্নেল কে বিভাগগুলি অন্তর্ভুক্ত করে। এটি প্রত্যাশা মতো প্রথম ম্যাচটি ফেরত দেয়।
টোরবেন গুন্ডটোফট-ব্রুন

2

(সাজানো ডেটার জন্য আলাদা প্রশ্ন হিসাবে এখানে উত্তর দেওয়া হচ্ছে না))

যদি ডাটা ছিল সাজানো, আপনি ব্যবহার করতে পারে VLOOKUPসঙ্গে range_lookupযুক্তি TRUE(অথবা বাদ দেওয়া, ডিফল্ট এটা যেহেতু), যা আনুষ্ঠানিকভাবে "আনুমানিক ম্যাচের জন্য অনুসন্ধান" যেমন এক্সেল জন্য বর্ণনা করা হয়েছে।

অন্য কথায়, বাছাই করা ডেটার জন্য:

  • প্রথম যুক্তিটি FALSEফেরত দেওয়ার জন্য শেষ যুক্তিটি সেট করে এবং
  • সর্বশেষ যুক্তিটি শেষ মানটি প্রদান করে TRUEreturns

এটি মূলত অননুমোদিত এবং অস্পষ্ট, তবে ভিসি ক্যালকের (১৯৯ 1979) তারিখ এবং আজ কমপক্ষে মাইক্রোসফ্ট এক্সেল, লিব্রেফিস ক্যাল্ক এবং গুগল শিটগুলিতে রয়েছে। চূড়ান্ত প্যারামিটার না থাকাকালীন LOOKUPএটি ভিসিক্যালক (এবং সেখানে VLOOKUPএবং HLOOKUP) এর প্রাথমিক প্রয়োগের কারণে ঘটে । বাইনারি অনুসন্ধানের দ্বারা মানটি পাওয়া যায় , সমেত বাম আবদ্ধ এবং একচেটিয়া ডান বাউন্ড (একটি সাধারণ এবং মার্জিত বাস্তবায়ন) ব্যবহার করে, যা এই আচরণের ফলাফল।

প্রযুক্তিগতভাবে এর অর্থ হল যে একজন প্রার্থীর ব্যবধানের সাথে অনুসন্ধান শুরু করে [0, n), nঅ্যারের দৈর্ঘ্যটি কোথায় , এবং লুপের আক্রমণকারী অবস্থাটি হ'ল A[imin] <= key && key < A[imax](বামদিকের চৌম্বকটি <= লক্ষ্য, ডান আবদ্ধ, যা শেষের পরে শুরু হয়) > লক্ষ্য; বৈধকরণের জন্য হয় হয় শেষের বিন্দুতে মানগুলি আগে পরীক্ষা করে, বা পরে ফলাফলটি পরীক্ষা করে দেখুন) এবং ধারাবাহিকভাবে দ্বিখণ্ডিত করা এবং যে কোনও পক্ষই এই আক্রমণকারীটিকে সংরক্ষণ করে: বামপন্থার দ্বারা এক পক্ষ থাকবে, যতক্ষণ না আপনি 1 পদের সাথে ব্যবধানে পৌঁছান [k, k+1), এবং অ্যালগরিদম তারপরে ফিরে আসে k। এটি কোনও সঠিক মিল (!) হওয়া উচিত নয়: এটি নীচের থেকে কেবল নিকটতম ম্যাচ। সদৃশ ম্যাচের ক্ষেত্রে, শেষের ম্যাচটি ফিরে আসার ফলে এটির পরবর্তী মানটি আরও বেশি হওয়া দরকারকী (বা অ্যারের শেষ) এর চেয়ে বেশি। সদৃশগুলির ক্ষেত্রে আপনার কিছু আচরণ প্রয়োজন এবং এটি যুক্তিসঙ্গত এবং কার্যকর করা সহজ।

এই আচরণটি এই পুরানো মাইক্রোসফ্ট নলেজ বেস প্রবন্ধে (জোর দেওয়া) স্পষ্ট করে বলা হয়েছে: "এক্সএল: একটি অ্যারেতে প্রথম বা শেষ ম্যাচটি কীভাবে ফিরে যাবে" ( Q214069 ):

বাছাই করা ডেটার অ্যারের মধ্যে একটি মান অনুসন্ধান করতে এবং অন্য অ্যারের মধ্যে সেই অবস্থানে থাকা সম্পর্কিত মানটি ফিরিয়ে দিতে আপনি LOOKUP () ফাংশনটি ব্যবহার করতে পারেন। যদি অনুসন্ধান মানটি অ্যারের মধ্যে পুনরাবৃত্তি হয় তবে এটি শেষ ম্যাচের মুখোমুখি হয় । এই আচরণটি VLOOKUP (), HLOOKUP (), এবং LOOKUP () ফাংশনের জন্য সত্য।

কিছু স্প্রেডশিটগুলির জন্য অফিসিয়াল ডকুমেন্টেশন অনুসরণ করে; উভয়ই "শেষ ম্যাচ" আচরণের বিবরণ দেওয়া হয়নি, তবে এটি গুগল শিটের ডকুমেন্টেশনে অন্তর্ভুক্ত রয়েছে:

  • মাইক্রোসফট এক্সেল

    'সত্য' অনুমান সারণীর প্রথম কলামটি পারেন সংখ্যাসূচকভাবে বা বর্ণানুক্রমে অনুসারে বাছাই করা হয়, এবং তারপর অনুসন্ধান করবে নিকটতম মান

  • গুগল পত্রক :

    যদি বাদ দেওয়া is_sortedহয় TRUEবা বাদ দেওয়া হয় তবে নিকটস্থ মিলটি ( অনুসন্ধান কী বা এর চেয়ে কম বা সমান ) ফিরে আসবে


সেই নিকটতম ম্যাচের জিনিসটি আমাকে পাগল করছে!
ডেভেটপ্লে

1

যদি অনুসন্ধান অ্যারের মানগুলি ক্রমানুসারে হয় (যেমন আপনি সর্বদা সবচেয়ে বড় মান যেমন সর্বাধিক তারিখের সন্ধান করছেন), আপনার এমনকি INDIRECT ফাংশনটি ব্যবহার করার প্রয়োজন নেই। এই সাধারণ কোডটি ব্যবহার করে দেখুন:

=MAX(IF($A$1:$A$20="c",$B$1:$B$20,)

আবার, CTRL + SHIFT + ENTER ব্যবহার করে সূত্রটি প্রবেশ করান


0

আমার সর্বাধিক ঘন মূল্য ছিল। এটি লিব্রিঅফিসে কাজ করবে কিনা তা নিশ্চিত নয় তবে এটি এক্সেলে কাজ করে বলে মনে হচ্ছে

= INDEX নম্বর ($ বি $ 2: $ বি $ 9 ম্যাচ (MAX টি (- ($ একটি $ 2: $ একটি $ 9 = D2 গ্রাহকের) * COUNTIFS ($ বি $ 2: $ বি $ 9, $ বি $ 2: $ বি $ 9, $ একটি $ 2 : $ একটি $ 9, D2 গ্রাহকের)), - ($ একটি $ 2: $ একটি $ 9 = D2 গ্রাহকের) * COUNTIFS ($ বি $ 2: $ বি $ 9, $ বি $ 2: $ বি $ 9, $ একটি: $ 2, $ A $ 9, D2 গ্রাহকের ), 0))

কলাম ক এ প্রাপক হবে, কলাম বি বিভাগে থাকবে, ডি 2 হ'ল সেই প্রদেয় যেটি আপনি ফিল্টার করতে চান। আমি নিশ্চিত না কেন এটি উপরের ফাংশনে অতিরিক্ত লাইনব্রেকগুলি রাখছে।

শেষ কক্ষটি সন্ধান করার জন্য আমার ফাংশনটি নীচে থাকবে:

= স্বতন্ত্র ("বি" এবং ম্যাক্স (- ($ এ $ 2: $ এ $ 9 = ডি 2) * রো ($ এ $ 2: $ এ $ 9)))

অপ্রত্যক্ষ আমাকে কলামটি আমি ফিরে আসতে এবং সারিটি সরাসরি দেখতে চাই তা নির্দিষ্ট করতে দেয় (যাতে আমার শিরোনাম সারিগুলির সংখ্যা বিয়োগ করার প্রয়োজন হয় না।

এই দুটি ফাংশনই Ctrl + shift + enter ব্যবহার করে প্রবেশ করা প্রয়োজন


0
=LOOKUP([payee field] , [payee range] , [category range])

এটি আপনাকে সর্বশেষ মানটি দেবে

আমি কি 3 বছর দেরী হওয়ার কারণে বোনাস পয়েন্ট পেতে পারি?


-1

আপনি #DIV/0!ত্রুটিগুলি পেয়েছেন কারণ আপনার সূত্রটি লেখার পরিবর্তে উচিত:

=LOOKUP(2;IF(([payee range] = [search value]);1;"");[category range])

এটি কাজ করবে এবং শেষ ম্যাচটি খুঁজে পাবে।

([payee range] = [search value]) : বুলিয়ান ম্যাট্রিক্স সত্য / মিথ্যা

IF(([payee range] = [search value]);1;"") : সিউডো-বুলিয়ান ম্যাট্রিক্স 1 / ""

=LOOKUP(2; {pseudo-boolean matrix 1/""} );[category range]): সর্বদা সর্বশেষ 1অবস্থান ফিরে


LOOKUPকেবল বাছাই করা তালিকায় কাজ করে, আপনার কোমরিসনের আউটপুটটি 1অ-বাছাই করা উপায়ে এস এবং স্পেসের তালিকার ফলাফল করবে, সুতরাং এটি সঠিক ফলাফল দেয় না।
মাতা জুহাজ্ব
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.