ACİL: Erken Benimseyenler XLOOKUP Formüllerini Kontrol Etmeli - Haberler

İçindekiler

1 Kasım 2019'da çıkan Office Insiders güncellemesindeki XLOOKUP işlevinde heyecan verici bir değişiklik oldu. Birçok Insider, 4 Kasım 2019 Pazartesi günü işe geldiklerinde bu güncellemeyi alacak.

Yeni XLOOKUP işlevini kullanıyorsanız ve Match_Mode bağımsız değişkenini sadece daha büyük veya daha küçük bir değeri aramak için kullandıysanız, mevcut XLOOKUP işlevleriniz bozulacaktır.

XLOOKUP'taki yeni değişiklik: Başlangıçta isteğe bağlı altıncı bağımsız değişken olarak eklenen If_Not_Found bağımsız değişkeni, dördüncü bağımsız değişken olarak taşınmıştır.

Daha önce bir sonraki daha büyük eşleşmeyi isteyen aşağıdaki formülü düşünün:

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

Bunun gibi bir formüle sahip bir çalışma kitabını açtığınızda formül hemen bozulmaz. Excel'in akıllı yeniden hesaplaması, siz formülü düzenleyene kadar veya H2: H99 veya J2: J99'daki sayılardan birini düzenleyene kadar formülü yeniden hesaplamaz.

Ancak, arama tablosunu düzenlediğinizde Excel, tabloyu kullanan tüm XLOOKUP işlevlerini yeniden hesaplar. Değişiklikten önce, bir sonraki daha büyük değeri döndüren bir Yaklaşık Maç istiyordunuz. Değişiklikten sonra, bir Tam Eşleşme (çünkü orijinal formülünüzün beşinci bir bağımsız değişkeni yoktur) ve ayrıca yanlışlıkla tam bir eşleşme bulunamazsa, sonuç olarak bunun yerine 1 eklemek isteyeceğinizi belirtiyorsunuz.

.Com'un yayıncısı Bill Jelen, "Bu gerçekten sinsi bir köstebek vurma oyunu" dedi. Bir formüle bakmak için F2 tuşuna bastığınızda formül çalışmayı durdurur. Çalışma sayfasındaki diğer formüller çalışmaya devam ediyor gibi görünebilir, ancak bunlar, bir yeniden hesaplama tetiklendiğinde yanlış olmayı bekleyen saatli bir bombadır.

Gerçekleşmekte olan değişikliği görmek için bu videodaki 0:35 - 0:55 saniye işaretini izleyin:

Video izle

Office Insiders programına kaydolduğunuzda, Şartlar ve Koşulların 7c paragrafı şöyle diyor: "Hizmetleri veya özelliklerini bir önizleme veya beta sürümde yayınlayabiliriz, bu da düzgün çalışmayabilir veya son sürümle aynı şekilde çalışabilir . "

Excel ekibi, isteğe bağlı bağımsız değişkenleri kullanan tüm XLOOKUP formüllerini ayarlamanız gerektiğini önerir. XLOOKUP'u sık sık kullanıyorsanız, aşağıdaki kod bir çalışma kitabını inceleyecek ve olası sorunlu formülleri tanımlayacaktır.

Temel Sürüm

Aşağıdaki kod, =XLOOKUP2'den fazla virgülle başlayan ve içeren formül hücrelerini arar .

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 Sürümü

Aşağıdaki kod, aynı formülde kullanılan birden çok XLOOKUP işlevini bulmak için Regex kullanıyor veya diğer işlevlerle birlikte kullanılan ek virgül içerebilir.

* Bu kodu kullanmak için Visual Basic'te Microsoft VBScript Normal İfadeler başvurusu eklemeniz gerekir (VBA'da Araçlar> Başvurular).

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

Ilginç makaleler...