Excel'de ilk / son pozitif / negatif sayıyı nasıl bulabilirim?
Hem pozitif hem de negatif değerler içeren bir sayı sütunuyla çalışırken, genellikle aralıktaki ilk veya son pozitif veya negatif sayıyı hızlıca bulmanız gerekebilir. Bu, özellikle veri analizi, trend tespiti veya büyük veri setlerinde belirli giriş noktalarını belirleme için faydalı olabilir. Büyük veri setleri için manuel incelemeye dayanmak verimsizdir ve hata yapmaya açıktır. Neyse ki, Excel bu görevi kolaylaştırmak için birkaç pratik yöntem sunar, formüller veya otomasyonlarla ihtiyacınız olan kesin değerleri çıkarmanıza olanak tanır. Aşağıda, tekrarlanan veya büyük ölçekli işlemler için ideal olan gelişmiş yaklaşımlar da dahil olmak üzere farklı senaryolar için uygun birden fazla çözüm bulacaksınız.
Dizi formülü ile ilk pozitif / negatif sayıyı bulma
Dizi formülü ile son pozitif / negatif sayıyı bulma
İlk / son pozitif / negatif sayıyı bulmak için VBA makrosu
Dizi formülü ile ilk pozitif / negatif sayıyı bulma
Bir dizi değerden ilk pozitif veya negatif sayıyı çıkarmak için Excel'in dizi formüllerini kullanabilirsiniz. Bu yöntem, ek eklentiler veya makroların kısıtlandığı ortamlarda formüllere hakim olan ve orta büyüklükteki veri aralıkları için hızlı bir çözüm arayan kullanıcılar için uygundur. Dizi yaklaşımı, kaynak verileriniz değişirse otomatik olarak güncellenir, bu da onu dinamik listeler için oldukça uygun hale getirir. İşte bunu nasıl uygulayabileceğiniz:
1. Boş bir hücre seçin ve aşağıdaki dizi formülünü girerek ilk pozitif sayıyı elde edin:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0))
Burada A2:A18, arama yapmak istediğiniz veri listesine karşılık gelir. Bu formül, 0'dan büyük bir değere sahip olan aralıktaki ilk hücreyi bulur ve ardından o hücrenin içeriğini döndürür. Aşağıdaki ekran görüntüsüne bakın:
2. Formülü yazdıktan sonra Enter tuşuna basmak yerine Ctrl + Shift + Enter tuşlarına aynı anda basın. Bu, dizi formülünü doğru bir şekilde çalıştırır ve listenizden ilk pozitif sayıyı aşağıdaki örnekte gösterildiği gibi döndürür:
İpucu: İlk negatif sayıyı almak için şu formülü kullanın (yazdıktan sonra Ctrl + Shift + Enter tuşlarına basmayı unutmayın):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0))
Her iki formülde de koşulu değiştirerek (>0
pozitif, <0
negatif) hedeflediğiniz sayı türünü elde edebilirsiniz. Lütfen dizi formüllerinin boş hücre referanslarını desteklemediğini unutmayın, bu nedenle tutarlı sonuçlar için veri aralığınızın boş hücreler içermediğinden emin olun. Tüm sayılar ya pozitif ya da negatif ise formül bir hata verebilir—hataları bastırmak ve özel bir mesaj görüntülemek istiyorsanız IFERROR
fonksiyonunu eklemeyi düşünün.
Not: Excel'in son sürümlerinde (Office 365 ve Excel 2021 ve sonrası), dinamik diziler desteği nedeniyle Ctrl + Shift + Enter kullanmanıza gerek olmayabilir; yalnızca Enter tuşuna basmak yeterli olabilir.
Dizi formülü ile son pozitif / negatif sayıyı bulma
Amacınız bir sütundaki son pozitif veya negatif değeri belirlemekse, farklı bir dizi formülü kullanabilirsiniz. Bu yaklaşım, bitiş eğilimlerini hızlıca analiz etmek veya belirli bir türden en son veri noktasını bulmak için uygundur. Bu yöntemin veri güncellemelerini dinamik olarak yansıttığını unutmayın, bu özellikle listeye düzenli olarak yeni sayılar eklediğinizde değerlidir.
1. Veri sütununuzun yanındaki boş bir hücre seçin ve aşağıdaki dizi formülünü girerek son pozitif sayıyı bulun:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18))
Bu formül, LOOKUP
'un çok büyük bir sayı için bulunan son sayısal eşleşmeyi döndürme davranışından yararlanır. Burada IF($A$2:$A$18 >0, $A$2:$A$18)
yalnızca pozitif sayıları filtreler ve LOOKUP
daha sonra son oluşumu döndürür. Bunu aşağıda görebilirsiniz:
2. Formülü onaylamak için Ctrl + Shift + Enter tuşlarına basın (Excel sürümünüz dinamik dizileri destekliyorsa gerekli olmayabilir). Sonuç, aşağıdaki gibi belirtilen aralıktaki son pozitif değeri gösterecektir:
Son negatif sayıyı döndürmek için, aşağıdaki dizi formülünü de Ctrl + Shift + Enter ile kullanın:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18))
Hiçbir pozitif veya negatif değer bulunamazsa, formül bir hata (#YOK
) döndürür. Bu tür durumlarla zarif bir şekilde başa çıkmak için formülü IFERROR
ile sarın. Örneğin:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found")
Formülün hesaplama sonuçlarını bozabileceği için aralığınızda birleştirilmiş hücreler veya birleştirilmiş metin/sayı formatlarından kaçının. Bu yöntemleri kullanmadan önce veri bütünlüğünü her zaman doğrulayın.
İlk / son pozitif / negatif sayıyı bulmak için VBA makrosu
Eğer birden fazla aralıkta veya çok büyük veri setlerinde ilk veya son pozitif/negatif sayıyı bulma ihtiyacı sıkça duyuyorsanız, bu görevi bir VBA makrosu ile otomatikleştirmek önemli ölçüde zaman kazandırabilir ve elle yapılan hataları azaltabilir. Bu çözüm, seçilen bir aralığı tarayıp gerekli değeri anında almanızı sağlar, bu da toplu işlem veya tekrarlayan analitik görevler için idealdir. VBA yaklaşımı, özellikle karmaşık kriterler veya özelleştirilmiş iş akışları gerektiren senaryolarda faydalıdır, ancak Excel’in Geliştirici araçlarına temel düzeyde aşina olmayı gerektirir.
1. Geliştirici > Visual Basic'e tıklayarak Microsoft Visual Basic for Applications penceresini açın. Ardından, VBA düzenleyicisinde Ekle > Modül'e tıklayın ve aşağıdaki kodu yeni modüle kopyalayın:
Sub FindFirstOrLastPosNegNumber()
Dim rng As Range
Dim cell As Range
Dim result As Variant
Dim firstPos As Variant, firstNeg As Variant
Dim lastPos As Variant, lastNeg As Variant
Dim selType As String
On Error Resume Next
Set rng = Application.InputBox("Select the data range", "KutoolsforExcel", Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
selType = Application.InputBox("Type 'FirstPos' for first positive, 'FirstNeg' for first negative, 'LastPos' for last positive, or 'LastNeg' for last negative:", "KutoolsforExcel", "FirstPos", Type:=2)
If selType = "" Then Exit Sub
firstPos = Empty
firstNeg = Empty
lastPos = Empty
lastNeg = Empty
' Find first positive and first negative
For Each cell In rng
If IsNumeric(cell.Value) Then
If firstPos = Empty And cell.Value > 0 Then
firstPos = cell.Value
End If
If firstNeg = Empty And cell.Value < 0 Then
firstNeg = cell.Value
End If
If cell.Value > 0 Then
lastPos = cell.Value
End If
If cell.Value < 0 Then
lastNeg = cell.Value
End If
End If
Next cell
Select Case UCase(selType)
Case "FIRSTPOS"
result = firstPos
Case "FIRSTNEG"
result = firstNeg
Case "LASTPOS"
result = lastPos
Case "LASTNEG"
result = lastNeg
Case Else
result = "Invalid input"
End Select
If IsEmpty(result) Then
MsgBox "No matching value found in the selected range.", vbInformation, "KutoolsforExcel"
Else
MsgBox "Result: " & result, vbInformation, "KutoolsforExcel"
End If
End Sub
2Makroyu çalıştırmak için F5 tuşuna basın (veya Çalıştır düğmesine tıklayın) ve aşağıdaki adımları izleyin:
- Bir iletişim kutusu, sayı aralığınızı seçmenizi isteyecektir (örneğin, A2:A18).
- Ardından, arama türünüzü girin: İlk pozitif sayı için FirstPos, ilk negatif sayı için FirstNeg, son pozitif sayı için LastPos veya son negatif sayı için LastNeg yazın (büyük/küçük harf duyarlı değildir).
- Seçiminizi yaptıktan ve onayladıktan sonra, sonuç bir ileti kutusunda gösterilecektir.
İpuçları:
- Bu makro, kullanıcı tarafından seçilen herhangi bir bitişik sayı aralığıyla çalışabilir, bu da veri düzeninde esneklik sağlar.
- Belirtilen tür, aralıktaki hiçbir sayı ile eşleşmiyorsa, bir hata yerine bildirim alırsınız.
- VBA kodunun çalışması için Excel’de makroların etkin olduğundan emin olun.
- Verileriniz sayısal olmayan değerler içeriyorsa, makro bunları işleme sırasında göz ardı edecektir.
Sorun giderme ve öneriler: Tüm çözümler için, seçiminizin amaçlanan aralığı içerdiğini ve başlıkları içermemesini her zaman doğrulayın. Büyük aralıklar kullanıyorsanız, özellikle dizi formülleri veya makrolar kullandığınızda hesaplama veya performans gecikmelerini önlemek için boyutu sınırlamayı düşünün.
Eğer bu görevi sık sık yapıyorsanız veya daha fazla özelleştirme istiyorsanız, makronuzda birden fazla kriteri birleştirmeyi veya daha kolay erişim için özel bir düğme oluşturmayı düşünebilirsiniz. Yeni VBA betiklerini denemeden önce her zaman çalışmanızı kaydedin ve programlamaya yeniyseniz yedek kopyalarda test edin.
İlgili makaleler:
Excel'de X'ten büyük ilk / son değeri nasıl bulabilirim?
Excel'de bir satırdaki en yüksek değeri ve sütun başlığını nasıl bulup döndürebilirim?
Excel'de en yüksek değeri ve bitişik hücre değerini nasıl bulabilirim?
Excel'de kritere göre maksimum veya minimum değeri nasıl bulabilirim?
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi güçlendirin ve benzersiz bir verimlilik deneyimi yaşayın. Kutools for Excel, üretkenliği artırmak ve zamandan tasarruf etmek için300'den fazla Gelişmiş Özellik sunuyor. İhtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Ofis uygulamalarına sekmeli arayüz kazandırır ve işinizi çok daha kolaylaştırır.
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma işlevini etkinleştirin.
- Yeni pencereler yerine aynı pencerede yeni sekmelerde birden fazla belge açıp oluşturun.
- Verimliliğinizi %50 artırır ve her gün yüzlerce mouse tıklaması azaltır!
Tüm Kutools eklentileri. Tek kurulum
Kutools for Office paketi, Excel, Word, Outlook & PowerPoint için eklentileri ve Office Tab Pro'yu bir araya getirir; Office uygulamalarında çalışan ekipler için ideal bir çözümdür.





- Hepsi bir arada paket — Excel, Word, Outlook & PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans — dakikalar içinde kurulun (MSI hazır)
- Birlikte daha verimli — Ofis uygulamalarında hızlı üretkenlik
- 30 günlük tam özellikli deneme — kayıt yok, kredi kartı yok
- En iyi değer — tek tek eklenti almak yerine tasarruf edin