Otobiyografik Sayı Olanları Listeleme isimli içerikte, sayı kümesindeki otobiyografik nitelikteli sayıların bulunması öğretilmektedir.
Otobiyografik Sayı, Bir sayının soldan birinci rakamı o sayıda toplam kaç adet “0“ rakamı kullanıldığını, ikinci rakamı o sayıda toplam kaç adet “1“ rakamı kullanıldığını, üçüncü rakamı toplam kaç adet “2“ rakamı kullanıldığını gösteren sayıdır.
Dosyamızda da, bu tanıma uıyan sayıların farklı yöntemlerle nasıl bulunacağı ele alınmaktadır.
Merak edenlere ya da ihtiyacı olanlara faydalı olması temennisiyle.
[TAB]
[TABCHILD=Python]
[/TABCHILD]
[TABCHILD=Formül - Excel 365]
[/TABCHILD]
[TABCHILD=Power Query]
[/TABCHILD]
[TABCHILD=VBA - KTF]
[/TABCHILD]
[/TAB]
Otobiyografik Sayı, Bir sayının soldan birinci rakamı o sayıda toplam kaç adet “0“ rakamı kullanıldığını, ikinci rakamı o sayıda toplam kaç adet “1“ rakamı kullanıldığını, üçüncü rakamı toplam kaç adet “2“ rakamı kullanıldığını gösteren sayıdır.
Dosyamızda da, bu tanıma uıyan sayıların farklı yöntemlerle nasıl bulunacağı ele alınmaktadır.
Merak edenlere ya da ihtiyacı olanlara faydalı olması temennisiyle.
[TAB]
[TABCHILD=Python]
Kod:
[num for num in xl("B5:B12")[0] if all([str(num).count(str(index)) == int(digit) for index, digit in enumerate(str(num))])]
[TABCHILD=Formül - Excel 365]
Kod:
=SÜTUNA(MAP(B5:B12;LAMBDA(b;b/(b=--ARALIKBİRLEŞTİR(UZUNLUK(b)-UZUNLUK(YERİNEKOY(b;SIRALI(UZUNLUK(b))-1;))))));2)
[TABCHILD=Power Query]
Kod:
let
Kaynak = Excel.CurrentWorkbook(){[Name="Tablo1"]}[Content],
Sonuç = Table.SelectRows(Kaynak, each
let
a = Text.From([Sayılar]),
b = List.Transform({0..Text.Length(a)-1},
each Text.Length(Text.Select(a,Text.From(_)))),
c = List.Transform(Text.ToList(a), Number.From)
in c = b)
in
Sonuç
[TABCHILD=VBA - KTF]
Kod:
Function otobiyografik(alan As Range) As Variant
v = alan.Value
ReDim snc(1 To 1, 1 To UBound(v))
For sat = 2 To UBound(v)
kontrol = True: snc(1, 1) = v(1, 1): d = -1
For u = 1 To Len(CStr(v(sat, 1))) - 1
adet = Int(Mid(CStr(v(sat, 1)), u, 1)): d = d + 1
say = Len(CStr(v(sat, 1))) - Len(Replace(CStr(v(sat, 1)), CStr(d), ""))
If say <> adet Then: kontrol = False: Exit For
Next
If kontrol = True Then: s = s + 1: snc(1, s + 1) = CStr(v(sat, 1))
Next
ReDim Preserve snc(1 To 1, 1 To s + 1)
otobiyografik = Application.Transpose(snc)
End Function
[/TAB]