• DİKKAT

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

google sheet SQL sorguda ay adı sorunu

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,201
Excel Vers. ve Dili
Office 2013 İngilizce
Merhabalar,

Aşağıdaki linkte yer alan google sheet tablosunda; SQL sorguda ay adı bir ay öncesine göre geliyor

Ağustos ayı 7
Temmuz ayı 6 olarak gelmekte

https://docs.google.com/spreadsheets/d/1zqZQG2Vkd_xkpnsfgxc3hgn0VplSOt9-yuO-5t90jxo

bu durumu nasıl düzenleyebiliriz?

Kod:
=QUERY(data!A1:H;"Select MONTH(A), H,SUM(G) Where B Like 'gelir' And H Like '" & C5 & "%' Group By MONTH(A),H Order By MONTH(A) ";-1)

yardımlarınız için şimdiden teşekkürler,
iyi çalışmalar.
 
Google Sheets’in MONTH(A) fonksiyonu sadece ay numarasını döndürür, ama tarih biçimlendirmesi yapılmadan direkt kullanılınca bazen tarih-saat farkı (timezone farkı) yüzünden bir ay kayması görülebilir.
Bu sorun genelde tarih hücrelerinde saat bilgisinin gece 00:00’dan küçük olması veya zaman dilimi ayarlarının uyumsuz olması sebebiyle çıkar.

Bunu çözmek için 3 yöntem var:


1️⃣ Tarihi önce DATE ile normalize edip ayı almak
Hücredeki tarih saat verisini yuvarlayıp ayı çekerseniz kayma düzelir:

excel
KopyalaDüzenle
=QUERY(
data!A1:H;
"Select MONTH(DATE(YEAR(A),MONTH(A),1)), H, SUM(G)
Where B Like 'gelir' And H Like '" & C5 & "%'
Group By MONTH(DATE(YEAR(A),MONTH(A),1)), H
Order By MONTH(DATE(YEAR(A),MONTH(A),1))";
-1
)


Bu şekilde saat farkı veya UTC kayması önlenir.


2️⃣ Google Sheets zaman dilimini düzeltmek



  • Menüden: Dosya → Ayarlar → Hesap Ayarları → Zaman dilimi bölümüne gidip ülkenize (örn. "GMT+03:00 İstanbul") ayarlayın.

  • Kaydet → Sayfayı yenileyin.

    Bu, tüm formüllerdeki tarih işlemlerinin doğru çalışmasını sağlar.


3️⃣ Ay adını doğru göstermek için TEXT kullanmak

Ay numarası yerine direkt ay adını (veya numarasını sabit şekilde) çekmek isterseniz:

excel
KopyalaDüzenle
=ARRAYFORMULA(
QUERY(
{ARRAYFORMULA(TEXT(data!A1:A;"yyyy-MM")); data!H1:H; data!G1:G; data!B1:B};
"Select Col1, Col2, SUM(Col3)
Where Col4 Like 'gelir' And Col2 Like '" & C5 & "%'
Group By Col1, Col2
Order By Col1";
-1
)
)


Böylece SQL tarafında ay numarasıyla uğraşmaz, "2025-08" gibi sabit bir metin üzerinden sıralama yaparsınız.
 
Google Sheets’in MONTH(A) fonksiyonu sadece ay numarasını döndürür, ama tarih biçimlendirmesi yapılmadan direkt kullanılınca bazen tarih-saat farkı (timezone farkı) yüzünden bir ay kayması görülebilir.
Bu sorun genelde tarih hücrelerinde saat bilgisinin gece 00:00’dan küçük olması veya zaman dilimi ayarlarının uyumsuz olması sebebiyle çıkar.

Bunu çözmek için 3 yöntem var:


1️⃣ Tarihi önce DATE ile normalize edip ayı almak
Hücredeki tarih saat verisini yuvarlayıp ayı çekerseniz kayma düzelir:

