مثالوں کے ساتھ ایکسل میں متعدد شیٹس میں VLOOKUP

  • اس کا اشتراک
Michael Brown

ٹیوٹوریل دکھاتا ہے کہ کس طرح VLOOKUP فنکشن کو کسی دوسری ورک شیٹ یا ورک بک سے ڈیٹا کاپی کرنے کے لیے استعمال کیا جائے، متعدد شیٹس میں Vlookup، اور مختلف شیٹس سے مختلف سیلز میں ویلیو واپس کرنے کے لیے متحرک طور پر تلاش کریں۔

ایکسل میں کچھ معلومات تلاش کرتے وقت، یہ ایک نادر معاملہ ہے جب تمام ڈیٹا ایک ہی شیٹ پر ہو۔ زیادہ کثرت سے، آپ کو متعدد شیٹس یا یہاں تک کہ مختلف ورک بک میں تلاش کرنا پڑے گا۔ اچھی خبر یہ ہے کہ Microsoft Excel ایسا کرنے کے لیے ایک سے زیادہ طریقے فراہم کرتا ہے، اور بری خبر یہ ہے کہ تمام طریقے معیاری VLOOKUP فارمولے سے کچھ زیادہ پیچیدہ ہیں۔ لیکن ذرا صبر کے ساتھ، ہم ان کا پتہ لگائیں گے :)

    دو شیٹس کے درمیان VLOOKUP کیسے کریں

    شروع کرنے والوں کے لیے، آئیے ایک آسان ترین کیس کی تحقیقات کریں - VLOOKUP کا استعمال کرتے ہوئے کسی اور ورک شیٹ سے ڈیٹا کاپی کریں۔ یہ ایک باقاعدہ VLOOKUP فارمولے سے بہت ملتا جلتا ہے جو ایک ہی ورک شیٹ پر تلاش کرتا ہے۔ فرق یہ ہے کہ آپ اپنے فارمولے کو بتانے کے لیے table_array دلیل میں شیٹ کا نام شامل کرتے ہیں۔

    دوسری شیٹ سے VLOOKUP کا عمومی فارمولا درج ذیل ہے: 3 2> شیٹ۔ اس کے لیے، ہم درج ذیل دلائل کی وضاحت کرتے ہیں:

    • Lookup_values Summary شیٹ پر کالم A میں ہیں، اور ہمVLOOKUP:

      VLOOKUP($A2, 'West'!$A$2:$C$6 , 2, FALSE)

      آخر میں، یہ انتہائی معیاری VLOOKUP فارمولہ مغرب شیٹ پر رینج A2:C6 کے پہلے کالم میں A2 ویلیو کو تلاش کرتا ہے اور ایک واپس کرتا ہے۔ دوسرے کالم سے میچ۔ بس!

      متعدد شیٹس سے ڈیٹا کو مختلف سیلز میں واپس کرنے کے لیے ڈائنامک VLOOKUP

      سب سے پہلے، آئیے اس سیاق و سباق میں لفظ "ڈائنیمک" کا اصل مطلب کیا ہے اور یہ فارمولہ کیسا ہو گا۔ پچھلے سے مختلف۔

      اگر آپ کے پاس ایک ہی فارمیٹ میں ڈیٹا کے بڑے حصے ہیں جو متعدد اسپریڈ شیٹس پر تقسیم ہیں، تو آپ مختلف شیٹس سے مختلف سیلز میں معلومات نکالنا چاہیں گے۔ نیچے دی گئی تصویر اس تصور کو واضح کرتی ہے:

      پچھلے فارمولوں کے برعکس جس نے ایک منفرد شناخت کنندہ کی بنیاد پر کسی مخصوص شیٹ سے قدر حاصل کی تھی، اس بار ہم کئی شیٹس سے قدریں نکالنا چاہتے ہیں۔ وقت۔

      اس کام کے لیے دو مختلف حل ہیں۔ دونوں صورتوں میں، آپ کو تھوڑا سا تیاری کا کام کرنے کی ضرورت ہے اور ہر تلاش کے شیٹ میں ڈیٹا سیلز کے لیے نام کی حدیں بنانا ہوں گی۔ اس مثال کے لیے، ہم نے درج ذیل رینجز کی وضاحت کی:

      • East_Sales - A2:B6 مشرقی شیٹ پر
      • North_Sales - A2: شمالی شیٹ پر B6
      • South_Sales - A2:B6 جنوبی شیٹ پر
      • West_Sales - A2:B6 مغربی شیٹ پر
      16پہلے سے طے شدہ سیلز میں کلیدی الفاظ کی بنیاد پر شیٹ کو منتخب کرنے کے لیے (ہمارے معاملے میں سیل B1 سے D1 تک)۔

      A2 میں تلاش کی قدر کے ساتھ، فارمولہ درج ذیل ہے:

      =VLOOKUP($A2, IF(B$1="east", East_Sales, IF(B$1="north", North_Sales, IF(B$1="south", South_Sales, IF(B$1="west", West_Sales)))), 2, FALSE)

      انگریزی میں ترجمہ کیا گیا، IF حصہ پڑھتا ہے:

      اگر B1 East ہے تو East_Sales نامی رینج میں دیکھیں۔ اگر B1 شمالی ہے، تو North_Sales نامی رینج میں دیکھیں؛ اگر B1 South ہے تو South_Sales نامی رینج میں دیکھیں؛ اور اگر B1 West ہے، تو West_Sales نامی رینج میں دیکھیں۔

      IF کی طرف سے لوٹائی گئی رینج VLOOKUP کے table_array پر جاتی ہے، جو کھینچتی ہے۔ متعلقہ شیٹ پر دوسرے کالم سے مماثل قیمت۔

      لوک اپ ویلیو ($A2 - مطلق کالم اور رشتہ دار قطار) کے لیے مخلوط حوالوں کا ہوشیار استعمال اور IF (B$1 - رشتہ دار کالم) کا منطقی امتحان اور مطلق قطار) فارمولے کو بغیر کسی تبدیلی کے دوسرے سیلوں میں کاپی کرنے کی اجازت دیتا ہے - ایکسل قطار اور کالم کی رشتہ دار پوزیشن کی بنیاد پر حوالہ جات کو خود بخود ایڈجسٹ کرتا ہے۔

      لہذا، ہم B2 میں فارمولہ درج کرتے ہیں، اسے دائیں کاپی کرتے ہیں اور ضرورت کے مطابق زیادہ سے زیادہ کالموں اور قطاروں تک نیچے جائیں، اور درج ذیل نتیجہ حاصل کریں:

      ان ڈائریکٹ VLOOKUP

      بہت سی شیٹس کے ساتھ کام کرتے وقت، متعدد نیسٹڈ لیولز بھی فارمولہ بنا سکتے ہیں۔ لمبا اور پڑھنے میں مشکل۔ اس سے کہیں بہتر طریقہ یہ ہے کہ INDIRECT:

      =VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)

      کی مدد سے ایک متحرک vlookup رینج بنائیں یہاں، ہم اس سیل کے حوالے کو جوڑتے ہیں جس میں aنامزد رینج کا منفرد حصہ (B1) اور مشترکہ حصہ (_Sales)۔ یہ "East_Sales" جیسی ٹیکسٹ سٹرنگ تیار کرتا ہے، جسے INDIRECT ایکسل کے ذریعے سمجھے جانے والے رینج کے نام میں تبدیل کرتا ہے۔

      نتیجتاً، آپ کو ایک کمپیکٹ فارمولا ملتا ہے جو کسی بھی شیٹ پر خوبصورتی سے کام کرتا ہے:

      <0

      اسی طرح ایکسل میں شیٹس اور فائلوں کے درمیان Vlookup کرنے کا طریقہ ہے۔ میں پڑھنے کے لیے آپ کا شکریہ ادا کرتا ہوں اور امید کرتا ہوں کہ آپ کو اگلے ہفتے ہمارے بلاگ پر ملوں گا!

      ڈاؤن لوڈ کے لیے ورک بک کی مشق کریں

      ایک سے زیادہ شیٹس کی مثالیں دیکھیں (.xlsx فائل)

      پہلے ڈیٹا سیل سے رجوع کریں، جو A2 ہے۔
    • ٹیبل_ارے جان شیٹ پر رینج A2:B6 ہے۔ اس کا حوالہ دینے کے لیے، شیٹ کے نام کے ساتھ رینج کے حوالے کا سابقہ ​​لگائیں جس کے بعد فجائیہ نقطہ: Jan!$A$2:$B$6۔ 0 کالم B سے، جو ٹیبل ارے میں دوسرا کالم ہے۔
    • Range_lookup کو درست میچ دیکھنے کے لیے FALSE پر سیٹ کیا گیا ہے۔

    دلائل کو ایک ساتھ رکھتے ہوئے، ہمیں یہ فارمولا ملتا ہے:

    =VLOOKUP(A2, Jan!$A$2:$B$6, 2, FALSE)

    فارمولے کو کالم کے نیچے گھسیٹیں اور آپ کو یہ نتیجہ ملے گا:

    10>

    ایک میں اسی طرح، آپ فروری اور مارچ شیٹس سے ڈیٹا کو دیکھ سکتے ہیں:

    =VLOOKUP(A2, Feb!$A$2:$B$6, 2, FALSE)

    =VLOOKUP(A2, Mar!$A$2:$B$6, 2, FALSE)

    تجاویز اور نوٹ:

    • اگر شیٹ کے نام میں خالی جگہیں یا غیر حروف تہجی کے حروف ہوں، تو اسے واحد کوٹیشن مارکس میں بند کیا جانا چاہیے، جیسے 'جنوری سیلز'!$A$2:$B$6 ۔ مزید معلومات کے لیے، براہ کرم ملاحظہ کریں کہ Excel میں کسی اور شیٹ کا حوالہ کیسے دیا جائے۔
    • کسی فارمولے میں براہ راست شیٹ کا نام ٹائپ کرنے کے بجائے، آپ ورک شیٹ کو تلاش کر کے وہاں سے رینج منتخب کر سکتے ہیں۔ ایکسل خود بخود صحیح نحو کے ساتھ ایک حوالہ داخل کر دے گا، جس سے آپ کو نام چیک کرنے اور ٹربل شوٹ کرنے میں پریشانی نہیں ہوگی۔

    دونوں کے درمیان VLOOKUP کرنے کے لیے ایک مختلف ورک بک سے دیکھیں۔ورک بکس میں فائل کا نام مربع بریکٹ میں شامل کریں، اس کے بعد شیٹ کا نام اور فجائیہ نقطہ۔

    مثال کے طور پر، A2 کی قدر کو تلاش کرنے کے لیے رینج A2:B6 پر جنوری شیٹ میں Sales_reports.xlsx ورک بک، اس فارمولے کو استعمال کریں:

    =VLOOKUP(A2, [Sales_reports.xlsx]Jan!$A$2:$B$6, 2, FALSE)

    مکمل تفصیلات کے لیے، براہ کرم ایکسل میں کسی دوسری ورک بک سے VLOOKUP دیکھیں۔

    اس پار دیکھیں IFERROR کے ساتھ متعدد شیٹس

    جب آپ کو دو سے زیادہ شیٹس کے درمیان تلاش کرنے کی ضرورت ہو تو سب سے آسان حل یہ ہے کہ VLOOKUP کو IFERROR کے ساتھ مل کر استعمال کریں۔ خیال یہ ہے کہ متعدد ورک شیٹس کو ایک ایک کرکے چیک کرنے کے لیے کئی IFERROR فنکشنز کو نیسٹ کیا جائے: اگر پہلے VLOOKUP کو پہلی شیٹ پر کوئی مماثلت نہیں ملتی ہے، تو اگلی شیٹ میں تلاش کریں، وغیرہ۔

    IFERROR(VLOOKUP(…), IFERROR(VLOOKUP(…), …, " نہیں ملا "))

    یہ دیکھنے کے لیے کہ یہ نقطہ نظر حقیقی زندگی کے ڈیٹا پر کیسے کام کرتا ہے، آئیے درج ذیل مثال پر غور کریں۔ ذیل میں خلاصہ ٹیبل ہے جسے ہم مغرب اور مشرقی شیٹس میں آرڈر نمبر دیکھ کر آئٹم کے ناموں اور مقداروں کے ساتھ آباد کرنا چاہتے ہیں:

    سب سے پہلے، ہم اشیاء کو کھینچنے جا رہے ہیں۔ اس کے لیے، ہم VLOOKUP فارمولے کو East شیٹ پر A2 میں آرڈر نمبر تلاش کرنے اور کالم B ( table_array A2:C6 میں دوسرا کالم) سے قدر واپس کرنے کی ہدایت کرتے ہیں۔ اگر قطعی مماثلت نہیں ملتی ہے، تو مغرب شیٹ میں تلاش کریں۔ اگر دونوں Vlookups ناکام ہو جاتے ہیں، تو "Not found" واپس کریں۔

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 2, FALSE), "Not found"))

    رقم واپس کرنے کے لیے،بس کالم انڈیکس نمبر کو 3 میں تبدیل کریں:

    =IFERROR(VLOOKUP(A2, East!$A$2:$C$6, 3, FALSE), IFERROR(VLOOKUP(A2, West!$A$2:$C$6, 3, FALSE), "Not found"))

    ٹِپ۔ اگر ضرورت ہو تو، آپ مختلف VLOOKUP فنکشنز کے لیے مختلف ٹیبل صفوں کی وضاحت کر سکتے ہیں۔ اس مثال میں، دونوں تلاش کی شیٹس میں قطاروں کی ایک ہی تعداد ہے (A2:C6)، لیکن آپ کی ورک شیٹس سائز میں مختلف ہو سکتی ہیں۔ 16 مثال کے طور پر، یہ ہے کہ آپ کس طرح دو مختلف فائلوں ( Book1 اور Book2 ) میں ایک فارمولے کے ساتھ Vlookup کرسکتے ہیں:

    =IFERROR(VLOOKUP(A2, [Book1.xlsx]East!$A$2:$C$6, 2, FALSE), IFERROR(VLOOKUP(A2, [Book2.xlsx]West!$A$2:$C$6, 2, FALSE),"Not found"))

    کالم انڈیکس نمبر کو متعدد کالموں کو Vlookup کرنے کے لیے متحرک بنائیں

    اس صورت حال میں جب آپ کو کئی کالموں سے ڈیٹا واپس کرنے کی ضرورت ہو، col_index_num کو ڈائنامک بنانے سے آپ کا کچھ وقت بچ سکتا ہے۔ یہاں کچھ ایڈجسٹمنٹ کرنی ہیں:

    • col_index_num دلیل کے لیے، COLUMNS فنکشن استعمال کریں جو ایک مخصوص صف میں کالموں کی تعداد لوٹاتا ہے: COLUMNS($A$1 :B$1)۔ (قطار کوآرڈینیٹ سے کوئی فرق نہیں پڑتا، یہ صرف کوئی بھی قطار ہو سکتی ہے۔)
    • lookup_value دلیل میں، کالم کے حوالہ کو $ نشان ($A2) کے ساتھ مقفل کریں، تاکہ یہ باقی رہے۔ فارمولے کو دوسرے کالموں میں کاپی کرتے وقت فکسڈ۔

    نتیجتاً، آپ کو ایک قسم کا متحرک فارمولا ملتا ہے جو مختلف کالموں سے مماثل اقدار کو نکالتا ہے، اس بات پر منحصر ہے کہ فارمولے کو کس کالم میں کاپی کیا گیا ہے:

    =IFERROR(VLOOKUP($A2, East!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), IFERROR(VLOOKUP($A2, West!$A$2:$C$6, COLUMNS($A$1:B$1), FALSE), "Not found"))

    جب کالم B، COLUMNS($A$1:B$1) میں درج کیا جائےVLOOKUP کو ٹیبل ارے میں دوسرے کالم سے ایک قدر واپس کرنے کے لیے 2 کو بتاتا ہے۔

    جب کالم C میں کاپی کیا جاتا ہے (یعنی آپ نے فارمولے کو B2 سے C2 میں گھسیٹ لیا ہے)، B$1 C$1 میں بدل جاتا ہے کیونکہ کالم کا حوالہ رشتہ دار ہے۔ نتیجتاً، COLUMNS($A$1:C$1) VLOOKUP کو تیسرے کالم سے ایک قدر واپس کرنے پر مجبور کرنے والے 3 کا اندازہ لگاتا ہے۔

    یہ فارمولہ 2 - 3 تلاش کی شیٹس کے لیے بہت اچھا کام کرتا ہے۔ اگر آپ کے پاس زیادہ ہے تو دہرائے جانے والے IFERROR بہت بوجھل ہو جاتے ہیں۔ اگلی مثال کچھ زیادہ پیچیدہ لیکن بہت زیادہ خوبصورت نقطہ نظر کو ظاہر کرتی ہے۔

    انڈائریکٹ کے ساتھ متعدد شیٹس کو دیکھیں

    ایکسل میں متعدد شیٹس کے درمیان Vlookup کا ایک اور طریقہ یہ ہے کہ VLOOKUP اور INDIRECT فنکشنز۔ اس طریقہ کار کے لیے تھوڑی تیاری کی ضرورت ہے، لیکن آخر میں، آپ کے پاس کسی بھی تعداد میں اسپریڈشیٹ میں Vlookup کے لیے زیادہ کمپیکٹ فارمولہ ہوگا۔

    شیٹس میں Vlookup کا ایک عام فارمولا درج ذیل ہے:

    VLOOKUP( lookup_value , INDIRECT("'"&INDEX( Lookup_sheets , MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets &") '! lookup_range "), lookup_value )>0), 0)) & "'! table_array "), col_index_num , FALSE)

    کہاں:

    • Lookup_sheets - تلاش کرنے والی شیٹ کے ناموں پر مشتمل ایک نامزد رینج۔
    • Lookup_value - the تلاش کرنے کے لیے قدرقدر۔
    • ٹیبل_ارے - تلاش کرنے والی شیٹس میں ڈیٹا کی حد۔
    • Col_index_num - ٹیبل سرنی میں کالم کی تعداد جس سے ایک قدر واپس کریں۔

    فارمولے کے صحیح طریقے سے کام کرنے کے لیے، براہ کرم درج ذیل انتباہات کو ذہن میں رکھیں:

    • یہ ایک صف کا فارمولا ہے، جسے Ctrl + دبانے سے مکمل کیا جانا چاہیے۔ Shift + Enter keys ایک ساتھ۔
    • تمام شیٹس میں کالموں کی ایک ہی ترتیب ہونی چاہیے۔
    • جیسا کہ ہم تمام تلاش کی شیٹس کے لیے ایک ٹیبل اری استعمال کرتے ہیں، <12 کی وضاحت کریں۔>سب سے بڑی رینج اگر آپ کی شیٹس میں قطاروں کی مختلف تعداد ہے۔

    شیٹس میں Vlookup کرنے کا فارمولہ کیسے استعمال کریں

    ایک وقت میں ایک سے زیادہ شیٹس کو Vlookup کرنے کے لیے، ان پر عمل کریں۔ مراحل:

    1. اپنی ورک بک میں کہیں بھی تلاش کے تمام نام لکھیں اور اس رینج کو نام دیں (ہمارے معاملے میں Lookup_sheets
    <0
  • اپنے ڈیٹا کے لیے عام فارمولے کو ایڈجسٹ کریں۔ اس مثال میں، ہم یہ ہوں گے:
    • A2 قدر کی تلاش ( lookup_value )
    • رینج A2:A6 میں ( lookup_range ) چار ورک شیٹس ( مشرق ، شمالی ، جنوب اور مغرب )، اور
    • کالم B سے مماثل اقدار کو کھینچیں، جو کہ ڈیٹا رینج A2:C6 ( table_array ) میں کالم 2 ( col_index_num ) ہے۔

    مندرجہ بالا دلائل کے ساتھ، فارمولا یہ شکل اختیار کرتا ہے:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)

    براہ کرم نوٹ کریں کہ ہم دونوں رینجز ($A$2:$A$6 اور $A$2:$C$6) کو مطلق سیل حوالوں کے ساتھ مقفل کرتے ہیں۔

  • درج کریں فارمولاسب سے اوپر والے سیل میں (اس مثال میں B2) اور اسے مکمل کرنے کے لیے Ctrl + Shift + Enter دبائیں۔
  • کالم کے نیچے فارمولہ کاپی کرنے کے لیے فل ہینڈل پر ڈبل کلک کریں یا گھسیٹیں۔
  • بطور نتیجہ، ہمارے پاس آرڈر نمبر کو 4 شیٹس میں تلاش کرنے اور متعلقہ آئٹم کو بازیافت کرنے کا فارمولا ہے۔ اگر کوئی مخصوص آرڈر نمبر نہیں ملتا ہے، تو #N/A غلطی ظاہر ہوتی ہے جیسے قطار 14 میں:

    رقم واپس کرنے کے لیے، صرف col_index_num میں 2 کو 3 سے بدل دیں۔ دلیل ٹیبل اری کے تیسرے کالم میں رقم کے طور پر ہے:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE)

    اگر آپ معیاری #N/A غلطی کے اشارے کو اپنے متن سے تبدیل کرنا چاہتے ہیں تو لپیٹ دیں۔ IFNA فنکشن میں فارمولہ:

    =IFNA(VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 3, FALSE), "Not found")

    ورک بک کے درمیان ایک سے زیادہ شیٹس دیکھیں

    یہ عام فارمولہ (یا اس کا کوئی تغیر) بھی استعمال کیا جا سکتا ہے۔ مختلف ورک بک میں متعدد شیٹس کو دیکھیں۔ اس کے لیے، ورک بک کے نام کو INDIRECT کے اندر جوڑیں جیسا کہ ذیل کے فارمولے میں دکھایا گیا ہے:

    =IFNA(VLOOKUP($A2, INDIRECT("'[Book1.xlsx]" & INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'[Book1.xlsx]" & Lookup_sheets & "'!$A$2:$A$6"), $A2)>0), 0)) & "'!$A$2:$C$6"), 2, FALSE), "Not found")

    شیٹس کے درمیان دیکھیں اور متعدد کالم واپس کریں

    اگر آپ متعدد سے ڈیٹا کھینچنا چاہتے ہیں۔ کالم، ایک ملٹی سیل اری فارمولہ ایک بار میں ایسا کر سکتا ہے۔ اس طرح کا فارمولہ بنانے کے لیے، col_index_num دلیل کے لیے ایک سرنی مستقل فراہم کریں۔

    اس مثال میں، ہم آئٹم کے نام (کالم B) اور مقدار (کالم C) واپس کرنا چاہتے ہیں، جو ٹیبل صف میں بالترتیب 2nd اور 3rd کالم ہیں۔ تو، مطلوبہ صف ہے{2,3}۔

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets &"'!$A$2:$C$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), {2,3}, FALSE)

    متعدد سیلز میں فارمولہ درست طریقے سے درج کرنے کے لیے، آپ کو یہ کرنا ہوگا:

    • پہلی قطار میں، آباد ہونے والے تمام سیلز کو منتخب کریں (ہماری مثال میں B2:C2)۔
    • فارمولہ ٹائپ کریں اور Ctrl + Shift + Enter دبائیں۔ یہ منتخب سیلز میں ایک ہی فارمولے میں داخل ہوتا ہے، جو ہر کالم میں ایک مختلف قدر واپس کرے گا۔
    • فارمولے کو باقی قطاروں میں نیچے گھسیٹیں۔

    یہ فارمولہ کیسے کام کرتا ہے

    منطق کو بہتر طور پر سمجھنے کے لیے، آئیے اس بنیادی فارمولے کو انفرادی افعال میں توڑتے ہیں:

    =VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, --(COUNTIF(INDIRECT("'"& Lookup_sheets&"'!$A$2:$A$6"), $A2)>0), 0)) &"'!$A$2:$C$6"), 2, FALSE)

    اندر سے کام کرتے ہوئے، یہ ہے کہ فارمولہ کیا کرتا ہے:

    COUNTIF اور INDIRECT

    مختصر طور پر، INDIRECT تمام تلاش کے شیٹس کے لیے حوالہ جات بناتا ہے، اور COUNTIF تلاش کے واقعات کو شمار کرتا ہے۔ ہر شیٹ میں قدر (A2):

    --(COUNTIF( INDIRECT("'"&Lookup_sheets&"'!$A$2:$A$6"), $A2)>0)

    مزید تفصیل میں:

    سب سے پہلے، آپ رینج کا نام (Lookup_sheets) اور رینج کا حوالہ ($A$2: $A$6)، خارجی حوالہ بنانے کے لیے صحیح جگہوں پر apostrophes اور فجائیہ نکتہ شامل کریں، اور تلاش کے شیٹس کو متحرک طور پر حوالہ دینے کے لیے نتیجے میں آنے والے ٹیکسٹ اسٹرنگ کو INDIRECT فنکشن میں فیڈ کریں:

    INDIRECT({"'East'!$A$2:$A$6"; "'South'!$A$2:$A$6"; "'North'!$A$2:$A$6"; "'West'!$A$2:$A$6"})

    COUNTIF رینج A2:A6 میں ہر سیل کو چیک کرتا ہے ہر لوک اپ شیٹ پر A2 کی قدر کے خلاف مین پر شیٹ اور ہر شیٹ کے لیے میچوں کی گنتی لوٹاتا ہے۔ ہمارے ڈیٹاسیٹ میں، A2 (101) میں آرڈر نمبر West شیٹ میں پایا جاتا ہے، جو کہ 4ویں نمبر پر ہے۔نام کی حد، لہذا COUNTIF اس صف کو لوٹاتا ہے:

    {0;0;0;1}

    اس کے بعد، آپ مندرجہ بالا صف کے ہر عنصر کا 0:

    --({0; 0; 0; 1}>0)

    سے موازنہ کرتے ہیں TRUE (0 سے زیادہ) اور FALSE (0 کے برابر) اقدار کی ایک صف، جسے آپ ڈبل یونیری (--) کا استعمال کرکے 1 اور 0 پر مجبور کرتے ہیں، اور نتیجے کے طور پر درج ذیل صف حاصل کریں:

    {0; 0; 0; 1}

    یہ آپریشن کسی صورت حال کو سنبھالنے کے لیے ایک اضافی احتیاط ہے جب ایک تلاش کی شیٹ میں تلاش کی قدر کے کئی واقعات ہوتے ہیں، ایسی صورت میں COUNTIF 1 سے زیادہ کی گنتی واپس کرے گا، جب کہ ہم صرف 1 اور 0 چاہتے ہیں۔ حتمی صف (ایک لمحے میں، آپ سمجھ جائیں گے کہ کیوں)۔

    ان تمام تبدیلیوں کے بعد، ہمارا فارمولا اس طرح نظر آتا ہے:

    VLOOKUP($A2, INDIRECT("'"&INDEX(Lookup_sheets, MATCH(1, {0;0;0;1} , 0)) &"'!$A$2:$C$6"), 2, FALSE)

    INDEX اور MATCH

    اس مقام پر، ایک کلاسک INDEX MATCH مجموعہ اس میں قدم رکھتا ہے:

    INDEX(Lookup_sheets, MATCH(1, {0;0;0;1}, 0))

    بالکل میچ کے لیے ترتیب دیا گیا MATCH فنکشن (آخری دلیل میں 0) صف میں قدر 1 کو تلاش کرتا ہے { 0;0;0;1} اور اپنی پوزیشن لوٹاتا ہے، جو کہ 4 ہے:

    INDEX(Lookup_sheets, 4)

    INDEX فنکشن واپس کیے گئے نمبر کا استعمال کرتا ہے MATCH بذریعہ قطار نمبر دلیل (row_num)، اور نامزد رینج Lookup_sheets میں چوتھی قدر لوٹاتا ہے، جو کہ West ہے۔

    لہذا، فارمولہ مزید کم کرتا ہے۔ میں:

    VLOOKUP($A2, INDIRECT("'"&" West "&"'!$A$2:$C$6"), 2, FALSE)

    VLOOKUP اور INDIRECT

    INDIRECT فنکشن اس کے اندر موجود ٹیکسٹ سٹرنگ پر کارروائی کرتا ہے:

    INDIRECT("'"&"West"&"'!$A$2:$C$6")

    اور اسے تبدیل کرتا ہے۔ ایک حوالہ میں جو table_array کی دلیل پر جاتا ہے۔

    مائیکل براؤن سافٹ ویئر ٹولز کا استعمال کرتے ہوئے پیچیدہ عمل کو آسان بنانے کے جذبے کے ساتھ ٹیکنالوجی سے وابستہ ایک سرشار ہے۔ ٹیک انڈسٹری میں ایک دہائی سے زیادہ کے تجربے کے ساتھ، اس نے مائیکروسافٹ ایکسل اور آؤٹ لک کے ساتھ ساتھ گوگل شیٹس اور دستاویزات میں بھی اپنی صلاحیتوں کو نکھارا ہے۔ مائیکل کا بلاگ اپنے علم اور مہارت کو دوسروں کے ساتھ بانٹنے کے لیے وقف ہے، پیداواری صلاحیت اور کارکردگی کو بہتر بنانے کے لیے آسان پیروی کرنے والی تجاویز اور سبق فراہم کرتا ہے۔ چاہے آپ ایک تجربہ کار پیشہ ور ہوں یا ابتدائی، مائیکل کا بلاگ ان ضروری سافٹ ویئر ٹولز سے زیادہ سے زیادہ فائدہ اٹھانے کے لیے قیمتی بصیرتیں اور عملی مشورہ پیش کرتا ہے۔