SÜRGŐ: A korai alkalmazóknak ellenőrizniük kell az XLOOKUP képletüket - Hírek

Izgalmas változás történt az Office Insiders frissítésének XLOOKUP funkciójában, amely 2019. november 1-jén jelent meg. Sok bennfentes megkapja ezt a frissítést, amikor 2019. november 4-én, hétfőn munkába érkeznek.

Ha az új XLOOKUP függvényt használta, és ha a Match_Mode argumentummal kereste az éppen nagyobb vagy éppen kisebb értéket, akkor a meglévő XLOOKUP függvények meg fognak törni.

Az új változás az XLOOKUP-ra: az If_Not_Found argumentum, amelyet eredetileg opcionális hatodik argumentumként adtak hozzá, a negyedik argumentummá vált.

Vegye figyelembe a következő képletet, amely korábban a következő nagyobb mérkőzést kérte:

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

Amikor ilyen képlettel nyit meg egy munkafüzetet, a képlet nem szakad meg azonnal. Az Excel intelligens újraszámítása addig nem számolja újra a képletet, amíg nem szerkeszti a képletet, vagy amíg nem szerkeszti a H2: H99 vagy J2: J99 egyik számát.

A keresőtábla szerkesztése után azonban az Excel újraszámolja a táblázatot használó XLOOKUP összes funkcióját. A változás előtt körülbelüli egyezést kért, amely a következő nagyobb értéket adta vissza. A változás után pontos egyezést kér (mivel az eredeti képletnek nincs ötödik argumentuma), és véletlenül megadja azt is, hogy ha nem található pontos egyezés, akkor eredményként 1-et akar beilleszteni.

"Ez valóban egy alattomos játék, a verés-egy-vakond játék" - mondta Bill Jelen, az.com kiadója. Az F2 megnyomásával megnézheti a képletet, és a képlet leáll. Úgy tűnhet, hogy a munkalap más képletei továbbra is működnek, de ezek egy ketyegő időzített bomba, amely arra vár, hogy téves legyen, amikor az újraszámítást elindítják. "

A változás bekövetkezéséhez nézze meg a videó 0: 35-től 0: 55-ig terjedő másodpercét:

Videót nézni

Amikor feliratkozik az Office Insiders programra, az Általános Szerződési Feltételek 7c. Bekezdése kimondja, hogy "Feladhatjuk a Szolgáltatásokat vagy azok szolgáltatásait előnézetben vagy béta verzióban, amelyek nem biztos, hogy megfelelően működnek, vagy ugyanúgy működhet, mint a végleges verzió. . "

Az Excel csapata azt tanácsolja, hogy módosítsa azokat az XLOOKUP-képleteket, amelyek az opcionális argumentumokat használták. Ha gyakran használta az XLOOKUP alkalmazást, a következő kód megvizsgálja a munkafüzetet, és azonosítja a lehetséges problémaképleteket.

Basic Version

A következő kód megkeresi a képlet cellákat, =XLOOKUPamelyek több mint 2 vesszővel kezdődnek és tartalmaznak.

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 verzió

A következő kód a Regex használatával több, ugyanazon képletben használt, vagy más függvényekkel együtt használt XLOOKUP függvények megkeresésére további vesszőket tartalmazhat.

* A kód használatához hozzá kell adnia a Microsoft VBScript rendszeres kifejezések referenciáját a Visual Basic-ben (Eszközök> Referenciák a VBA-ban).

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

érdekes cikkek...