google sheet SQL sorguda ay adı sorunu

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,168
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.
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,376
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
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.
 

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,168
Excel Vers. ve Dili
Office 2013 İngilizce
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

Korhan Ayhan

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

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,168
Excel Vers. ve Dili
Office 2013 İngilizce
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:

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,376
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
=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:

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,376
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Rica ederim. Oldu mu Tamer Bey Çalıştı mı ?
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,376
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Rica ederim Tamer Bey. Kolay Gelsin iyi çalışmalar dilerim
 
Üst