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?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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


.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,230
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,230
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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))))
 
Katılım
11 Ocak 2021
Mesajlar
26
Excel Vers. ve Dili
2007 Türkçe
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?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,230
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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...
 
Üst