Aizraujošas izmaiņas notika saistībā ar funkciju XLOOKUP Office Insiders atjauninājumā, kas nāca klajā 2019. gada 1. novembrī. Daudzi iekšējie lietotāji šo atjauninājumu saņems, ierodoties darbā pirmdien, 2019. gada 4. novembrī.
Ja esat izmantojis jauno funkciju XLOOKUP un ja izmantojat argumentu Match_Mode, lai meklētu vērtību tikai lielāku vai tikai mazāku, jūsu esošās funkcijas XLOOKUP pārtrauks.
Jaunās izmaiņas XLOOKUP: If_Not_Found arguments, kas sākotnēji tika pievienots kā izvēles sestais arguments, ir pārvietots kā ceturtais arguments.
Apsveriet šādu formulu, kurā iepriekš tika prasīts nākamais lielākais mačs:
=XLOOKUP(A2,H2:H99,J2:J99,1)
Atverot darbgrāmatu ar šādu formulu, formula nekavējoties nesadalās. Excel inteliģentais pārrēķins nepārrēķinās formulu, kamēr nav rediģēts formula vai kamēr nav rediģēts viens no numuriem H2: H99 vai J2: J99.
Tomēr, rediģējot uzmeklēšanas tabulu, programma Excel pārrēķina visas funkcijas XLOOKUP, kurās tika izmantota tabula. Pirms izmaiņām jūs pieprasījāt aptuveno atbilstību, kas atgrieza nākamo lielāko vērtību. Pēc izmaiņām jūs pieprasāt precīzu atbilstību (jo jūsu sākotnējai formulai nav piektā argumenta) un arī nejauši norādāt, ka, ja precīza atbilstība nav atrasta, tā vietā vēlaties ievietot rezultātu 1.
"Tā patiešām ir mānīga spēle ar kurmjiem," sacīja.com izdevējs Bils Jelens. Nospiežat taustiņu F2, lai apskatītu formulu, un formula vairs nedarbojas. Iespējams, ka citas darblapas formulas turpina darboties, taču tās ir atzīmējama laika bumba, kas gaida kļūdu, kad tiek aktivizēts pārrēķins. "
Lai redzētu izmaiņas, skatieties no 0:35 līdz 0:55 sekundes atzīmi šajā videoklipā:
Skatīties video
Reģistrējoties programmā Office Insiders, Noteikumu un nosacījumu 7.c punktā teikts, ka "Mēs varam atbrīvot Pakalpojumus vai to funkcijas priekšskatījuma vai beta versijā, kas var nedarboties pareizi vai tādā pašā veidā, kā var darboties galīgā versija. . "
Excel komanda iesaka pielāgot visas XLOOKUP formulas, kurās tika izmantoti izvēles argumenti. Ja XLOOKUP izmantojat bieži, šis kods pārbaudīs darbgrāmatu un identificēs iespējamās problēmu formulas.
Pamata versija
Šis kods meklē formulas šūnas, kas sākas ar =XLOOKUP
un satur vairāk nekā 2 komatus.
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 versija
Šis kods izmanto Regex, lai atrastu vairākas funkcijas XLOOKUP, kuras tiek izmantotas vienā formulā vai tiek izmantotas kopā ar citām funkcijām, var ietvert papildu komatus.
* Lai izmantotu šo kodu, Visual Basic jāpievieno Microsoft VBScript regulāro izteiksmju atsauce (Rīki> Atsauces VBA).
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