KIIRESTI: Varased kasutuselevõtjad peaksid kontrollima oma XLOOKUP-valemeid - uudised

1. novembril 2019 ilmunud Office Insideri värskenduse XLOOKUP funktsiooniga juhtus põnev muudatus. Paljud siseringi töötajad saavad selle värskenduse tööle saabudes esmaspäeval, 4. novembril 2019.

Kui olete kasutanud uut funktsiooni XLOOKUP ja kui kasutasite argumenti Match_Mode, et otsida väärtust lihtsalt suurem või väiksem, lähevad teie olemasolevad funktsioonid XLOOKUP katki.

Uus muudatus versioonile XLOOKUP: If_Not_Found argument, mis lisati algselt valikulise kuuenda argumendina, on teisaldatud neljandaks argumendiks.

Mõelge järgmisele valemile, mis varem küsis järgmist suuremat vastet:

=XLOOKUP(A2,H2:H99,J2:J99,1)

Sellise valemiga töövihiku avamisel ei purune valem kohe. Exceli intelligentne ümberarvutamine ei arvuta valemit enne, kui muudate valemit või kuni muudate ühte numbritest H2: H99 või J2: J99.

Kui olete aga muutnud otsingu tabelit, arvutab Excel uuesti kõik tabelit kasutanud funktsioonid XLOOKUP uuesti. Enne muudatust küsisite ligikaudset vastet, mis tagastaks järgmise suurema väärtuse. Pärast muudatust palute täpset vastet (kuna teie algsel valemil pole viiendat argumenti) ja täpsustate kogemata ka seda, et kui täpset vastet ei leita, siis soovite selle asemel sisestada tulemuseks 1.

"See on tõepoolest salakaval möllimängu mäng," sõnas.com.com väljaandja Bill Jelen. Valemi vaatamiseks vajutate klahvi F2 ja valem lakkab töötamast. Teised töölehel olevad valemid võivad näida töötavat, kuid need on tiksuv viitsütik, mis ootab uuesti arvutamise käivitamisel valeks muutumist. "

Muutuse toimumise nägemiseks vaadake 0:35 kuni 0:55 sekundit selles videos:

Vaata videot

Kui registreerute programmi Office Insidersi liikmeks, on nõuete ja tingimuste paragrahvis 7c öeldud, et "Võime teenused või nende funktsioonid välja anda eelvaate või beetaversioonina, mis ei pruugi töötada õigesti või samamoodi nagu lõplik versioon võib töötada . "

Exceli meeskond soovitab kohandada kõiki XLOOKUP-i valemeid, mis valikulisi argumente kasutasid. Kui olete XLOOKUP-i sageli kasutanud, uurib järgmine kood töövihikut ja tuvastab võimalikud probleemivalemid.

Põhiversioon

Järgmine kood otsib valemirakke, mis algavad =XLOOKUPja sisaldavad rohkem kui 2 koma.

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

Regexi versioon

Järgmine kood kasutab Regexi, et leida mitu funktsiooni XLOOKUP, mida kasutatakse samas valemis või mida kasutatakse koos teiste funktsioonidega, võivad sisaldada täiendavaid komasid.

* Selle koodi kasutamiseks peate Visual Basicusse lisama Microsofti VBScript regulaaravaldiste viite (Tööriistad> Viited VBA-s).

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

Huvitavad Artiklid...