Excel'in sütundaki tarihi tanımaması sağlanamıyor


45

Excel'de tarihlerle çalışma konusunda sürekli sorun yaşıyorum, yanlış bir şey yapıyorum ama ne olduğunu anlamıyorum.

Değişim sunucumuzdan dışa aktarılan ve üzerinde tarih içeren bir sütun içeren bir elektronik tablom var. Birleşik Krallık'ta olmama rağmen ABD formatında çıktılar.

Söz konusu sütun buna benziyor

04/08/2012
04/09/2009
04/01/2010
04/21/2011
04/05/2012
08/30/2009
08/29/2010
08/28/2011

Excel'de sütunu vurguladım ve seçtim Format Cells.... Bu iletişim kutusunda, ben seçmiş Date, seçilmiş English (United States)yerel ayar olarak ve listeden uygun tarih biçimini seçmiş. Tamam'a bastım ve verileri bu sütuna göre sıralamaya çalışıyorum.

Sıralama iletişim kutusunda, bu sütunu seçiyorum, Değerler'de sıralama'yı seçin, ancak sıra bana yalnızca A'dan Z'ye, seçenekler beklediğim en eskiden en yeniye seçenekler sunuyor.

Bu da tarih verisini ilk iki haneye göre sıralar.

Bu verileri ISO'ya yeniden biçimlendirebileceğimin farkındayım ve sonra A'dan Z'ye sıralar işe yarayacaktı ama benim de olmamalıydı, belli ki bir şeyleri eksik. Bu ne?

DÜZENLEME: Ödülün altını kestim ama bu, @ r0berts cevabına, sınırlayıcı içermeyen ilk Metin Metni önerisine ve veri türü olarak 'MDY' seçimine gitmeli . Ek olarak, zamanınız varsa (yani 04/21/2015 18:34:22), önce zaman verilerinden kurtulmanız gerekir. Ancak bundan sonra @ r0berts tarafından önerilen yöntem iyi çalışıyor.


Sorunun Excel'in bunu nasıl yapacağını bilmediğinden şüpheleniyorum - test edebilirsiniz. Tarih formatını güncellemeye çalıştığınızda, sütunu seçin ve üzerine sağ tıklayın ve format hücrelerini seçin (zaten yaptığınız gibi), ancak 2001-03-14 (listenin en altına yakın) seçeneğini seçin. Excel'in hala bir dize gibi davrandığını belirten tarih biçimlerinin sadece bazılarının doğru şekilde güncellediğinden şüpheleniyorum!
Dave

Dışa aktarılan verinin formatı nedir? CSV mi, XLSX mi?
Excellll

Yanıtlar:


70

Sorun: Excel, "Hücreleri Biçimlendir - Sayı - Özel" seçeneğiyle açıkça bunları " mm/dd/yyyy" ile tarih belirlemeye çalışıyor olsanız da tarihleri ​​tarih olarak tanımlamak istemiyor . Bildiğin gibi; excel bir tarih olarak bir şey tanıdığında, bunu " 41004" gibi bir sayı olarak da saklar, ancak belirttiğiniz formata göre tarih olarak görüntüler. Karışıklık eklemek için excel, 08/04/2009 gibi tarihlerinizin sadece bir kısmını dönüştürebilir, ancak diğerlerini örneğin 07/28/2009 değiştirilmemiş olarak bırakabilir.

Çözüm: 1. ve 2. adımlar

1) Tarih sütununu seçin. Veri altında Sütunlar için Metin düğmesini seçin. İlk ekran izni radyo düğmesini " ayrılmış " ve tıklayın İleri . Unclick herhangi sınırlayıcı kutuları (herhangi bir kutu boş , hiçbir checkmarks) ve tıklama İleri . Sütun veri biçimi altında seçim tarihi ve seçmek MDY bitişik açılan kutu içinde ve tıklayın Son'u . Artık tarih değerlerini aldınız (örn. Excel değerlerinizi Dateveri türü olarak tanıdı ), ancak biçimlendirme muhtemelen istediğiniz yerel tarih olabilir mm/dd/yyyy.

