Ayni iki sehir arasindaki degerleri sayma

tirimini

Altın Üye
Katılım
8 Kasım 2013
Mesajlar
29
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
14-02-2025
Merhaba bir sorum okacak yardimci olabilirseniz sevinirim.
Tekrar eden Iki sehir arasindaki kalan degerleri saymasini ve hucrelere yazmasini istiyorum
Ornegin:A KOLONUNDA
ANKARA
Istanbul
Izmir
Adana
Bursa
ANKARA
Ordu
Samsun
ANKARA
Balikesir
Aydin
Nazilli
Uşak
Afyon
Antalya
ANKARA
Mersin
Kahramanmaras
Buradaki ornekte goreceginiz uzere
B1 hucresine ANKARA yazdigimda
"C1"Hucresine ilk ANKARA ile 2.ANKARA arasinda yer alan 4 Sehiri sayip "C1" Hucresine 4 yazacak
Sonra
"D1"Hucresine 2.ANKARA ile 3.ANKARA arasinda yer alan 2 sehiri sayip "D1" Hucresine 2 yazacak
Sonra
"E1" Hucresine 3.ANKARA ile 4.ANKARA arasinda yer alan 5 ili sayip "E1"Hucresine 5 yazacak.Eğer bu zor olacak ise
Alternatif olarak;
ANKARA illeri arasindaki en cok araligi olan rakamida yazsa olur.
Iki ANKARA Arasindaki en fazla deger olan "5" Rakamini "F1"Hucresine yazabilir.
Desteginiz ve yardiminiz icin simdiden cok tesekkur ederim.Iyi gunler dilerim.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
559
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Sub ŞehirFarkHesapla()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long, j As Long
Dim şehir As String
Dim fark As Long
Dim outputColumn As Long

Set ws = ThisWorkbook.Sheets("Sayfa1")

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
outputColumn = 3 ' Çıktıların yazılacağı sütun

For i = 1 To lastRow
şehir = ws.Cells(i, 1).Value
fark = 0

For j = i + 1 To lastRow
If ws.Cells(j, 1).Value = şehir Then
Exit For
End If
Next j

If j <= lastRow Then
fark = j - i - 1
End If

If fark <> 0 Then
ws.Cells(1, outputColumn).Value = fark
outputColumn = outputColumn + 1
End If
Next i
End Sub

Deneyiniz
 

tirimini

Altın Üye
Katılım
8 Kasım 2013
Mesajlar
29
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
14-02-2025
Sub ŞehirFarkHesapla()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long, j As Long
Dim şehir As String
Dim fark As Long
Dim outputColumn As Long

Set ws = ThisWorkbook.Sheets("Sayfa1")

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
outputColumn = 3 ' Çıktıların yazılacağı sütun

For i = 1 To lastRow
şehir = ws.Cells(i, 1).Value
fark = 0

For j = i + 1 To lastRow
If ws.Cells(j, 1).Value = şehir Then
Exit For
End If
Next j

If j <= lastRow Then
fark = j - i - 1
End If

If fark <> 0 Then
ws.Cells(1, outputColumn).Value = fark
outputColumn = outputColumn + 1
End If
Next i
End Sub

Deneyiniz
Tekrar merhaba cevabiniz icin cok tesekkur ederim.Makro yerine formul ile yapmak mumkun mu?😇
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,330
Excel Vers. ve Dili
2007 Türkçe
Merhaba,
C1 hücresine aşağıdaki formülü uygulayıp sağa çekerek çoğaltınız.
Kod:
=KAÇINCI($B$1;KAYDIR($A$1;KAÇINCI($B$1;$A:$A;0)+TOPLA($B1:B1)+SÜTUNSAY($B1:B1)-1;0;100);0)-1
 

tirimini

Altın Üye
Katılım
8 Kasım 2013
Mesajlar
29
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
14-02-2025
Merhaba,
C1 hücresine aşağıdaki formülü uygulayıp sağa çekerek çoğaltınız.
Kod:
=KAÇINCI($B$1;KAYDIR($A$1;KAÇINCI($B$1;$A:$A;0)+TOPLA($B1:B1)+SÜTUNSAY($B1:B1)-1;0;100);0)-1
Merhaba
Cevabiniz için cok tesekkur ederim.
Elinize emeginize saglik iyi ki bu forum sitesi kurulmus.Tekrar tesekkur eder iyi gunler dilerim.
 

ÖmerBey

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2012
Mesajlar
4,330
Excel Vers. ve Dili
2007 Türkçe
Rica ederim,
İyi çalışmalar...
 
Üst