Kodlama Proje Fikirleri: Elektronik Tablonuzdan 12 Fikir

Summary

İyi kodlama proje fikirleri, zaten sahip olduğunuz bir sorundan başlar. Bu rehber, bir öğleden sonralık temizlik menüsünden Excel'de Python ile bir veri hattına uzanan on iki projeyi listeliyor. Her projede elektronik tablonuzu arayüz olarak kullanıyor, Google E-Tablolar, Excel 365 ve eski masaüstü Excel için hangi dilin uyduğunu gösteriyoruz. Ayrıca küçük bir ilk sürümü nasıl seçeceğinizi, ilk hafta sonunuzu yiyebilecek hataları ve yapay zekâ taslaklarını nasıl güvenle kullanacağınızı anlatıyoruz.

Dizüstü bilgisayarda bir elektronik tablo ve kod editörü, yanında proje taslakları olan bir defter

Gerçekten bitireceğiniz kodlama proje fikirleri mi arıyorsunuz? Her sabah açtığınız elektronik tabloyla başlayın. Size e-posta gönderen bir takip tablosu, kendini temizleyen bir sayfa, siz dokunmadan yenilenen bir pano: bunlar gerçek kodlama projeleri ve verinin zaten elinizin altında duruyor. Aşağıdaki on iki fikrin çoğunu ben kurdum, geri kalanını iş arkadaşlarımın kurduğunu izledim. Hepsini "bir öğleden sonra"dan "bir hafta sonu"na doğru sıraladım.

Her fikrin yanında hangi dille yapılacağını, hangi Excel ya da Google E-Tablolar sürümünde çalıştığını ve kabaca ne kadar sürdüğünü yazdım. Kod örnekleri İngilizce kalıyor, çünkü Apps Script ve Excel formülleri İngilizce adlarla çalışır. Açıklamaları ise Türkçe yazdım ki her adımın ne işe yaradığını tabloyla birlikte okuyabilesiniz.

Neden bir yapılacaklar uygulaması yerine kendi elektronik tablonuz?

Çoğu kodlama proje fikri listesi aynı beş şeyi önerir: bir yapılacaklar uygulaması, bir hesap makinesi, bir hava durumu widget'ı. Bunlar iyi fikirler ama sıkıcılar, çünkü sonucu kimse gerçekten istemiyor.

Elektronik tablo projesi gerçek bir sıkıntıyla başlar. Her cuma aynı sayıları aynı sütunlara elle kopyalıyorsunuz. Onayları tek tek kovalıyorsunuz. Her ay aynı raporu baştan kuruyorsunuz. Sıkıntı gerçek olduğunda projeyi bitirirsiniz, çünkü ilk kullanıcı sizsiniz.

İkinci bir neden daha var. Elektronik tablolar size ücretsiz bir arayüz, ücretsiz bir veritabanı ve ücretsiz bir paylaşım modeli verir. Çoğu acemi projeyi öldüren kurulum işinden kurtulur ve doğrudan mantığa geçersiniz.

Hangi elektronik tablo projesi için hangi dil?

Dili trend olduğu için değil, dosyanızın nerede yaşadığına göre seçin.

Sürümlerle ilgili bir uyarı: Excel'de Python ve LAMBDA Excel 365 gerektirir. Apps Script yalnızca Google E-Tablolar'da çalışır. VBA yalnızca masaüstü Excel'de. Kurumsal, kilitli bir bilgisayar kullanıyorsanız bir fikre gönül vermeden önce bunu kontrol edin.

Hiç kod yazmadıysanız Apps Script ile başlayın. JavaScript'tir ama giriş kapısı yumuşaktır: Uzantılar'a, sonra Apps Script'e girin ve kendi tablonuza bağlı bir düzenleyicide olursunuz.

Klavyede yazan eller, monitörde parlayan bir elektronik tablo ve betik paneli

Başlangıç seviyesi kodlama proje fikirleri (her biri bir öğleden sonra)

Bunlar kabaca 20 ila 60 satır kod gerektirir. Bu sırayla yapmanızı öneririm. Bu projelerin hiçbiri ayrı bir sunucu, veritabanı ya da hesap açmanızı gerektirmez. Her şey zaten açık olan tablonun içinde döner, bu yüzden ilk denemeyi yapmak için ortam hazırlamak diye bir engel yoktur.

1. Temizlik yapan özel bir menü. Boşlukları kırpan, büyük ve küçük harfleri düzelten, boş satırları silen bir fonksiyon yazın. Sonra onOpen ile bir menüye ekleyin. Tek seferde fonksiyonları, aralıkları ve menü API'sini öğrenirsiniz. İnsanların gerçekten sakladığı ilk betik de genelde budur.

2. Aylık özet tablosu. Ham veri sekmesindeki değerleri okuyun, kategoriye göre toplayın ve sonucu ikinci bir sekmeye yazın. Bu, SUMIF'in biraz daha uzun hâlidir ve asıl mesele de bu: formüllerinizin sizin yerinize ne yaptığını tam olarak göreceksiniz. Zaten pivot tablolarla yaşıyorsanız bunu atlayın; buradaki ders döngüde, sonuçta.

3. Doğum günü ya da yenileme hatırlatıcısı. Bir sayfada tarih listesi tutun ve günlük bir tetikleyicinin, bir tarihe bir hafta kala size e-posta göndermesini sağlayın. Apps Script tetikleyicileri çoğu insan için "işte bu!" anıdır. Siz uyurken bir şey çalışır.

4. Veri doğrulama denetleyicisi. Bir sütunu tarayın ve kurallarınızı bozan her satırı vurgulayın: hatalı e-posta biçimi, negatif fiyat, eksik kimlik. İlk düzenli ifadenizi yazacaksınız ve ondan biraz nefret edeceksiniz, bu normal.

İşte gerçek bir betikte nasıl göründüğü. Bildiğim en basit hatırlatıcı bu, Apps Script düzenleyicisine doğrudan yapıştırabilirsiniz.

function sendReminders() {
  const rows = SpreadsheetApp.getActiveSheet().getDataRange().getValues();
  rows.slice(1).forEach(([name, date]) => {
    const days = (new Date(date) - new Date()) / 86400000;
    if (days > 0 && days <= 7) {
      MailApp.sendEmail("you@example.com", "Coming up: " + name, "Due " + date);
    }
  });
}

Parametre parametre: getValues() her satırı bir dizi olarak döndürür, slice(1) başlık satırını atlar ve MailApp.sendEmail(alıcı, konu, metin) gönderimi yapar. Zamana bağlı bir tetikleyici ekleyin, her sabah çalışır. Kişisel Google hesapları günde 100 e-posta alıcısıyla sınırlıdır ve tek bir çalıştırma 6 dakikada durur. Bkz. Apps Script kotaları sayfası. Kişisel bir hatırlatıcı için yeter, bülten için yetmez.

Orta seviye kodlama proje fikirleri (bir hafta sonu)

Burada elektronik tablonuzu dış dünyaya bağlamaya başlıyorsunuz.

5. Bir formla beslenen gider takibi. Bir Google Formu tabloya yazar, bir betik her kaydı kategorize eder ve bir özet sekmesi aylık harcamayı gösterir. Çirkin giriş işini Form yapar, siz kurallara odaklanırsınız.

6. Fiyat ya da hisse takipçisi. UrlFetchApp ile herkese açık bir sayfadan ya da API'den bir değer çekin, her saat zaman damgasıyla kaydedin ve geçmişi grafikle gösterin. Bir gezi için uçak biletlerini bu yöntemle takip ettim. Maalesef ders şuydu: satın almaya karar verdiğiniz gün fiyatlar yükseliyor.

7. Onay iş akışı. Bir satır "Beklemede" durumu alır, onaylayan kişiye iki bağlantılı bir e-posta gider ve tıklama tabloyu günceller. Küçük bir SaaS ürünü kurmak gibi hissettirir. Aynı zamanda insanların işte en çok istediği proje de budur.

8. Elektronik tablodan Slack özetine. Her pazartesi en çok gecikmiş beş işi bir kanala gönderin. Webhook tek bir HTTP çağrısıdır. Bu çağrıyı kendiniz yazmak istemiyorsanız, mantığı siz yazarken kodsuz bir bağlayıcı boru tesisatını halledebilir.

Masa üzerinde yapışkan notlar ve tablet üzerinde bir pano, elektronik tablo projeleri planlanıyor

İleri seviye kodlama proje fikirleri: tablonun sınırlarını aşanlar için

Tablo küçük gelmeye başladığında onu arayüz olarak tutun ve ağır işi dışarı taşıyın. Burada tablo bir veritabanı gibi değil, bir ekran gibi davranır: kullanıcı verisini girer, sonucu görür ve gerisini betik ya da harici bir servis halleder. Bu ayrımı baştan doğru yaparsanız, proje büyüdükçe hiçbir satırı baştan yazmak zorunda kalmazsınız.

9. Temizlik hattı için Excel'de Python. 200.000 satırı tekilleştirin, şirket adlarını bulanık eşleştirin, birkaç satır pandas koduyla aykırı değerleri işaretleyin. Kurulum için Microsoft'un Excel'de Python dokümantasyonu yol gösterir. Yalnızca Excel 365'te çalışır ve formülleriniz yine ızgaranın sahibidir.

10. Mutabakat betiği. İki dışa aktarımı karşılaştırın (banka ile defter, sipariş ile fatura) ve yalnızca birinde görünenleri listeleyin. Muhasebeciler ve operasyon ekipleri bunu her ay tekrarlar, bu yüzden kaba bir sürüm bile saatlerce zaman kazandırır. Önce tam eşleşmelerle başlayın, sonra tutar ve tarihler için tolerans kuralları ekleyin.

11. Tablonun üstünde kişisel bir API. Tabloyu doGet ile küçük bir web uygulaması olarak yayınlayın, JSON döndürün ve başka bir araç okusun. Ucuz, biraz hileli ve API'nin ne olduğunu anlamak için harika bir yol.

12. Yeniden kullanılabilir bir LAMBDA kütüphanesi. Hiç betik değil ama sayılır. En sevdiğiniz beş formül desenini adlandırılmış fonksiyonlara sarın, mantık tek bir yerde dursun. Biscuit buna "kemiği nereye gömdüğünü unutmamak" derdi.

İlk hafta sonunuzu yiyecek üç hata

Her elektronik tablo betiği aynı birkaç yerde bozulur. Bunları bilmek saatlerce zaman kazandırır.

Yetkilendirme istekleri. Bir betik ilk kez e-posta göndermeye ya da başka bir dosyaya dokunmaya kalktığında Google izin onayı ister. İnsanlar pencereyi kapatır, betik sessizce başarısız olur ve kodun yanlış olduğunu düşünürler. Fonksiyonu düzenleyiciden bir kez elle çalıştırın ve iletişim kutusunu onaylayın.

Tarih olmayan tarihler. Tarih gibi görünen bir hücre aslında metin olabilir ve betik bu durumda bir dizeyi bir sayıyla karşılaştırır. typeof ile kontrol edin ya da değeri new Date() içine alın. Excel'de aynı tuzak, sıralanmayı reddeden metin olarak saklanmış bir tarih şeklinde ortaya çıkar.

Zaman aşımı. Her seferinde tek bir hücreyi okuyan ya da yazan bir döngü yavaştır, çünkü her çağrı sunucuya geri gider. Tüm aralığı bir kez getValues() ile okuyun, diziyle çalışın ve bir kez setValues() ile geri yazın. Dört dakika süren bir betik çoğu zaman birkaç saniyeye iner. Apps Script'te tek en büyük hız kazancı budur ve başlangıç eğitimlerinde kimse bundan bahsetmez.

Bir şey bozulduğunda console.log() satırları ekleyin, Yürütmeler panelini açın ve gerçek hatayı okuyun. Mesaj genellikle göründüğünden daha yardımcıdır.

Gerçekçi bir ilk hafta

Bir liste yerine bir plan istiyorsanız, iş arkadaşlarıma verdiğim plan şu. Birinci gün: sıkıntıyı seçin ve istenen sonucu tek cümleyle yazın. İkinci gün: görevi bir kez elle, yavaş yavaş yapın ve her adımı not edin. Üçüncü gün: bu adımları veriyi okuyan ve sonucu günlüğe yazdıran bir fonksiyona çevirin. Dördüncü gün: çıktıyı tabloya geri yazın. Beşinci gün: bir tetikleyici ya da menü öğesi ekleyin ve bunu bir kişiye gösterin. Üçüncü günden sonra sorun hâlâ çözülmediyse, planı bırakmayın; kapsamı daha da daraltın ve yalnızca tek bir sütunla yeniden başlayın. Mükemmel bir betik için kimse madalya almaz. Her sabah çalışan kaba bir betik, "sonra" adlı bir klasörde duran cilalı bir betikten iyidir.

Peki ya yapay zekâ? Kullanın, ama yazdığını okuyun

Yapay zekâ kodlama asistanları bu tür işlerde iyidir, çünkü elektronik tablo betikleri kısadır ve hedef kolay tarif edilir. Sütunların adını, neyin olması gerektiğini ve çıktının nasıl görünmesi gerektiğini söyleyin. Saniyeler içinde bir ilk taslak alırsınız.

Uyguladığım iki kural var. Birincisi, betiği asla orijinal tabloda değil, bir kopyasında çalıştırın. Betikler, "geri al" demenizden daha hızlı bir sütunun üzerine yazabilir. İkincisi, asistandan her satırı açıklamasını isteyin, sonra bir değeri kendiniz değiştirin. Ne olacağını önceden tahmin edemiyorsanız kodun sahibi henüz siz değilsiniz. Üçüncü bir kural da eklerdim: çıktıyı elle hesapladığınız birkaç bilinen satırla karşılaştırın. Elle bulduğunuz üç değerin betikle aynı çıkması, yüzlerce satırlık bir kontrolden daha fazla güven verir.

Kahverengi bir altın retriever iki açık dizüstü bilgisayarın arasında oturmuş, ekrana bakıyor

İyi bir istem şöyle görünür: "A sütununda isimler, B sütununda son tarihler var. Önümüzdeki 7 gün içinde gelen her şeyin listesini, günde bir kez bana e-posta olarak gönder." Bu istem girdiyi, çıktıyı ve zamanlamayı açıkça belirtir. "Tablomu otomatikleştir" gibi muğlak istemler muğlak kod üretir ve sessiz hataların yaşadığı yer tam da muğlak kodlardır. İlk taslak çalışmazsa, istemi baştan yazmak yerine tam hata mesajını geri yapıştırıp düzeltme isteyin.

Düz formüller için betiğe gerek yok. Sorunu anlatın, formülü alın ve formülün Excel'de, Google E-Tablolar'da ya da ikisinde birden çalışıp çalışmadığını not edin.

Bitirebileceğiniz projeyi nasıl seçersiniz?

En küçük ilk sürümü olan projeyi seçin. "Bir tarih yaklaşınca bana e-posta at" fikri, "tam teşekküllü bir CRM" fikrinden iyidir. Çirkin sürümü yayına alın, iki hafta kullanın, sonra sizi en çok rahatsız eden kısmı geliştirin. Neyin bozulduğunu yazın, çünkü rahatsızlık listesi sonraki üç projenizi oluşturur. Bugün hâlâ kullandığım betiklerin çoğu, kimseye göstermeye utandığım dört satırlık bir hack olarak başladı.

Üç filtre işinize yarayacaktır:

Güvenle deneyip bozabileceğiniz bir yer istiyorsanız, tablodan çıkan orta seviye projeler için bulut tabanlı bir kodlama ortamı işinizi kolaylaştırır.

Pazartesi nereden başlardım

Benim seçimim: 3 numaralı proje, hatırlatıcı. Kısa, tetikleyicileri kullanıyor ve sonuç gelen kutunuza düşüyor, bu yüzden çalıştığını fark edersiniz. Sonra temizlik menüsünü ekleyin ki temizlik bir tıklama uzaklığında olsun. Ayın sonunda güvendiğiniz iki betiğiniz ve bir sonraki neyi inşa edeceğinize dair net bir fikriniz olacak.

Bu sıra önemli, çünkü ilk hafta sonunda bir şeyin gerçekten çalıştığını görmek, sonraki projeleri kurmak için en büyük itici güçtür. Hatırlatıcı size her sabah bir e-posta olarak ulaştığında, bir sonraki adımı atmak için artık kendinizi ikna etmenize gerek kalmaz.

Yapılacaklar uygulamasını atlayın. Elektronik tablonuzda zaten daha iyi bir fikir var.

Frequently asked questions

Hangi kodlama proje fikirleri yeni başlayanlar için iyidir?
Küçük ve işe yarar bir şeyle başlayın: verileri temizleyen bir özel menü, aylık bir özet tablosu, bir tarih hatırlatıcısı e-postası ya da bir veri doğrulama denetleyicisi. Her biri bir öğleden sonra sürer ve aralıkları, döngüleri ve tetikleyicileri öğretir.
Google E-Tablolar ile kodlama öğrenebilir miyim?
Evet. Google Apps Script, tablonuza bağlı bir JavaScript'tir. Uzantılar'a, sonra Apps Script'e girin; kurulum gerektirmeden hücreleri okuyabilir, e-posta gönderebilir ve zamanlanmış olarak çalıştırabilirsiniz.
Excel'de Python kodlama projeleri için iyi mi?
Büyük veri kümelerini temizlemek, bulanık eşleştirme ve istatistik için iyidir. Excel 365 gerektirir, bu yüzden Excel 2016 ya da 2019'da çalışmaz. Eski sürümlerde bunun yerine VBA kullanılabilir.
İlk kodlama projem ne kadar sürmeli?
İlk sürüm için bir öğleden sonra yeterli olmalı. Fikriniz tek bir sekmeden ve yaklaşık 60 satır koddan fazlasını gerektiriyorsa, daraltın ve önce daha küçük sürümü yayına alın.
Elektronik tablo betiklerimi yazmak için yapay zekâ kullanmalı mıyım?
Evet, ilk taslak olarak. Dosyanın bir kopyası üzerinde deneyin, asistandan her satırı açıklamasını isteyin ve neyin ne işe yaradığını anlamanız için bir değeri kendiniz değiştirin.
Apps Script'ten önce JavaScript bilmem gerekir mi?
Hayır. Temelleri yaparken öğrenebilirsiniz. Fonksiyonlar, diziler ve döngüler çoğu başlangıç seviyesi elektronik tablo projesini kapsar.