Excel’de ilk veya son pozitif ya da negatif sayıyı nasıl bulabilirim?
Hem pozitif hem de negatif değerler içeren bir sütunla çalışırken, aralıktaki ilk veya son pozitif ya da negatif sayıyı hızlıca belirlemeniz gerekebilir. Bu, özellikle veri analizi, trend tespiti veya büyük veri kümelerinde belirli giriş noktalarını tanımlama açısından son derece yararlıdır. Büyük veri kümelerinde manuel inceleme hem güvenilmez hem de verimsizdir. Neyse ki Excel, bu süreci kolaylaştırmak için birkaç pratik yöntem sunar; böylece formüller veya otomasyon yardımıyla ihtiyacınız olan tam değerleri doğrudan elde edebilirsiniz. Aşağıda, farklı senaryolara uygun çoklu çözüm seçeneği bulacaksınız; bunlar arasında tekrarlı veya büyük ölçekli işlemler için ideal olan gelişmiş yaklaşımlar da yer almaktadır.
Dizi formülüyle ilk pozitif / negatif sayıyı bulun
Dizi formülüyle son pozitif / negatif sayıyı bulun
İlk / son pozitif / negatif sayıyı bulmak için VBA makrosu
Dizi formülüyle ilk pozitif / negatif sayıyı bulun
Excel’in dizi formüllerini kullanarak bir değer serisindeki ilk pozitif ya da negatif sayıyı kolayca çıkarabilirsiniz. Bu yöntem, ek eklentilerin veya makroların kullanılamadığı ortamlarda, yalnızca formüllerle çalışan ve orta düzeyde karmaşıklıkta hızlı bir çözüm arayan kullanıcılar için idealdir. Dizi yaklaşımı, kaynak veri değiştiğinde otomatik olarak güncellenir; böylece dinamik listelerle çalışırken büyük kolaylık sağlar. Uygulama yöntemi şu şekildedir:
1. Boş bir hücre seçin ve ilk pozitif sayıyı almak için aşağıdaki dizi formülünü girin:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>,0,0)) Burada, A2:A18 arama yapmak istediğiniz veri listesini temsil eder. Bu formül, 0’dan büyük olan ilk hücreyi aralıktan bulur ve içeriğini döndürür. Aşağıdaki ekran görüntüsüne göz atın:

2. Formülü yazdıktan sonra, yalnızca Enter tuşuna basmak yerine Ctrl + Shift + Enter tuşlarına aynı anda basın. Böylece dizi formülü doğru şekilde çalıştırılır ve listenizden ilk pozitif sayı örnekteki gibi döndürülür:

İpucu:İlk negatif sayıyı almak için bunun yerine aşağıdaki formülü kullanın (yazdıktan sonra)Ctrl + Shift + Entertuşlarına bastığınızı unutmayın):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<,0,0)) Her iki formülde de koşulu değiştirmek ()>0 pozitif sayılar için, <0 negatif sayılar için) istediğiniz sayı türünü hedeflemenizi sağlar. Dizi formüllerinin boş hücre referanslarını desteklemediğini unutmayın; bu nedenle tutarlı sonuçlar almak için Veri Aralığı’nın boş hücre içermemesine dikkat edin. Tüm sayılar yalnızca pozitif veya yalnızca negatifse formül bir hata döndürebilir—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ı), Ctrl + Shift + Enter kullanmanız gerekmiyor olabilir; dinamik dizi desteği sayesinde yalnızca Enter tuşuna basmak yeterli olabilir.
Dizi formülüyle son pozitif / negatif sayıyı bulun
Amacınız bir sütundaki son pozitif veya negatif değeri belirlemekse, farklı bir dizi formülü kullanabilirsiniz. Bu yaklaşım, bitiş trendlerini hızlıca analiz etmek ya da “Tür Belirtin” alanının en güncel veri noktasını bulmak için idealdir. Unutmayın, bu yöntem veri güncellemelerini dinamik olarak yansıtır; özellikle listeye düzenli olarak yeni sayılar eklediğinizde büyük değer sağlar.
1. Son pozitif sayıyı bulmak için veri sütununuzun hemen yanındaki boş bir hücreyi seçin ve aşağıdaki dizi formülünü girin:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >,0, $A$2:$A$18)) Bu formül, aşırı büyük bir sayı için son sayısal eşleşmeyi döndürme davranışıyla LOOKUP fonksiyonundan yararlanır. Burada IF($A$2:$A$18 >0, $A$2:$A$18) yalnızca pozitif sayıları filtreler ve LOOKUP ardından son oluşumu döndürür. Aşağıda görsel olarak gösterilmiştir:

