Tarih verildiğinde, haftanın gününü (örn. "Pazartesi") Excel'deki bir hücreye nasıl alabilirim?
Tarih verildiğinde, haftanın gününü (örn. "Pazartesi") Excel'deki bir hücreye nasıl alabilirim?
Yanıtlar:
Basit örnek:
A1 hücresi: 1/8/2009
B1 hücresi: = METİN (WEEKDAY (A1), "dddd")
Bu, verilen tarih için ilgili günü basacaktır.
İstediğin bu mu?
Yukarıda verilen cevap sadece şans eseridir çünkü Excel 1/1/1900’ün Pazar günü olduğunu düşünmektedir * ve varsayılan olarak Excel, haftanın ilk günü olarak Pazar gününü haftanın ilk günü olarak kullanmaktadır.
Bu yöntemde aslında hesapladığınız şey, haftanın günü sayı olarak ifade etmek, ardından tarih olarak yorumlanan sayıya göre bir gün olarak biçimlendirmek. Örneğin, randevunuz 1/2/2003 ise ve HAFTALIK işlevini kullanıyorsanız, bu 7 (= Cumartesi) olarak sonuçlanır. Daha sonra bunu "dddd" olarak biçimlendirdiğinizde, aslında "7. çağın" yani bir Cumartesi olan 7/1 / 1900'den itibaren Excel'deki 7. günün gün adını alıyorsunuz. Bu formül, biri 1904 tabanlı tarih sistemini kullanmak için seçilen seçeneğe sahip olan birini açarsa, 1/1/1904 Pazar değil, Cuma günüyse kırılacak. (evet, kimsenin bunu kullandığını pek biliyorum ama siz buna dayanan bir çözüm geliştirmek istemezsiniz?)
Basitçe kullanarak formülü daha kısa, daha hızlı ve daha sağlam hale getirebilirsiniz
=TEXT(A1,"dddd")
Elbette, tarih hücrelerinin kendilerini, gerçekten ayrı bir sütuna ihtiyaç duyup duymamaya bağlı olarak, önceden önerildiği şekilde özel bir formatla formatlayabilirsiniz. Sık sık tarih biçimleri gibi kullanırım
ddd dd mmm yyyy
Örneğin, 01.03.03.2003 Cumartesi tarihini vermek için kesindir ancak hafta içi adını da gösterir.
Haftanın gününü açıkça bir adres mektup birleştirme (örneğin) bir yerde kullanmak istiyorsanız, örneğin para birimleri ve benzerleri için benzer şekilde Excel> Word birleştirme işlevini kullanmak yerine ikinci bir sütun ve bir METİN işlevi kullanmak çok önemlidir. ekran biçiminde sürüm, hücre biçiminden bağımsız olarak, Word bazı korkunç sayılar görür. Gerçek bir metin alanı 'olduğu gibi' iletilir ve Word'de düzgün görüntülenir.
* aslında bir Pazartesi ama Excel, 1900'lerin olmadığı bir yıl olarak kabul edilen Lotus 1-2-3'teki yanlış tarihlerle eşleşmesi için yazılmıştır.
Daha sonra tarihle ne yapmak istediğinize bağlı olarak başka bir olasılık, hücrenin biçimini Özel: dddd olarak ayarlamaktır.
=A1
ve ilk cevaptaki örnekte olduğu gibi bir formül girebilirsiniz .
Yuvalama IF
ifadelerinin hantal olabileceğini öğrendim , ancak işe yarıyor. Bununla birlikte, küçük bir yazı yazmaktan tasarruf etmek istiyorsanız, şunu deneyebilirsiniz:
=CHOOSE(WEEKDAY(A2), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
Veya, tam adlara ihtiyacınız varsa:
=CHOOSE(WEEKDAY(A2), "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
Bu örnekte, "A2", hangi hücrenin (veya formülün) söz konusu tarihi içerdiği ne olursa olsun olabilir. Örneğin:
=CHOOSE(WEEKDAY(TODAY()), "Sun","Mon","Tue","Wed","Thur","Fri","Sat")
bugünkü hal için üç harfli kısaltmayı yazdıracaktı.
Ayrıca formattan önce [$ nnn] kullanarak cevabı yerelleştirebilirsiniz (bu yüzden özel kod: [$ nnn] dddd; @). nnn'yi uygun dil koduyla değiştirin. Listem yok, ama her nasılsa, ingilizce kod -409 (ve benim yerel -421).
Number biçimiyle deneme yapabileceğinizi, dil alanını değiştirebileceğinizi ve daha sonra özel biçime dönebileceğinizi düşünüyorum.
A1 hücresi: 1/8/2009 B1 hücresi: = A1 daha sonra ctrl + 1 (format hücresi) sayı sekmesini seçin, özel tıklayın ve txtbox tipinde "DDDD" yazın.
Geçerli tarihi görüntüler
=TEXT(WEEKDAY(MONTH(TODAY())),"dddd")
İstediğiniz metin ile birlikte geçerli tarihi görüntüler.
=CHOOSE(WEEKDAY(MONTH(TODAY())), "S-U-N-D-A-Y","M-O-N-D-A-Y","T-U-E-S-D-A-Y","W-E-D-N-E-S-D-A-Y","T-H-R-S-D-A-Y","F-R-I-D-A-Y","S-A-T-U-R-D-A-Y")
WEEKDAY Fonksiyonu Vba Kodlarında kullanılabilir. Örneğin :
Label1.Caption = WeekdayName(Weekday(TextBox1, 0), False, 0)
Günün adı, yukarıdaki örnekte TextBox1'den alınmıştır. Sonuç "Pazartesi" .
Bu işlevi, sağ tıklama menüsüyle aktif hücreye tarih girişi hakkında kullanıcı formu oluşturduğumda kullandım.