Excel - JS Tarih biçimini tanır


1

Veri tabanı verilerini CSV biçiminde yayan ve şu anda mutlaka değiştiremeyeceğim bir hizmetim var.

Yürütme sorgusu standart SQL tarih biçimini döndürürken - 2014-12-26 19:41:23.012- aradaki Node.js ara yazılımı, tarihi Javascript standart tarih biçimine dönüştürüyor gibi görünüyor:

new Date().toString();
// -> Fri Dec 26 2014 19:36:00 GMT-0800 (Pacific Standard Time)

Demek istediğim, Excel bunu bir tarih formatı olarak tanıyamıyor ve bunu, excel'in tanıyabileceği bir şeye bölmek için ağır uzunluklarda gitmek zorundayım.

Çok fazla aşina olmasam da, Customformat cell özelliğinin tarih manipülasyonunda yardımcı olabileceğini biliyorum .

Excel'in bu tarih biçimini tanımasını sağlamak için ne yapmam gerekiyor?


26 Aralık 19:36:00 GMT-0800 (Pacific Standard Time) "Excel'in tam anlamıyla aldığı yol nedir?" Bunların hepsi tek bir CSV alanı mı? Ayrıca, PST de misiniz?
fixer1234

Yukarıdakilerin ikisinde de evet.
dthree

Yanıtlar:


1

Neredeyse 2 gün önce tam bir sorun vardı. Tarih bir metin biçimindeydi ve excel bir değişiklik yapmadan dönüştüremedi. İşte çalışmasını sağlamak için dizginize yapmanız gerekenler (Excel 2010'u kullanarak):

  1. Baştaki 'Fri' ve sondaki 'GMT ...' işaretini kaldırın. Metin A1’de ise, B1:

=MID(A1,4,LEN(A1)-35

  1. Gün ile yıl arasında virgül ekleyin. Yani C1 sütunu:

=LEFT(B1, 7) & "," & MID(B1,8,LEN(B1))

  1. Tarihe / saate dönüştürün. D1 sütunu:

=DATEVALUE(C1)+TIMEVALUE(C1)

Boşluklarınızın nerede olduğuna bağlı olarak, dize dizinleriyle uğraşmanız gerekebilir. Ayrıca, ekranı istediğiniz şekilde değiştirmek için özel formatı kullanmaya ihtiyacınız olacak.

Bunu da uzun bir formülde birleştirebilirsiniz:

=DATEVALUE(LEFT(MID(A1,4,LEN(A1)-35), 7) & "," & MID(MID(A1,4,LEN(A1)-35),8,LEN(MID(A1,4,LEN(A1)-35))))+TIMEVALUE(LEFT(MID(A1,4,LEN(A1)-35), 7) & "," & MID(MID(A1,4,LEN(A1)-35),8,LEN(MID(A1,4,LEN(A1)-35))))


0

Özel biçimi yalnızca istenen formatta metin veya numarasını görüntülemek. Ancak, temel veriler önce bu Özel format çalışacağından sonra excel tarafından tanınmalıdır .

Sizin durumunuzda öncelikle Excel'de soldan 25 karakter edinmeniz gerekir.

=LEFT(A1,25)

Sonra değerler olarak yapıştırın ve bundan sonra Tarih biçimini uygulayın ve Excel bunu tanıyacaktır.


1
Beni yendin. Bunu sadece LibreOffice Calc'ta test ediyordum. GMT ile başlayan her şey, farklı bir saat diliminde olmadığınız sürece gerekli değildir (bu durumda kalıcı bir ayarlama yapabilirsiniz, her kayıt için bir ayarı deşifre etmeniz ve hesaplamanız gerekmez). "Fri", türetilmemiş bir değerdir, gerekli değildir (kesmek için LEFT () yerine MID () kullanabilirsiniz), ancak Excel ve Calc bunu yok sayar. Tarih / saat olarak kaydettiğinizde, gerektiği şekilde biçimlendirebilir veya kullanabilirsiniz.
fixer1234

Teşekkürler ve ben bunu denedim (tekrar denedim), ama Excel hala bir tarih olarak tanımıyor. Kesin bir örnek:Sun Nov 02 2014 21:10:27
dthree

Sun Nov 02 2014 21:10:27o zaman şu anda metin olarak biçimlendirilmiş olması gerekir. Önce sayıya dönüştürmeniz, ardından tarih biçimini uygulamanız gerekir ve excel bunu tanıyacaktır. Bunun için değeri 1 ile çarpmanız gerekir. Like =A1*1Then tarih formatına değiştirin. Umarım yardımcı olur.
Surya

0

A1 hücresinin "Cuma 26 Aralık 2014 19:36:00 GMT-0800 (Pasifik Standart Saati)" değerine sahip olduğunu varsayarak, doğru tarih çıkışı için aşağıdaki formülü kullanın

=DATEVALUE(MID(A1,9,2)&MID(A1,5,3)&MID(A1,12,4))
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.