مواد
هن وقت، Microsoft Excel ۾ لڳ ڀڳ پنج سئو ورڪ شيٽ موجود آهن فنڪشنل وزرڊ ونڊو-بٽن ذريعي fx فارمولا بار ۾. هي هڪ تمام مهذب سيٽ آهي، پر، ان جي باوجود، تقريبن هر صارف جلد يا بعد ۾ هڪ اهڙي صورتحال کي منهن ڏئي ٿو جتي هن لسٽ ۾ هن فنڪشن تي مشتمل ناهي جنهن جي هن کي ضرورت آهي - صرف ان ڪري ته اهو Excel ۾ ناهي.
هن وقت تائين، هن مسئلي کي حل ڪرڻ جو واحد طريقو ميڪرو هو، يعني Visual Basic ۾ پنهنجو يوزر ڊيفائنڊ فنڪشن (UDF = User Defined Function) لکڻ، جنهن لاءِ پروگرامنگ جي مناسب صلاحيتن جي ضرورت آهي ۽ ڪڏهن ڪڏهن، بلڪل آسان ناهي. بهرحال، جديد Office 365 اپڊيٽس سان، صورتحال بهتر لاءِ تبديل ٿي وئي آهي - هڪ خاص ”ريپر“ فنڪشن ايڪسل ۾ شامل ڪيو ويو آهي. LAMBDA. ان جي مدد سان، توهان جي پنهنجي فنڪشن ٺاهڻ جو ڪم هاڻي آساني سان ۽ سهڻي طريقي سان حل ڪيو ويو آهي.
اچو ته هيٺ ڏنل مثال ۾ ان جي استعمال جي اصول تي نظر.
جئين توهان تمام گهڻو ڄاڻو ٿا، ايڪسل ۾ ڪيترائي تاريخ پارسنگ افعال آهن جيڪي توهان کي ڏنل تاريخ لاء ڏينهن، مهيني، هفتي ۽ سال جو تعداد طئي ڪرڻ جي اجازت ڏين ٿا. پر ڪجهه سببن لاءِ ڪو به ڪم نه آهي جيڪو چوٿون نمبر جو تعين ڪري ٿو، جيڪو پڻ اڪثر گهربل آهي، صحيح؟ اچو ته هن گهٽتائي کي درست ڪريون ۽ ان سان ٺاهيو LAMBDA هن مسئلي کي حل ڪرڻ لاء پنهنجي نئين فنڪشن.
قدم 1. فارمولا لکو
اچو ته حقيقت سان شروع ڪريون ته دستي طور تي معمولي طريقي سان اسان هڪ فارمولا لکنداسين شيٽ سيل ۾ جيڪو حساب ڪري ٿو جيڪو اسان کي گهربل آهي. چوٿين نمبر جي صورت ۾، اهو ٿي سگهي ٿو، مثال طور، هن وانگر:
قدم 2. LAMBDA ۾ لپڻ ۽ جانچ
ھاڻي اھو وقت آھي نئين LAMBDA فنڪشن کي لاڳو ڪرڻ ۽ ان ۾ اسان جو فارمولا لپايو. فنڪشن نحو هن ريت آهي:
= LAMBDA(متغير1; متغير2؛ ... متغير اين ; تاثر)
جتي هڪ يا وڌيڪ متغيرن جا نالا پهرين درج ٿيل آهن، ۽ آخري دليل هميشه هڪ فارمولا يا هڪ حساب ڪيل اظهار آهي جيڪو انهن کي استعمال ڪري ٿو. متغير نالن کي سيل پتي وانگر نه ڏسڻ گهرجي ۽ ڊٽس تي مشتمل نه هجڻ گهرجي.
اسان جي صورت ۾، اتي صرف هڪ متغير هوندو - اها تاريخ جنهن لاءِ اسان ٽه ماهي نمبر ڳڻيو. اچو ته ان لاء variable سڏين ٿا، چئو، ڊي. ان کان پوء اسان جي فارمولا کي هڪ فنڪشن ۾ لپيندي LAMBDA ۽ اصل سيل A2 جي ايڊريس کي جعلي متغير نالي سان متبادل ڪندي، اسان حاصل ڪريون ٿا:
مهرباني ڪري نوٽ ڪريو ته اهڙي تبديلي کان پوء، اسان جو فارمولا (حقيقت ۾، صحيح!) هڪ غلطي پيدا ڪرڻ شروع ڪيو، ڇاڪاڻ ته هاڻي سيل A2 کان اصل تاريخ ان ڏانهن منتقل نه ڪئي وئي آهي. جاچ ۽ اعتماد لاءِ، توھان ان ۾ دليلن کي پاس ڪري سگھو ٿا انھن کي فنڪشن کان پوءِ شامل ڪري LAMBDA قوس ۾:
قدم 3. نالو ٺاھيو
هاڻي آسان ۽ مزيدار حصو لاء. اسان کوليو نالي وارو مئنيجر ٽئب فارمولا (فارمولا - نالو مئنيجر) ۽ بٽڻ سان نئون نالو ٺاھيو ٺاهيو (ٺاهيو). اچو ۽ اسان جي مستقبل جي فنڪشن لاءِ نالو داخل ڪريو (مثال طور، Nomkvartala)، ۽ ميدان ۾ لنڪ (حوالو) احتياط سان فارمولا بار مان ڪاپي ڪريو ۽ اسان جي فنڪشن کي پيسٽ ڪريو LAMBDAصرف آخري دليل کان سواءِ (A2):
سڀ ڪجهه. تي ڪلڪ ڪرڻ کان پوء OK ٺهيل فنڪشن هن ورڪ بڪ جي ڪنهن به شيٽ تي ڪنهن به سيل ۾ استعمال ڪري سگهجي ٿو:
ٻين ڪتابن ۾ استعمال ڪريو
LAMBDA ۽ متحرڪ صفون
ڪسٽم فنڪشن هڪ فنڪشن سان ٺهيل آهي LAMBDA نئين متحرڪ صفن ۽ انهن جي ڪمن سان ڪاميابيءَ سان ڪم جي حمايت (FILTER, UNIK, گريڊ2020 ۾ Microsoft Excel ۾ شامل ڪيو ويو.
اچو ته چئون ته اسان هڪ نئين صارف جي وضاحت ڪيل فنڪشن ٺاهڻ چاهيون ٿا جيڪو ٻن فهرستن جو مقابلو ڪري ۽ انهن جي وچ ۾ فرق واپس آڻيندي - پهرين فهرست مان اهي عنصر جيڪي ٻئي ۾ نه آهن. زندگي جو ڪم، آهي نه؟ اڳي، هن لاءِ اهي يا ته فنڪشن استعمال ڪندا هئا a la VPR (VLOOKUP), or PivotTables , or Power Query queries. هاڻي توهان هڪ فارمولا سان ڪري سگهو ٿا:
انگريزي ورزن ۾ اهو ٿيندو:
=LAMBDA(a;b;ФИЛЬТР(a;СЧЁТЕСЛИ(b;a)=0))(A1:A6;C1:C10)
هتي فنڪشن COUNTIF پهرين لسٽ جي هر عنصر جي واقعن جو تعداد شمار ڪري ٿو سيڪنڊ ۾، ۽ پوءِ فنڪشن FILTER انهن مان صرف انهن کي چونڊيو جيڪي اهي واقعا نه هئا. هن ڍانچي کي لپيٽڻ سان LAMBDA ۽ ان جي بنياد تي ھڪڙي نالي جي حد ٺاھيو، مثال طور، ڳولا جي تقسيم - اسان هڪ آسان فنڪشن حاصل ڪنداسين جيڪو هڪ متحرڪ صف جي صورت ۾ ٻن فهرستن جي مقابلي جو نتيجو ڏئي ٿو:
جيڪڏهن ماخذ ڊيٽا عام نه آهي، پر "سمارٽ" جدولن، اسان جو فنڪشن به بغير ڪنهن مسئلن کي منهن ڏيندو:
ٻيو مثال متحرڪ طور تي متن کي XML ۾ تبديل ڪندي ۽ پوءِ ان کي سيل ذريعي سيل ذريعي پارس ڪرڻ آهي FILTER.XML فنڪشن جيڪو اسان تازو ئي پارس ڪيو آهي. هن پيچيده فارمولا کي هر دفعي دستي طور تي ٻيهر پيدا نه ڪرڻ لاءِ، ان کي LAMBDA ۾ لپائڻ ۽ ان جي بنياد تي هڪ متحرڪ رينج ٺاهڻ آسان ٿيندو، يعني هڪ نئون ڪمپيڪٽ ۽ آسان فنڪشن، ان جو نالو ڏيڻ، مثال طور، RAZDTEXT:
هن فنڪشن جو پهريون دليل ماخذ ٽيڪسٽ سان سيل هوندو، ۽ ٻيو - جدا ڪندڙ ڪردار، ۽ اهو نتيجو هڪ افقي متحرڪ صف جي صورت ۾ واپس ڪندو. فنڪشنل ڪوڊ هن ريت هوندو:
= LAMBDA(t;d؛ TRANSPOSE(FILTER.XML(“
مثالن جي فهرست لامحدود آهي - ڪنهن به صورتحال ۾ جتي توهان کي اڪثر اهو ساڳيو ڊگهو ۽ پيچيده فارمولا داخل ڪرڻو پوندو، LAMBDA فنڪشن زندگي کي آسان بڻائي ڇڏيندو.
اکرن جو بار بار ڳڻپ
سڀني پوئين مثالن ۾ صرف هڪ ڏيکاريو ويو آهي، سڀ کان وڌيڪ واضح، LAMBDA فنڪشن جو هڪ پاسو - ان جو استعمال "ريپر" جي طور تي ان ۾ ڊگهي فارمولن کي لپائڻ ۽ انهن جي ان پٽ کي آسان ڪرڻ لاء. حقيقت ۾، LAMBDA وٽ هڪ ٻيو، تمام گهڻو اونهو، پاسي آهي جيڪو ان کي تقريبا هڪ مڪمل پروگرامنگ ٻولي ۾ تبديل ڪري ٿو.
حقيقت اها آهي ته LAMBDA افعال جي بنيادي طور تي اهم خصوصيت انهن کي لاڳو ڪرڻ جي صلاحيت آهي مفاهمت - حساب جي منطق، جڏهن حساب جي عمل ۾ فنڪشن پاڻ کي سڏيندو آهي. عادت کان، اهو خوفناڪ آواز ٿي سگهي ٿو، پر پروگرامنگ ۾، تکرار هڪ عام شيء آهي. جيتوڻيڪ Visual Basic ۾ ميڪرو ۾، توهان ان کي لاڳو ڪري سگهو ٿا، ۽ هاڻي، جيئن توهان ڏسي سگهو ٿا، اهو اچي چڪو آهي Excel ڏانهن. اچو ته هن ٽيڪنڪي کي عملي مثال سان سمجهڻ جي ڪوشش ڪريون.
فرض ڪريو اسان هڪ صارف جي بيان ڪيل فنڪشن ٺاهڻ چاهيون ٿا جيڪو سڀني ڏنل اکرن کي ماخذ متن مان هٽائي ڇڏيندو. اهڙي فنڪشن جي افاديت، مان سمجهان ٿو، توهان کي ثابت ڪرڻ جي ضرورت ناهي - ان جي مدد سان ڀريل ان پٽ ڊيٽا کي صاف ڪرڻ تمام آسان ٿيندو، صحيح؟
بهرحال، اڳئين، غير ٻيهر ورجائيندڙ مثالن جي مقابلي ۾، ٻه مشڪلاتون اسان جي انتظار ۾ آهن.
- اسان کي ان جو ڪوڊ لکڻ شروع ڪرڻ کان اڳ اسان جي فنڪشن لاءِ نالو ڏيڻو پوندو، ڇاڪاڻ ته ان ۾، اهو نالو اڳ ۾ ئي فنڪشن کي سڏڻ لاءِ استعمال ڪيو ويندو.
- LAMBDA (جيئن اسان اڳ ۾ ڪيو آهي) کان پوءِ بریکٹس ۾ دليلن جي وضاحت ڪندي سيل ۾ اهڙي ٻيهر ورجائيندڙ فنڪشن داخل ڪرڻ ۽ ان کي ڊيبگ ڪرڻ ڪم نه ڪندو. توهان کي فوري طور تي "شروع کان" ۾ هڪ فنڪشن ٺاهڻو پوندو نالي وارو مئنيجر (نالو مئنيجر).
اچو ته اسان جي فنڪشن کي ڪال ڪريون، چئو، CLEAN ۽ اسان چاهيون ٿا ته ان ۾ ٻه دليل هجن - متن کي صاف ڪيو وڃي ۽ خارج ٿيل اکرن جي فهرست هڪ ٽيڪسٽ اسٽرنگ جي طور تي:
اچو ته ٺاهيو، جيئن اسان اڳ ۾ ڪيو، ٽيب تي فارمولا в نالو مينيجر نالي واري حد، ان کي نالو ڏيو CLEAR ۽ داخل ڪريو فيلڊ ۾ حد هيٺين تعمير:
= LAMBDA(t؛d؛IF(d=""؛t؛CLEAR(SUBSTITUTE(t؛ کاٻي(d)؛""؛ MID(d؛2؛255))))
هتي متغير t اصل متن کي صاف ڪيو وڃي ٿو، ۽ d اکر جي فهرست آهي جنهن کي ختم ڪيو وڃي.
اهو سڀ ڪجهه هن طرح ڪم ڪري ٿو:
ورهاي 1
ٽڪرو SUBSTITUTE(t;LEFT(d);"")، جيئن توھان اندازو لڳائي سگھو ٿا، سيٽ ڊي مان کاٻي اکرن مان پھرين اکر کي مٽائي ٿو ماخذ ٽيڪسٽ t ۾ ختم ٿيڻ لاءِ خالي ٽيڪسٽ اسٽرنگ سان، يعني ھٽائي ٿو " الف”. وچولي نتيجي طور، اسان حاصل ڪريون ٿا:
Vsh zkz n 125 روبل.
ورهاي 2
پوءِ فنڪشن پاڻ کي ڪال ڪري ٿو ۽ ان پٽ جي طور تي (پهريون دليل) حاصل ڪري ٿو جيڪو پوئين مرحلي ۾ صاف ڪرڻ کان پوءِ بچيو آهي، ۽ ٻيو دليل خارج ٿيل اکرن جو اسٽرنگ آهي جيڪو پهرين کان نه، پر ٻئي ڪردار کان شروع ٿئي ٿو، يعني “BVGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYYA. "ابتدائي "A" کان سواء - اهو MID فنڪشن طرفان ڪيو ويندو آهي. اڳي وانگر، فنڪشن پهرين ڪردار کي کاٻي پاسي کان وٺي ٿو باقي بچيل (B) ۽ ان کي ڏنل متن ۾ تبديل ڪري ٿو (Zkz n 125 rubles) هڪ خالي اسٽرنگ سان - اسان هڪ وچولي نتيجو حاصل ڪندا آهيون:
125 رو.
ورهاي 3
فنڪشن پاڻ کي ٻيهر سڏيندو آهي، پهرين دليل جي طور تي وصول ڪيو ويو آهي ته متن مان ڇا رهجي ويو آهي پوئين ورهاڱي تي صاف ڪيو وڃي (Bsh zkz n 125 ru.)، ۽ ٻئي دليل جي طور تي، خارج ٿيل اکرن جي سيٽ کي هڪ وڌيڪ ڪردار ذريعي ڪٽيو ويو. کاٻي، يعني "VGDEEGZIKLMNOPRSTUFHTSCHSHSHCHYYYUYA."، شروعاتي "B" کان سواء. ان کان پوء اهو ٻيهر پهريون ڪردار کاٻي پاسي کان وٺي ٿو (B) هن سيٽ مان ۽ ان کي متن مان هٽائي ٿو - اسان حاصل ڪريون ٿا:
sh zkz n 125 ru.
۽ ائين ئي - مون کي اميد آهي ته توهان اهو خيال حاصل ڪيو. هر ورجائي سان، اکرن جي لسٽ کي ختم ڪيو ويندو، کاٻي پاسي کان ڪٽيو ويندو، ۽ اسين ڳولينداسين ۽ ايندڙ ڪردار کي سيٽ مان خالي سان تبديل ڪنداسين.
جڏهن سڀئي ڪردار ختم ٿي ويندا، اسان کي لوپ مان نڪرڻو پوندو - اهو ڪردار صرف فنڪشن ذريعي ڪيو ويندو آهي IF (جيڪڏهن)، جنهن ۾ اسان جي ڊيزائن لپي وئي آهي. جيڪڏهن حذف ڪرڻ لاءِ ڪي به اکر باقي نه بچيا آهن (d=””)، ته پوءِ فنڪشن کي هاڻي پاڻ کي نه سڏڻ گهرجي، پر صرف متن کي صاف ڪرڻ لاءِ واپس ڪرڻ گهرجي (متغير t) ان جي آخري شڪل ۾.
سيلز جي ٻيهر ورجائي ورجائي
اهڙي طرح، توهان هڪ ڏنل حد ۾ سيلز جي ٻيهر ورهاڱي واري ڳڻپ کي لاڳو ڪري سگهو ٿا. فرض ڪريو اسان هڪ ليمبڊا فنڪشن نالي ٺاهڻ چاهيون ٿا متبادل فهرست ڏنل حوالن جي فهرست مطابق ماخذ متن ۾ ٽڪرن جي هول سيل متبادل لاءِ. نتيجو هن طرح ڏسڻ گهرجي:
اهي. اسان جي فنڪشن تي متبادل فهرست اتي ٽي دليل هوندا:
- سيل متن سان عمل ڪرڻ لاءِ (ذريعو پتو)
- ھڪڙي ڪالمن جو پھريون سيل جنھن ۾ قدرن سان ڳولھڻ لاءِ
- ڪالمن جو پھريون سيل ڳوليو مان متبادل قدرن سان
فنڪشن کي ڊاريڪٽري ۾ مٿين کان هيٺان وڃڻ گهرجي ۽ ترتيب سان سڀني اختيارن کي کاٻي ڪالمن مان تبديل ڪرڻ گهرجي لهڻ ساڄي ڪالمن مان لاڳاپيل اختيارن ڏانهن سقراط. توھان ھن کي لاڳو ڪري سگھوٿا ھيٺ ڏنل ريسرسيو لامبڊا فنڪشن سان:
شفٽ ھيٺ ھر ھڪڙي ورجائي تي لاڳو ٿئي ٿو معياري ايڪسل فنڪشن خارج ڪرڻ (آفسيٽ)، جنهن ۾ هن صورت ۾ ٽي دليل آهن - اصل حد، قطار شفٽ (1) ۽ ڪالمن شفٽ (0).
خير، جيئن ئي اسان ڊاريڪٽري جي پڄاڻيءَ تي پهچون ٿا (n = “”)، اسان کي ورجائي ختم ڪرڻ گهرجي- اسان پنهنجو پاڻ کي سڏڻ بند ڪريون ٿا ۽ ڏيکاريون ٿا ته ماخذ ٽيڪسٽ متغير ۾ سڀني تبديلين کان پوءِ ڇا جمع ٿيو آهي.
اهو ئي سڀ ڪجهه آهي. ڪو به مشڪل ميڪرو يا پاور سوالن جا سوال - سڄو ڪم هڪ فنڪشن ذريعي حل ڪيو ويو آهي.
- ايڪسل جي نئين متحرڪ صفن کي ڪيئن استعمال ڪجي: FILTER، SORT، UNIC
- SUBSTITUTE فنڪشن سان متن کي تبديل ڪرڻ ۽ صاف ڪرڻ
- VBA ۾ ميڪرو ۽ صارف جي وضاحت ڪيل فنڪشن (UDFs) ٺاهڻ