2. Formülü onaylamak için Ctrl + Shift + Enter tuşlarına basın (Excel sürümünüz dinamik dizileri desteklemiyorsa). Sonuç, aşağıdaki örnekte gösterildiği gibi Sınırlı aralıkta yer alan son pozitif değeri gösterecektir:

Son negatif sayıyı döndürmek için, bunun yerine aşağıdaki dizi formülünü kullanın ve yine Ctrl + Shift + Entertuşlarına basın:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <,0, $A$2:$A$18)) Hiç pozitif ya da negatif değer bulunamazsa, formül bir hata döndürür ()#N/A). Bu tür durumları sorunsuz yönetmek için formülü IFERROR içine alın. Örneğin:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >,0, $A$2:$A$18)), "No match found") Aralığınızda birleştirilmiş hücreler veya metin/sayı karışık biçimler bulunmamasına dikkat edin; çünkü bunlar formülün hesaplama sonuçlarını bozabilir. En iyi doğruluk için bu yöntemleri kullanmadan önce veri bütünlüğünüzü her zaman kontrol edin.
İlk / son pozitif / negatif sayıyı bulmak için VBA makrosu
Birden fazla aralıkta veya çok büyük veri kümelerinde sık sık ilk ya da son pozitif/negatif sayıyı bulmanız gerekiyorsa, bu işlemi bir VBA makrosuyla otomatikleştirmek önemli ölçüde zaman kazandırır ve manuel hataları en aza indirir. Bu çözüm, istediğiniz bir aralığı seçmenizi sağlar ve anında ilgili değeri getirir; bu da toplu işlemler veya tekrarlı analitik görevler için idealdir. VBA yaklaşımı, karmaşık kriterler veya özelleştirilmiş iş akışları gerektiğinde özellikle faydalıdır; ancak temel düzeyde Excel’in Geliştirici araçlarına aşinalık gerektirir.
1. Geliştirici > Visual Basic seçeneğine tıklayarak Microsoft Visual Basic for Applications penceresini açın. Ardından VBA düzenleyicide Ekle > Modül seçeneğine 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 2. Makroyu çalıştırmak için F5tuş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ü girin: FirstPos ilk pozitif sayı için, FirstNeg ilk negatif sayı için, LastPos son pozitif sayı için veya LastNeg son negatif sayı için (büyük/küçük harf duyarlı değildir).
- Seçiminizi girdikten ve onayladıktan sonra sonuç, bir ileti kutusunda görüntülenecektir.
İpuçları:
- Bu makro, kullanıcı tarafından seçilen herhangi bir bitişik sayı aralığını işleyebilir; böylece veri düzeninde esneklik sunar.
- Belirtilen tür, aralıktaki hiçbir sayı ile eşleşmezse, bir hata almak yerine bir bildirim alırsınız.
- VBA kodunun sorunsuz çalışması için Excel’de makroların etkin olduğundan emin olun.
- Verileriniz sayısal olmayan değerler içeriyorsa, makro bu değerleri işleme sırasında görmezden gelir.
Sorun Giderme ve Öneriler: Tüm çözümler için, seçiminizin hedeflenen aralığı içerdiğinden ve başlıkları kapsamadığından her zaman emin olun. Özellikle dizi formülleri veya makrolar kullanırken büyük aralıklardan kaynaklanan hesaplama ya da performans gecikmelerini önlemek adına aralık boyutunu sınırlandırmayı düşünün.
Bu görevi sık sık yapıyorsanız veya daha fazla özelleştirme istiyorsanız, makronuza birden fazla kriteri birleştirme veya daha kolay erişim için özel bir düğme oluşturma özelliğini eklemeyi düşünün. Yeni VBA betiklerini denemeden önce her zaman çalışmalarınızı kaydedin; programlamaya yeni başladıysanız, testleri yedek kopyalarınız üzerinde gerçekleştirin.
İlgili makaleler:
Excel’de X’ten büyük olan ilk veya son değeri nasıl bulabilirim?
Excel’de bir satırdaki en yüksek değeri ve ilgili sütun başlığını nasıl bulabilirim?
Excel’de en yüksek değeri bulduktan sonra bitişik hücrenin değerini nasıl döndürebilirim?
Excel’de belirli kriterlere göre maksimum veya minimum değeri nasıl bulabilirim?
En İyi Office Üretkenlik Araçları
Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
- Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir kurulum dosyasında!
Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar