1 नवंबर, 2019 को ऑफिस इंसाइडर्स अपडेट में XLOOKUP फ़ंक्शन के लिए एक रोमांचक बदलाव हुआ। कई इंसाइडर्स को यह अपडेट प्राप्त होगा क्योंकि वे सोमवार 4 नवंबर, 2019 को काम पर आएंगे।
यदि आप नए XLOOKUP फ़ंक्शन का उपयोग कर रहे हैं और यदि आपने अभी-अभी बड़े या छोटे आकार के मान को देखने के लिए Match_Mode तर्क का उपयोग किया है, तो आपके मौजूदा XLOOKUP फ़ंक्शन टूटने वाले हैं।
XLOOKUP में नया परिवर्तन: IF_Not_Found तर्क, जिसे मूल रूप से वैकल्पिक छठे तर्क के रूप में जोड़ा गया था, को चौथे तर्क के रूप में स्थानांतरित कर दिया गया है।
निम्नलिखित सूत्र पर विचार करें, जो पहले अगले बड़े मैच के लिए पूछ रहा था:
=XLOOKUP(A2,H2:H99,J2:J99,1)
जब आप किसी कार्यपुस्तिका को इस तरह सूत्र के साथ खोलते हैं, तो सूत्र तुरंत नहीं टूटता है। जब तक आप सूत्र को संपादित नहीं करते, या जब तक आप H2: H99 या J2: J99 में संख्याओं में से एक को संपादित नहीं करते, तब तक एक्सेल की बुद्धिमान पुनर्गणना सूत्र को पुनर्गठित नहीं करेगी।
हालाँकि, एक बार जब आप लुकअप तालिका को संपादित कर लेते हैं, तो Excel सभी XLOOKUP फ़ंक्शन का उपयोग करता है जो तालिका का उपयोग करता है। परिवर्तन से पहले, आप एक अनुमानित मैच के लिए कह रहे थे जिसने अगले बड़े मूल्य को वापस कर दिया। परिवर्तन के बाद, आप एक सटीक मिलान के लिए पूछ रहे हैं (क्योंकि आपके मूल सूत्र में पांचवां तर्क नहीं है) और गलती से यह भी निर्दिष्ट कर रहा है कि यदि एक सटीक मिलान नहीं मिला है, तो आप परिणाम के बजाय 1 डालना चाहते हैं।
", यह वास्तव में अजीब-ए-तिल का एक कपटी खेल है," बिल जेलेन ने कहा, डॉट कॉम के प्रकाशक। आप एक सूत्र को देखने के लिए F2 दबाते हैं, और सूत्र काम करना बंद कर देता है। वर्कशीट में अन्य सूत्र काम करते हुए दिखाई दे सकते हैं, लेकिन वे एक टिक टाइम बम हैं जो गलत हो जाते हैं जब रिकॉल शुरू हो जाता है। "
हो रहे परिवर्तन को देखने के लिए, इस वीडियो में 0:35 से 0:55 तक दूसरा निशान देखें:
वीडियो देखेंा
जब आप Office अंदरूनी सूत्र कार्यक्रम के लिए साइन अप करते हैं, तो नियम और शर्तों के पैरा 7c का कहना है कि "हम सेवाओं या उनकी सुविधाओं को एक पूर्वावलोकन या बीटा संस्करण में जारी कर सकते हैं, जो ठीक से काम नहीं कर सकते हैं या उसी तरह अंतिम संस्करण काम कर सकते हैं "
एक्सेल टीम सलाह देती है कि आपको वैकल्पिक तर्क का उपयोग करने वाले किसी भी XLOOKUP सूत्र को समायोजित करने की आवश्यकता है। यदि आप बार-बार XLOOKUP का उपयोग कर रहे हैं, तो निम्न कोड कार्यपुस्तिका की जांच करेगा और संभावित समस्या सूत्रों की पहचान करेगा।
मूल संस्करण
निम्न कोड =XLOOKUP
2 से अधिक अल्पविरामों के साथ शुरू होने वाले सूत्र कोशिकाओं की तलाश करता है ।
Sub findXLOOKUPs() Dim sht As Worksheet Dim cll As Range Dim foundCells As String Set sht = ActiveSheet For Each cll In sht.UsedRange If cll.HasFormula Then If InStr(cll.Formula, "=XLOOKUP") = 1 Then If UBound(Split(cll.Formula, ","))> 2 Then foundCells = foundCells & vbCrLf & cll.Address End If End If End If Next cll If foundCells = "" Then MsgBox sht.Name & " is not affected with XLOOKUP function structure update.", vbOKOnly + vbInformation, "No errors" Else MsgBox sht.Name & " is likely affected with XLOOKUP function structure update. Please check formulas in the following cells:" & foundCells, vbOKOnly + vbExclamation, "Error(s) found" End If End Sub
रेगेक्स संस्करण
निम्न कोड Regex का उपयोग एक ही सूत्र में उपयोग किए गए कई XLOOKUP कार्यों को खोजने के लिए कर रहा है, या अन्य फ़ंक्शन के साथ उपयोग किए जाने पर अतिरिक्त अल्पविराम हो सकते हैं।
* आपको इस कोड (VBA में उपकरण> संदर्भ) का उपयोग करने के लिए Visual Basic में Microsoft VBScript रेगुलर एक्सप्रेशन संदर्भ जोड़ने की आवश्यकता है।
Sub advancedFindXLOOKUPs() Dim sht As Worksheet Dim cll As Range Dim rgx As RegExp Dim rMatches As Object Dim rMatch As Object Dim foundCells As String Set sht = ActiveSheet Set rgx = New RegExp With rgx .Pattern = "XLOOKUP(((^,))*,)(3,)(^,)*)" .MultiLine = False .IgnoreCase = True .Global = True End With For Each cll In sht.UsedRange If cll.HasFormula Then Set rMatches = rgx.Execute(cll.Formula) If rMatches.Count Then For Each rMatch In rMatches 'Debug.Print rMatch foundCells = foundCells & vbCrLf & cll.Address Next rMatch End If End If Next cll If foundCells = "" Then MsgBox sht.Name & " is not affected with XLOOKUP function structure update.", vbOKOnly + vbInformation, "No errors" Else MsgBox sht.Name & " is likely affected with XLOOKUP function structure update. Please check formulas in the following cells:" & foundCells, vbOKOnly + vbExclamation, "Error(s) found" End If End Sub