2) İstenen ABD tarih biçimini daha sonra altında (seçilmemiş ise) sütunu seçmek için ilk gereksinimi düzgün görüntülenen almak için Hücre Format - Numara seçim tarihi : VE Yerel Ayar seçmek ) İngilizce (ABD . Bu size " m/d/yy" gibi bir format verecektir . Sonra Özel'i seçebilir ve orada " mm/dd/yyyy" yazabilir veya bunu özel dizeler listesinden seçebilirsiniz.

Alternatif : LibreOffice Calc kullanın. Patrick'in gönderisinden verileri yapıştırdıktan sonra Özel Yapıştır ( Ctrl+Shift+V) öğesini ve ardından Biçimlendirilmemiş Metin'i seçin. Bu, "Metin İçe Aktar" iletişim kutusunu açacaktır. Karakter kümesi Unicode olarak kalıyor, ancak dil için İngilizce'yi (ABD) seçin; "Özel numaraları algıla" kutusunu da işaretlemelisin. Tarihleriniz hemen varsayılan ABD biçiminde görünür ve tarihe göre sıralanabilir. Özel ABD formatı MM / DD / YYYY isterseniz, bunu yapıştırmadan önce veya sonra "Hücreler" biçiminde belirtmeniz gerekir.

Bunlardan biri diyebilir - Excel "Hücre Biçimi" üzerinden söylediğim anda tarihleri ​​tanımalı ve daha fazla anlaşamadım . Maalesef, Excel'in bu metin dizelerini tarih olarak tanımasını sağlayabilmem için sadece 1. adımdan itibaren. Belli ki bunu çok yaparsanız, boyundaki ağrı olur ve bunu bir düğmeye basarak sizin için yapacak olan görsel bir temel rutini bir araya getirebilirsiniz.

Veri | Sütunlara Metin

Yapıştırma işleminden sonra önde gelen kesme işareti güncellemesi : Formül çubuğunda, tarihin tanınmadığı hücrede bir ön kesme işareti olduğunu görebilirsiniz. Bu, sayı (veya tarih) olarak biçimlendirilmiş hücrede bir metin dizesi olduğu anlamına gelir. Diyebilirsiniz - lider kesme işareti, elektronik tablonun numarayı tanımasını önler. Bunun için formül çubuğuna bakmayı bilmeniz gerekir - çünkü elektronik tablo yalnızca sola hizalı bir sayıya benzeyen görüntüler. Bu sorunla başa çıkmak için, düzeltmek istediğiniz sütunu seçin, menüden seçin.Data | Text to Columnsve Tamam'ı tıklayın. Bazen veri türünü belirtebileceksiniz, ancak daha önce sütun biçimini kendi veri türünüz olacak şekilde ayarladıysanız, buna ihtiyacınız olmayacak. Komut, bir metin sütunu bir sınırlayıcı kullanarak iki veya daha fazlasına bölmek içindir, ancak bu sorun için de bir cazibe işlevi görür. Libreoffice'de test ettim , ancak Excel'de de aynı menü maddesi var .


OP'mdeki her iki noktayı da ele alıyorum. Tarih değerlerini sütunlara bölmek (ve daha sonra ISO biçiminde yeniden bütünleştirmek) elbette mümkündür, ancak Excel'in yerleşik yerleşik işlevlere sahip olduğunu düşünürsek, sahip olduğum geçerli tarih verileriyle kaldırabilmek isterim. İkinci seçeneğin aynen benim için işe yaramayan şeyi tanımladığım gibi.
Patrick

Sevgili Patrick, lütfen dikkatlice oku. Veya Libre Office Calc'i kullanabilirsiniz - verilerinizle hemen çalışır - yalnızca Tarihi - İngilizce (ABD) için sütunu önceden biçimlendirirsiniz ve yapıştırırken "Özel Yapıştır" "Biçimlendirilmemiş metin" yazarsınız - iletişim kutusunun sadece dilin İngilizce (ABD) ve özel numaraları tanımak için kutuyu işaretlemeyi unutmayın. Cevabımda Excel'in bu (adamcağız) ile tutarsız olduğunu ve istediğiniz sonucu elde etmek için bu adım 1 ve ardından 2'ye başvurmanız gerektiği kadar zor ipucu vermeye çalıştım.
r0berts

Sorunuzu gerçekten doğru okumam gerekirdi. İlk önerin gerçekten işe yarıyor. Ödül almalıydın. Yardımınız için teşekkürler.
Patrick

Öneri 1 bir cazibe gibi çalışır. Teşekkürler.
Adam,

Gerçekten iyi cevap !!!
Eklentiler

8

Tüm sütunu seçin ve Yerleştirme ve Değiştir ve sadece yerine gitmek "/"ile /.


Sorunu çözmek için bunun ne yaptığını açıklayabilir misiniz?
fixer1234

Bu gerçekten işe yaradı ve kolaydı. Yedek şey sadece baştaki sıfırları kaldırın
PedroGabriel

2
İlk olarak, BU İŞLER. EN İYİ çözüm. FAR, kontrol edilen çözümden daha iyi :). Fixer1234 ve @PedroGabriel: Sıfırları kaldırması değil. Hücre içeriğini değiştirme eyleminde Excel, elde edilen hücrenin bir formül, metin veya sayı içerip içermediğini değerlendirir. "/" Değişimini yaptıktan sonra, hücreyi şimdi bir sayı içerecek şekilde yorumlar (teknik olarak Excel için olan bir tarih), bu yüzden doğru bir şekilde sıralanabilir. (Akıllı kullanıcılar, Excel'in içeriğini yeniden yorumlayarak benzer bir senaryoda "/" karakteriyle bulma / değiştirme tekniğini tanıyabilir.) Yine de Jair, ideal bir çözüme sahiptir :)
MicrosoftShouldBeKickedInNuts

@MicrosoftShouldBeKickedInNuts bugün neden sıfırlar hakkında söylediği hakkında hiçbir fikrim yok, gerçekten sıfırlarla ilgisi yoktu ... Bu, hala bunu kullanan en iyi cevap. Şerefe
PedroGabriel

3

Excel'de tarihlerle aynı sorunu yaşadım. Biçim, excel'deki bir tarihin gereksinimlerini karşıladı, ancak her hücreyi düzenlemeden tarihi tanımıyordu ve binlerce satırla çalışırken, her hücreyi el ile düzenlemek pratik değil. Çözüm, bulguyu çalıştırmak ve tireyi bir tire ile değiştirdiğim tarihler satırında değiştirmek. Excel, sütunlarla benzerlikle değiştirilerek çalıştırılır, ancak sonuçta ortaya çıkan faktör artık tarihleri ​​eşleştirmesidir! SABİT!


3

SAP veritabanından çıkarılan binlerce satır ve aynı tarih sütununda açıklanamaz şekilde iki farklı tarih formatı ile benzer bir sorunla uğraşıyordum (çoğu bizim standart "YYYY-AA-GG" ancak% 10'u "MM- DD-YYY "). Her ay bir defa 650 satırı el ile düzenlemek bir seçenek değildi.

Yukarıdaki seçeneklerin hiçbiri (sıfır ... 0 ... sıfır) çalıştı. Evet, hepsini denedim. Bir metin dosyasına kopyalamak veya açıkça bir şekilde txt dosyasına dışa aktarmak, bir şekilde köşesinde davranmayı reddeden% 10 tarihin biçiminde (veya yokluğunda) hiçbir etkisi yoktu.

Düzeltmeyi başarabilmemin tek yolu yaramazlık tarih sütununun sağına boş bir sütun yerleştirmek ve oldukça basit bir formül kullanmaktı.

(Yaramazlık verilerinizin içinde olduğunu varsayarak Column D)

=IF(MID(D2,3,1)="-",DATEVALUE(TEXT(CONCATENATE(RIGHT(D2,4),"-",LEFT(D2,5)),"YYYY-MM-DD")),DATEVALUE(TEXT(D2,"YYYY-MM-DD")))

Daha sonra "Değerler" yazarak sonuçları, sonradan hesaplanan sütunumu silebildiğimden sonra, yanlış tarihlerin üstüne yeni, hesaplanmış sütunumda kopyalayabilirim.


3

Bu, orijinal sorgulayıcıyla ilgili olmayabilir, ancak tarih sütununu sıralayamayan bir başkasına yardımcı olabilir.

Excel'in 1900'den önce olan bir tarih sütunu tanımayacağını, onların bir metin sütunu olduklarını vurgulamakta olduğunu gördüm (1/1/1900 sayısal eşdeğeri 1 olduğundan ve negatif sayılara görünüşte izin verilmediğinden). Bu yüzden (1800'lerde) bütün tarihlerimin yerine 1900'lere koymak için genel bir değişiklik yaptım, örneğin 180 -> 190, 181 -> 191, vb. Sonra sıralama işlemi iyi sonuç verdi. Sonunda diğer yolu değiştirdim, örneğin 190 -> 180.

Umarım bu, dışarıdaki diğer tarihçilere yardımcı olur.


2

Excel'in tarihlerinizi tarih olarak tanımıyor gibi görünüyor, metinleri tanıyor; bu nedenle A'dan Z'ye Sıralama seçeneklerini alıyorsunuz. Doğru yaparsanız, şöyle bir şey almalısınız:

http://i.stack.imgur.com/Qb4Pj.png

Bu nedenle, Excel'in tarihi tanımasını sağlamak önemlidir. Bunu yapmanın en basit yolu, kısayolu kullanmaktır CTRL+SHIFT+3.

İşte verilerinize ne yaptım. Ben sadece yukarıdaki yazıdan kopyaladım ve excel yapıştırdım. Sonra yukarıdaki kısayolu uyguladım ve gerekli sıralama seçeneğini aldım. Resmi kontrol et.

http://i.stack.imgur.com/yAa6a.png


2
Ne yazık ki bu kısayol benim için çalışmıyor.
Patrick

Kısayol sisteminizde ne yapar Patrick?
Firee

3
Kısayol hiçbir şey yapmıyor gibi görünüyor. Office 2007, 2010 ve 2013'te çalışan elimde birkaç sistem var ve bunların hiçbiri CTRL SHIFT 3 kısayoluna tepki göstermedi. CTRL 1 doğru şekilde 'format hücresi' iletişim kutusunu açar.
Patrick,

“Ctrl + Shift + #” olarak biraz özensiz başvurulan Ctrl + Shift + 3 klavye kısayolu, burada , aracı Excel 2007, 2010, 2013 yılında “gün, ay ve yılı gösteren Tarih biçimini uygular” ve Spesifik 2016 ( , benim Excel 2013'te, “d-mmm-yy” dir.) Microsoft belgesi hücrelerin zaten içermesi gerektiğini açıklamıyor… (Devam ediyor)
Scott

(Devamı) ... Excel tarih / saat veri olarak tanır ve bu kimse gibi görünüyor değerleri burada etmiştir açıkça Patrick İngiltere'de olduğundan, Excel onun versiyonu gibi dizeleri kabulüdür, açıkladı 04/08/2012, 04/09/2009ve 04/01/20104-Ağustos-2012 olarak , Sırasıyla 4-Eylül-2009 ve 4-Ocak-2010 ve 04/21/2011bir metin dizisi gibi davranmaktadır (çünkü 21 ay yoktur). Değerlerin bazıları metin olduğu için (ve değerlerin bazıları, muhtemelen yanlış yorumlanmıştır), biçimlendirme (Ctrl + ÜstKrkt + 3 klavye kısayolu gibi) hiçbir işe yaramaz.
Scott

2

Sorunun Excel'in formatı anlayamamasından şüpheliyim ... Tarih biçimini seçseniz de, Metin olarak kalıyor.

Bunu kolayca test edebilirsiniz: Tarih formatını güncellemeye çalıştığınızda, sütunu seçin ve sağ tıklayın ve format hücrelerini seçin (zaten yaptığınız gibi), ancak 2001-03-14 (listenin en altına yakın) seçeneğini seçin. Ardından hücrelerin biçimini gözden geçirin.

Excel'in hala bir dize gibi davrandığını belirten tarih biçimlerinin yalnızca bazılarının doğru şekilde güncellediğinden şüpheleniyorum (aşağıdaki ekran görüntüsündeki farklı biçimlere dikkat edin)!

görüntü tanımını buraya girin

Bunun için geçici çözümler var, ancak bunların hiçbiri otomatik olarak gerçekleşmeyecek çünkü her seferinde ihracat yapıyorsunuz. ABD’den İngiltere’ye tarih biçimine dönüştüren bir makroyu çalıştırabileceğiniz VBa’yı kullanmanızı öneririm, ancak bu VBa’yı her seferinde kopyalayıp yapıştırmak anlamına gelir.

Alternatif olarak, yeni oluşturulan dışa aktarılan Excel sayfalarını okuyan (değişimden) bir Excel oluşturur ve tarih biçimini güncellemek için VBa'yı yürütürsünüz. Export Exchange Excel dosyasının her zaman aynı dosya adına / dizinine sahip olacağını ve çalışma örneği sunacağını varsayacağım:

Böylece ImportedData.xlsm (excel etkin) adlı yeni bir Excel sayfası oluşturun. Dışa Aktarılan Exchange Excel dosyasını içe aktaracağımız dosya budur!

Bu VBa'yı ImportedData.xlsm dosyasına ekleyin

Sub DoTheCopyBit()

Dim dateCol As String
dateCol = "A"        'UPDATE ME TO THE COLUMN OF THE DATE COLUMN

Dim directory As String, fileName As String, sheet As Worksheet, total As Integer

Application.ScreenUpdating = False
Application.DisplayAlerts = False

directory = "C:\Users\Dave\Desktop\"                   'UPDATE ME
fileName = Dir(directory & "ExportedExcel.xlsx")       'UPDATE ME (this is the Exchange exported file location)

Do While fileName <> ""

'MAKE SURE THE EXPORTED FILE IS OPEN
Workbooks.Open (directory & fileName)

Workbooks(fileName).Worksheets("Sheet1").Copy _

Workbooks(fileName).Close

fileName = Dir()

Loop

Application.ScreenUpdating = True
Application.DisplayAlerts = True

Dim row As Integer
row = 1
Dim i As Integer
Do While (Range(dateCol & row).Value <> "")

     Dim splitty() As String
     splitty = Split(Range(dateCol & row).Value, "/")
     Range(dateCol & row).NumberFormat = "@"
     Range(dateCol & row).Value = splitty(2) + "/" + splitty(0) + "/" + splitty(1)
     Range(dateCol & row).NumberFormat = "yyyy-mm-dd"
     row = row + 1
Loop


End Sub

Yaptığım şey, tarih biçimini yyyy-mm-gg'ye güncellemekti, çünkü bu yolla, Excel size en yeni değerler yerine AZ sıralama süzgecini verse bile, yine de çalışıyor!

Yukarıdaki kodun hataları olduğundan eminim ama açıkçası ne tür verileriniz olduğunu bilmiyorum ama tek bir tarih sütunu ile test ettim (sizinki gibi) ve benim için iyi çalışıyor!

VBA'yı MS Office'e nasıl eklerim?


iyi ... Biraz ekstra poz vermek için bunu birkaç gün bırakacağım ama bu kesin bir cevap gibi görünüyor. Bu kesinlikle çılgınca, buna ihtiyacım olduğuna inanamıyorum. Olduğu gibi, kaynağındaki verileri powershell'de küçük bir işlevle sabitledim, bu noktada Excel'in tarih olarak
Patrick


1

Bunu anladım!

Tarihin başında ve sonunda bir boşluk var.

  1. Bul ve değiştir ve boşluk çubuğuna basarsanız, işe yaramaz.
  2. Ay numarasından hemen önce sağ tıklamanız, seçip kopyalamak için shift ve sol oka basmanız gerekir. Bazen boşluğu seçmek için fareyi kullanmanız gerekir.
  3. Sonra bunu bul ve değiştir boşluğu olarak yapıştırın ve tüm tarihleriniz tarih olur.
  4. Boşluk ve tarih varsa Veri> Verilere Git> Sütunlara metin> Sınırlandırılmış> Ayırıcı olarak boşluk seçeneğini seçin ve ardından tamamlayın.
  5. Tüm boşluklar kaldırılacak.

Bul ve değiştir işlevinin boşluk çubuğuyla çalışmamasının nedeni boşluğun büyük olasılıkla bir sekme olmasıdır.
Patrick

0

Excel inatla sütununuzu tarih olarak tanımayı reddediyorsa, başka bir tane ile değiştirin:

  • Eski sütunun sağına yeni bir sütun ekle
  • Yeni sütunu sağ tıklayın ve seçin Format
  • Biçimi olarak ayarla date
  • Eski sütunun tamamını vurgulayın ve kopyalayın
  • Yeni sütunun üst hücresini vurgulayın ve seçin Paste Specialve yalnızca yapıştırınvalues
  • Şimdi eski sütunu kaldırabilirsiniz.

Bunu denedim, yeni sütunla aynı şekilde davranıyor. Dave'in cevabını görün, üst kısımdaki ekran başlığı sütunlar arasında kaç kez taşıdığımın önemi olmadığıdır.
Patrick

Yeni sütundaki formülde DATEVALUE (eski sütun) işlevini kullanarak sorunu zorlamaya çalışın, ardından Kısa / Uzun Tarih'i seçmek için Giriş şerit çubuğundaki Sayı biçimlendirme açılır listesini kullanın.
harrymc

0

Sadece 1 (bir) sayısını kopyaladım ve PASTE ÖZEL işlevini kullanarak tarih sütununa (veri) çarptım. Daha sonra Genel biçimlendirmeye yani 42102'ye geçer. Daha sonra gidip biçimlendirmeye Tarih uygulayın ve şimdi onu tarih olarak kabul eder.

Bu yardımcı olur umarım


0

Yukarıdaki tüm çözümler - r0berts dahil - başarısız oldu, ancak en hızlı çözüm olduğu ortaya çıkan bu tuhaf çözümü buldu.

İndirilmiş bir hesap işlemleri elektronik tablosunda "tarihleri" sıralamaya çalışıyordum.

Bu, CHROME tarayıcısı aracılığıyla indirilmiştir. Tarihlerin hiçbir manipülasyonu, onları eskiden yeniye sıralanabilir olarak kabul ettiremezdi.

Ama daha sonra INTERNET EXPLORER tarayıcısı üzerinden indirdim - inanılmaz - Bir sütuna dokunmadan anında sıralama yapabilirim.

Neden farklı tarayıcıların, verilerin açıkça biçimlendirildiğini ve çok hızlı bir şekilde düzeltildiğini hariç, biçimlendirmeyi etkilediğini açıklayamıyorum.


0

İngiltere'deki çözümüm - Tarihlerimde böyle noktalar vardı;

03.01.17

Bunu aşağıdakilerle çözdüm:

  1. Tüm sütunu vurgulayın.
  2. Bulmak ve seçmek / değiştirmek için gidin.
  3. Tüm durakları orta çizgi ile değiştirdim, örneğin 03.01.17 03-01-17.
  4. Sütunu vurgulanmış halde tutun.
  5. Hücreleri biçimlendirin, sayı sekmesini seçin tarih.
  6. Türünü kullanın 14-03-12(benim için ortadaki çizgi için gerekli)
  7. Yerel İngilizce (Birleşik Krallık)

Sütunu sıralarken, yıl için tüm tarihler sıralanır.


0

Çeşitli önerileri denedim, ancak benim için en kolay çözümü şöyle buldum:

Örnek 1 ve 2 numaralı resimlere bakınız ... (not - bazı alanlar örneğe katkıda bulunmadıkça bilerek gizlenmiştir). Umarım bu yardımcı olur...

  1. Alan C - beni kesinlikle çıldırtan karma bir format. Verilerin doğrudan veri tabanından gelmesi, fazladan boşluk veya çılgın karakter olmaması gibi. Örneğin, bir metin olarak gösterildiğinde, 01.01.2016, '04.05.2006' ile olduğu gibi karıştırılan, '42504' tipinde bir değer olarak görüntülenir.

  2. F alanı - C alanının uzunluğunu aldığım yer (LEN formülü tarih biçimine bağlı olarak 10'un 5 uzunluğudur). Alan basitlik için Genel formattır.

  3. G Alanı - karışık tarihin ay bileşeninin elde edilmesi - F alanındaki (5 veya 10) sonuç sonucuna bağlı olarak, ya C alanındaki tarih değerinden ay elde ederim veya dizedeki ay karakterlerini elde ederim.

  4. H alanı - karışık tarihin gün bileşenini elde etmek - F (5 veya 10) alandaki sonuç sonucuna bağlı olarak, ya C alanındaki tarih değerinden gün elde ederim ya da dizedeki gün karakterlerini elde ederim.

Bunu yıl için de yapabilirim, sonra tutarlı olan üç bileşenden bir tarih oluşturabilirim. Aksi halde, analizlerimdeki bireysel gün, ay ve yıl değerlerini kullanabilirim.

Resim 1: değerleri ve alan adlarını gösteren temel elektronik tablo

Resim 2: Yukarıdaki açıklama ile eşleşen formülleri gösteren elektronik tablo

Umarım bu yardımcı olur.


(1) Cevabınızın gerçekten işe yaradığını göstermek için bir ekran görüntüsü göndermek güzel olsa da, çözümünüzdeki formüllerin yanıtınızın gövdesinde metin olarak gönderilmesini tercih ediyoruz , böylece insanlar bunları kopyalayıp yapıştırabilirler. (2) Sorunu anlıyor görünüyorsunuz - bunun gibi sayısal tarihler 04/08belirsiz. 04/08bazı yerlerde (ABD gibi) 8 Nisan, bazılarında ise 4 Ağustosta (İngiltere gibi) yorumlanacaktır. Ancak bunlar kesin olarak belirsizdir, çünkü ay sayısı ve ayın günü farklıdır. … (Devamı)
Scott

(Devamı) ... Öyleyse neden kullanmak istiyorsunuz un  gibi belirsiz tarihleri 01/01Yanıtınızda? (3) Aslına bakarsanız, sorunu anladığınızdan veya cevabınızın gerçekten çalıştığından emin değilim, ancak sayfanızın ayın 15 olduğu satırlarda olduğu gibi; Bu bariz bir hata gibi görünüyor. 04/15Belirgin olduğu göz önüne alındığında - bu, 15 Nisan anlamına gelmeli - yönteminizin 01/1111. ayın 1. günü olarak ayrıştırılması bir anlam ifade etmiyor . … (Devamı)
Scott

(Devam ediyor)… (4) En iyi ihtimalle yanıtladığınızın sadece nn / nn / nnnn gibi görünen tarihleri ​​işleyeceği belirtilmelidir . Sanki tarihlerde başarısız olur 5/8, 5/08, 5/28, 05/8, ve 11/8. Ayrıca - eğlenceli gerçek - cevabınız 17 Mayıs 1927 ve 17 Ekim 2173 tarihlerinde başarısız olacaktır. Y10K sorununu boşver; 154 yıl sonra sorun yaşamaya başlayabiliriz! (5) “Bunu da yıl boyunca yapabilirim, sonra tutarlı olan üç bileşenden bir tarih oluşturabilirim” diyorsunuz. Öyleyse neden yapmıyorsunuz ve göstermiyorsunuz ? … (Devam ediyor)
Scott

(Devam ediyor)… Eksik bir versiyonunu sunarken yönteminizin çalıştığını doğrulamak özellikle zor; ay, gün ve yılın bir tarihte birleştirildiğini göstermeyen biri. (6) Patsaeed’e söylediğim gibi , OP’nin verilerini kendi sorunuzu yapmaktan ziyade söz konusu kullanarak kullanmış olsaydınız iyi olurdu. OP verilerini kullanmamak, Patsaeed'in kullanmış olsaydı iyi olurdu, bu yüzden en azından elmaları elmalar ile karşılaştırabiliriz. … (Devam ediyor)
Scott

(Devam ediyor)… OP'nin verilerini veya bir başkasının verilerini kullansanız bile, orijinal girdiyi senaryonuza göstermiş olsaydınız iyi olurdu. (Örneğin, Satır 7 için, öyle 01/11/2016ya  11/01/2016sen (örneğin) göstermek aynı ayına tarihleri dahil olsaydı nasıl kendi verilerini kullanmak için gidiyoruz eğer, bu güzel olurdu?) Ve 1/11ve 1/21işlenir farklı. Ve neden yinelenen veri var? Aynı 19 değeri birden çok kez kullanarak 19 satıra dağılmış 19 satır harcıyorsunuz.
Scott

0

KÜÇÜK UZUN BİR AMA PAYLAŞMA ÇOK FAZLA KONU ÇÖZÜM KONUSUNDA ÇÖZÜM ..... Makro ya da inek gibi şeyleri çalıştırmaya gerek yok .... basit ms formülleri ve düzenlemeyi excel.

karma tarihler excel enstantane:

görüntü tanımını buraya girin

  • Tarih karışık biçimdedir.
  • Bu nedenle, simetrik bir tarih formatı oluşturmak için, bu 'karma format' tarih sütunu TEXT'ye dönüştüren ek sütunlar yaratılmıştır.
  • Bu metinden "/" ve orta metnin pozisyonlarını belirledik, MID formülünü kullanarak tarih, ay ve yılı belirleyerek çıkardık.
  • Başlangıçta tarih olanlar, formül ERROR / #VALUEsonuç ile sona erdi . - Sonunda yarattığımız dizgiden - bunları DATE formülüne göre tarihe dönüştürdük.
  • #VALUE DATE formülüne eklenen IFERROR tarafından olduğu gibi seçildi ve sütun gerektiği şekilde biçimlendirildi (burada, dd / mmm / yy)

* Yukarıda belirtilen EXCEL SHEET'in SNAPSHOT'UNU BAŞLATIN (= anlık görüntülerde karma tarihler) *


(1) Cevabınızın gerçekten işe yaradığını göstermek için ekran görüntüsü göndermek güzel olsa da, çözümünüzdeki formüllerin yanıtınızın gövdesinde metin olarak gönderilmesini tercih ediyoruz , böylece insanlar bunları kopyalayıp yapıştırabilirler. (2) Olarak formüller gösterilen onlar Sütunlar bakın mademki sizin görüntüde, yanlış  V, Wve  Xonlar Sütunlar atıfta gerekirken  B, Cve  D. … (Devamı)
Scott

(Devam ediyor)… (3) OP verilerini kullandıysanız, kendinizden bir şey yapmak yerine, söz konusu olandan daha iyi olurdu. OP'in verilerini veya kendinizinkileri kullansanız da, senaryonuza orijinal girdiyi göstermiş olsaydınız iyi olurdu (örneğin, Satır 9 için, öyle 5/8/2014ya da  5/08/2014). Ve eğer kendi verilerinizi kullanacaksanız, aynı aydan tarihleri ​​dahil etmiş olsaydınız (örneğin) nasıl farklı bir şekilde ele alındığını 5/8ve nasıl 5/28işlendiğini göstermek güzel olurdu . Ve neden yinelenen veri var? Aynı değerleri bir kereden fazla kullanarak altı satırı boşa harcadınız.
Scott

0

Bu, Excel'de yereller arasında tarih veri alışverişi yaparken her zaman olur. Verileri dışa aktaran VBA programı üzerinde denetiminiz varsa, tarihin kendisi yerine tarihi gösteren numarayı dışa aktarmanızı öneririm. Sayı, formatlama ve yerel ayardan bağımsız olarak tek bir tarihle benzersiz şekilde ilişkilendirilir. Örneğin, 24/09/2010 tarihli CSV dosyası yerine 40445 gösterilecektir.

Her bir hücreyi tuttuğunuzda dışa aktarma döngüsünde, eğer tarih ise, CLng (myDateValue) kullanarak sayıya dönüştürün. Bu, bir tablonun tüm satırlarında çalışan ve CSV'ye dışa aktaran döngümün bir örneğidir (notu ayrıca dizelerdeki virgülleri içe aktarırken çıkardığım bir etiketle değiştirdiğimi unutmayın, ancak buna ihtiyacınız olmayabilir):

arr = Worksheets(strSheetName).Range(strTableName & "[#Data]").Value

    For i = LBound(arr, 1) To UBound(arr, 1)
        strLine = ""
        For j = LBound(arr, 2) To UBound(arr, 2) - 1
            varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
            strLine = strLine & varCurrentValue & ","
        Next j
        'Last column - not adding comma
        varCurrentValue = arr(i, j)
            If VarType(varCurrentValue) = vbString Then
                varCurrentValue = Replace(varCurrentValue, ",", "<comma>")
            End If
            If VarType(varCurrentValue) = vbDate Then
                varCurrentValue = CLng(varCurrentValue)
            End If
        strLine = strLine & varCurrentValue

        strLine = Replace(strLine, vbCrLf, "<vbCrLf>") 'replace all vbCrLf with tag - to avoid new line in output file
        strLine = Replace(strLine, vbLf, "<vbLf>") 'replace all vbLf with tag - to avoid new line in output file
        Print #intFileHandle, strLine
    Next i

0

Yukarıdaki önerilerin hepsinde şansım yaver gitmedi - cazibe gibi çalışan çok basit bir çözüm geldi. Verileri Google Sayfalarına yapıştırın, tarih sütununu vurgulayın, biçimi tıklayın, ardından sayı ve sayıyı bir kez daha sayı biçimine dönüştürün. Daha sonra verileri kopyalayıp Excel elektronik tablosuna yapıştırabilirim, tarihleri ​​tıklattıktan sonra hücreleri tarihe biçimlendirdim. Çok hızlı. Bu yardımcı olur umarım.


0

Bu sorun beni çıldırtıyordu, sonra kolayca düzeltilebildim. En azından verilerim için çalıştı. Yapması ve hatırlaması kolaydır. Fakat bunun neden işe yaradığını bilmiyorum ama yukarıda belirtildiği gibi değişen tipler yok. 1. Tarihi içeren sütunları seçin 2. Tarihlerinizde bir yıl arayın, örneğin 2015. Tümünü aynı yıl, 2015 ile değiştir'i seçin. 3. Her yıl için tekrarlayın. Bu, türleri yıllara göre gerçek tarihlere değiştirir.
Verilerinizde uzun yıllar varsa, bu hala zahmetlidir. Hızlı olanı 201'i 201 ile aramak ve yerine koymaktır (2010'dan 2019'a kadar değiştirmek için); 200'ü 200'le değiştir (2000'den 2009'a kadar); ve diğerleri.


0

Tarihleri ​​seçin ve bu kodu üzerine çalıştırın.

On Error Resume Next
    For Each xcell In Selection            
        xcell.Value = CDate(xcell.Value)     
    Next xcell                              
End Sub

-1

Mac kullanıyorum.

Excel tercihlerine git> Düzenle> Tarih seçenekleri> Tarih sistemini otomatik olarak dönüştür

Ayrıca,

Filtrelemede Tablolar ve Filtreler> Grup tarihleri ​​bölümüne gidin.

Sorun muhtemelen farklı bir tarih sistemine sahip bir dosya aldığınızda ve bu sizin excel tarih işlevinizi bozduğunda başladı


-2

Ben genellikle sadece sıralama veya toplama amacıyla kullanmak için fazladan bir sütun oluştururum year(a1)&if len(month(a1))=1,),"")&month(a1)&day(a1).

Bu yyyymmddsıralanabilir bir sonuç sağlayacaktır. len(a1)Sadece kullanmak 1-9 ay boyunca fazladan bir sıfır eklenmesini sağlar.


2
Tarihler tarih olarak tanınmadığından bu işlem yardımcı olmaz. Ayrıca, sıralama amacıyla ek sütunların kullanılması nadiren gereklidir
CallumDA
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.