excel
KopyalaDüzenle
=QUERY(
data!A1:H;
"Select MONTH(DATE(YEAR(A),MONTH(A),1)), H, SUM(G)
Where B Like 'gelir' And H Like '" & C5 & "%'
Group By MONTH(DATE(YEAR(A),MONTH(A),1)), H
Order By MONTH(DATE(YEAR(A),MONTH(A),1))";
-1
)


Bu şekilde saat farkı veya UTC kayması önlenir.


2️⃣ Google Sheets zaman dilimini düzeltmek



  • Menüden: Dosya → Ayarlar → Hesap Ayarları → Zaman dilimi bölümüne gidip ülkenize (örn. "GMT+03:00 İstanbul") ayarlayın.

  • Kaydet → Sayfayı yenileyin.

    Bu, tüm formüllerdeki tarih işlemlerinin doğru çalışmasını sağlar.


3️⃣ Ay adını doğru göstermek için TEXT kullanmak

Ay numarası yerine direkt ay adını (veya numarasını sabit şekilde) çekmek isterseniz:

excel
KopyalaDüzenle
=ARRAYFORMULA(
QUERY(
{ARRAYFORMULA(TEXT(data!A1:A;"yyyy-MM")); data!H1:H; data!G1:G; data!B1:B};
"Select Col1, Col2, SUM(Col3)
Where Col4 Like 'gelir' And Col2 Like '" & C5 & "%'
Group By Col1, Col2
Order By Col1";
-1
)
)


Böylece SQL tarafında ay numarasıyla uğraşmaz, "2025-08" gibi sabit bir metin üzerinden sıralama yaparsınız.
Hocam öcelikle ilginize teşekkürler,

2️⃣ Google Sheets zaman dilimini düzeltmek
ekli ekran görünütüsünde olduğu gibi zaten

1️⃣ ve 3️⃣ nolu formülleri ekli dosya üzerinde uygulmaya çalıştım ama hata verdi, bir yerlerde eksik yaptım galiba;
rica etsem dosya üzerinde bakabilir misiniz,

https://docs.google.com/spreadsheets/d/1zqZQG2Vkd_xkpnsfgxc3hgn0VplSOt9-yuO-5t90jxo


tekrar teşekkürler,
iyi Çalışmalar.
 

Ekli dosyalar

  • 150849.jpeg
    150849.jpeg
    56.4 KB · Görüntüleme: 3
Merhaba,

Burada sorun irdelenmiş.


Google E-Tablo sayfasında direkt fonksiyon olarak kullanılınca MONTH fonksiyonu normal ayın indeksini veriyormuş. Ama QUERY içinde ay indeksleri 0 (sıfırdan) başlıyormuş.
 
Merhaba,

Burada sorun irdelenmiş.


Google E-Tablo sayfasında direkt fonksiyon olarak kullanılınca MONTH fonksiyonu normal ayın indeksini veriyormuş. Ama QUERY içinde ay indeksleri 0 (sıfırdan) başlıyormuş.
teşekkürler Korhan Hocam

sonuç olarak 1 fazlasını yazdır; demek için MONTH(A)+1 şeklinde denedim ama çözüm olmadı,
bu konuda bir çözüm öneriniz olabilir mi?

tekrar teşekkürler,
iyi çalışmalar.
 
Son düzenleme:
=QUERY(
data!A1:H;
"Select MONTH(A)+1, H, SUM(G)
Where B Like 'gelir'
And H Like '" & C5 & "%'
Group By MONTH(A)+1, H
Order By MONTH(A)+1";
-1
)
Bu şekilde bi dener misiniz ?
 
Son düzenleme:
=QUERY(
data!A1:H;
"Select MONTH(A)+1, H, SUM(G)
Where B Like 'gelir'
And H Like '" & C5 & "%'
Group By MONTH(A)+1, H
Order By MONTH(A)+1";
-1
)
Bu şekilde bir dener misiniz ?
Çok teşekkür ederim Mustafa Hocam
iyi Çalışmalar.
 
Rica ederim Tamer Bey. Kolay Gelsin iyi çalışmalar dilerim
 
Geri
Üst