• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Tarih formülü

Katılım
11 Ocak 2021
Mesajlar
26
Excel Vers. ve Dili
2007 Türkçe
Merhabalar;
Tarihi ay - yıl formatında büyük harfle harfler arasında boşluk bırakarak nasıl yazılabilir?
 
O C A K - 2021
O C A K - 2 0 2 1
O C A K - İ K i B İ N Y İ R M İ B İ R
bunlardan biri mi?
 
Excel'in formülleriyle yapmak zor, VBA'de "Regular Expressions" kullanarak yapılabilir....

C#:
Function yazTarih()
'   Haluk - 07/02/2021
'   https://excelhaluk.blogspot.com/

    Dim reg As Object
  
    myDate = UCase(Format(Date, "mmmm yyyy"))
  
    If reg Is Nothing Then
        Set reg = CreateObject("VBScript.RegExp")
        reg.Pattern = "(.)"
        reg.Global = True
    End If
  
    yazTarih = UCase(reg.Replace(myDate, "$1 "))
End Function


Sayfada herhangibir hücreye aşağıdaki gibi formülü girin;

C#:
=yazTarih()


Sonuç, şöyle çıkar;

C#:
Ş U B A T   2 0 2 1



.
 
Deneyiniz.

Kullanıcı tanımlı fonksiyondur. Kodu boş bir modüle uygulayıp kullanabilirsiniz.

Örnek kullanım şekilleri;

=K_TARİH(BUGÜN())
=K_TARİH("07.02.2021")
=K_TARİH(A1)


C++:
Option Explicit

Function K_TARİH(Tarih As Variant) As String
    Dim Metin As String, X As Byte
    
    Application.Volatile True
    
    Metin = Format(Tarih, "mmmm-yyyy")
    
    ReDim Veri(1 To 1)
    
    For X = 1 To Len(Metin)
        ReDim Preserve Veri(1 To X)
        Veri(X) = Mid(Metin, X, 1)
    Next
    
    K_TARİH = Evaluate("UPPER(""" & Join(Veri, " ") & """)")
End Function
 
Bu da fonksiyonlarla alternatif;

A1 hücresinde yazan tarihi istediğiniz biçime dönüştürecektir.

C++:
=EĞER(A1="";"";BÜYÜKHARF(KIRP(PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");1;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");2;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");3;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");4;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");5;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");6;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");7;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");8;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");9;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");10;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");11;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");12;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");13;1)&" "&PARÇAAL(METNEÇEVİR(A1;"aaaa - yyy");14;1))))
 
S
Deneyiniz.

Kullanıcı tanımlı fonksiyondur. Kodu boş bir modüle uygulayıp kullanabilirsiniz.

Örnek kullanım şekilleri;

=K_TARİH(BUGÜN())
=K_TARİH("07.02.2021")
=K_TARİH(A1)


C++:
Option Explicit

Function K_TARİH(Tarih As Variant) As String
    Dim Metin As String, X As Byte
   
    Application.Volatile True
   
    Metin = Format(Tarih, "mmmm-yyyy")
   
    ReDim Veri(1 To 1)
   
    For X = 1 To Len(Metin)
        ReDim Preserve Veri(1 To X)
        Veri(X) = Mid(Metin, X, 1)
    Next
   
    K_TARİH = Evaluate("UPPER(""" & Join(Veri, " ") & """)")
End Function
Sayın @Korhan Ayhan
Öncelikle yardımlarınız için teşekkürler. VBA'da hiç tecrübem yok ama söylediklerinizi yapmaya çalıştım. Formül sonucu YANLIŞ çıkıyor. Dosyayı eklemeye çalışıyorum. Bakabilir misiniz?
 
Ama siz aynı hücre içine hem KTF'yi hem de sonradan paylaştığın yerleşik fonksiyonlarla ilgili çözümü uygulamışsınız.

Benim önerdiğim iki ayrı çözümdür. İkisinden birisini kullanabilirsiniz. İkisini aynı anda değil...
 
Geri
Üst