1 puan yazan GN⁺ 2023-08-23 | 1 yorum | WhatsApp'ta paylaş
  • Microsoft, Excel içinde Python tabanlı veri analizi ve görselleştirme yapılabilen entegre bir özelliği herkese açık önizleme olarak sunmaya başladı
  • Ek kurulum gerekmeden Excel şeridinden Python'a erişilebiliyor ve sonuçlar mevcut formüller, grafikler ve PivotTable ile birlikte düzenlenebiliyor
  • Yeni PY işlevi, Python verilerini elektronik tablo ızgarasında görünür hale getiriyor; Anaconda iş birliği sayesinde pandas, statsmodels, Matplotlib gibi araçlar Excel içinde kullanılabiliyor
  • Hesaplamalar yerelde değil, Microsoft Cloud üzerinde çalıştırıldıktan sonra çalışma sayfasına geri dönüyor; Matplotlib ve Seaborn tabanlı görselleştirmeler de oluşturulabiliyor
  • Herkese açık önizleme, Microsoft 365 Insiders'ın Beta Channel kanalında önce Windows'ta başlıyor; önizleme bittikten sonra ücretli lisans olmadan bazı özellikler kısıtlanacak

Excel'in içine gelen Python analizi

  • Microsoft, Excel'e Python entegrasyonu ekleyerek verilerin elektronik tablo içinde işlenip analiz edilmesini sağlıyor
  • Kullanıcılar Excel şeridinden doğrudan Python'a erişebildiği için, alışık oldukları Excel ortamından çıkmadan ileri düzey analiz çalışmalarını sürdürebiliyor
  • Python ile oluşturulan grafikler ve kütüphane çıktıları, Excel'in formülleri, grafikleri ve PivotTable yapılarıyla birleştirilerek daha da geliştirilebiliyor

Ek kurulum gerektirmeyen yerleşik yapı

  • Python entegrasyonu, Excel'in yerleşik bağlayıcısı ve Power Query'nin bir parçası olarak sunuluyor
  • Ek yazılım kurulumu veya ayrı bir eklenti yapılandırması gerekmiyor
  • Yeni PY işlevi, Python verilerini Excel elektronik tablo ızgarası içinde görünür kılıyor

Anaconda kütüphaneleri ve görselleştirme

  • Microsoft, kurumsal Python deposu Anaconda ile iş birliği yaparak Excel içinde başlıca Python kütüphanelerinin kullanılmasını sağlıyor
  • Kullanılabilen kütüphaneler arasında şunlar yer alıyor
    • pandas
    • statsmodels
    • Matplotlib
  • Excel kullanıcıları, Python verilerine dayalı olarak formüller, PivotTable'lar ve grafikler oluşturabiliyor
  • Matplotlib ve Seaborn gibi grafik kütüphaneleriyle şu görselleştirmeler üretilebiliyor
    • heatmap
    • violin plot
    • swarm plot

Hesaplamalar Microsoft Cloud üzerinde işleniyor

  • Python kodu Excel elektronik tablosu içinde yazılıp kullanılsa da, hesaplama işlemleri yerel Excel'de değil Microsoft Cloud üzerinde gerçekleştiriliyor
  • Çalıştırma sonuçları daha sonra tekrar Excel çalışma sayfasına döndürülüyor

Kapsam ve lisans koşulları

  • Excel'de Python herkese açık önizlemesi, Microsoft 365 Insiders için Beta Channel'da sunuluyor
  • İlk aşamada kullanım Windows ile sınırlı
  • Microsoft, daha sonra bunu diğer platformlara da genişletmeyi planlıyor
  • Önizleme süresince özellik Microsoft 365 aboneliğine dahil
  • Önizleme sona erdikten sonra ücretli lisans olmadan bazı özellikler kısıtlanacak

1 yorum

 
GN⁺ 2023-08-23
Hacker News yorumları
  • Eskiden Excel geliştiricisi olarak çalışırken Python’ı Excel’e eklemeye çalışıp başaramamış biri olarak, bugünkü haber benim için hoş bir sürpriz
    Yaklaşık 7 yıl önce Excel ekibinden ayrılma fırsatım vardı; o sırada yöneticimin yöneticisi, Python’ı Excel’e koymak istediğimi biliyordu ve kalırsam bu işi bana vereceğini söyledi. 6 aylık bir iş olacağını düşündüğüm şey yaklaşık 3 yıllık bir projeye dönüştü; Python tarafı belirsizleşti ve sonunda JavaScript özel fonksiyonlarını Excel’e ekleme yönünde piyasaya çıktı
    Python da AzureML v1 tabanlı olarak “bulutta” çalışıyordu, ancak yerelde çalıştırılıp çalıştırılmayacağı üzerine tartışmalar oldu. AzureML iş ortağı ekibinde yeniden yapılanma, yeniden lansman, yeniden işe alımlar ve PM ayrılıkları yaşandı; başka bir iş ortağı ekibi kodumuzu JavaScript’i dış bir süreçte çalıştırmak için kullanabileceklerini fark edince, Python’dan çok o özelliği yayımlamaya zaman harcar olduk
    Temel iş, Excel hesaplama motorunu değiştirip fonksiyonların eşzamansız hesaplama yapmasını sağlamaktı; böylece uzak uç nokta JavaScript, Python ya da başka herhangi bir şeyle hesaplama yaparken kullanıcı elektronik tablonun başka bölümlerinde çalışmaya devam edebiliyordu. Eskiden hesaplama sırasında elektronik tablo kilitlenirdi; uzun süren ve ne zaman biteceği belli olmayan hesaplamalar için bu iyi değildi. Yaptığımız şeylerin bir kısmının bu özelliğe girip girmediğini merak ediyorum
    “Recalc or die”

    • Eşzamansız JavaScript fonksiyonları sayesinde xlwings ve Python ile kararlı özel fonksiyonlar yayımlayabildik
      Office.js’in sorunu, ortalama bir Excel kullanıcısı için npm bağımlılık yığını nedeniyle başlamanın çok zor olması; profesyonel geliştiriciler bile epey zorlanıyor. Kullanıcıların Node.js kullanmak zorunda kalmamasını sağlamış olmaktan memnunum: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
    • Birkaç yıl önce zaten çalışan “Excel içinde Python” yapmıştık; uzaktan SQL ve Matlab/R de çalışıyordu
      Şimdi terk edilmiş bir proje: https://alphawolfxl.com/
      Beta testi için rica ettiğim birkaç kişi “şirket bunun parasını ödemez” deyince zamanımı boşa harcadığım izlenimine kapılıp bırakmıştım; şimdi bunu görünce karmaşık hissediyorum
    • Microsoft’un neden yeni teknoloji için düzgün örnekler hazırlamadığını merak ediyorum. Sunulan az sayıdaki örnek de yalnızca programcılara yönelik
      Genel olarak JavaScript’in Excel’de nasıl çalıştığını inceleyebileceğiniz gerçek çalışan kod eksik; şu anda neredeyse “baykuş nasıl çizilir” seviyesinde hissettiriyor
    • İç analiz API’mizi çağırmak için JavaScript özel fonksiyonları kullanıyoruz; üzerinde çalışması oldukça iyiydi
  • Yalnızca Microsoft Cloud kullanmak yerine yerel Python çalıştırmayı da desteklese iyi olurdu; yine de tek başına bu özellik bile Excel’i ciddi biçimde modernleştirebilir gibi görünüyor
    Bu tür verileri göstermek isteyen web sitelerine olan ihtiyacı bile ortadan kaldırabilir. Eski işimde sadece içeriden birkaç kişinin kullandığı bir analiz web sitesi yapmıştım; o zaman böyle bir özellik olsaydı bununla rahatlıkla ikame edilebilirdi gibi geliyor

    • Bunu söylediğimde hep tepki alıyorum. Kullanıcılar sadece Excel ile verileri özgürce analiz etmek istiyor; içinde bulunduğum BT ise onların yerine bir web uygulaması yapmaya çalışıyor. Sonunda kullanıcılar memnun kalmıyor, çünkü en başta istedikleri şey Excel’di
      Sürekli şunu anlatıyorum: SQL Server ile bir data mart kurup ETL araçlarıyla analiz için gereken verileri içine doldurmak yeterli. Ham verilere erişim vermek zorunda değilsiniz. Buna rağmen herkes bana tuhaf tuhaf bakıyor ve bunun yerine milyonlarca dolarlık bir Tableau devreye alma projesi yapmak istiyor. Kullanıcılar bunu istemiyor; gerçekten akıl alır gibi değil
    • Excel ekibinde çalışıyorum. Bunun neden önemli olduğunu özetleyip bgruenbaum@microsoft.com adresine gönderirseniz PM’e iletirim
      Ya da Excel web/masaüstü geri bildirim arayüzünden de gönderebilirsiniz. PM’ler bu geri bildirimlerin tamamını okuyor
    • Azure’da internete erişimi olmayan hipervizör yalıtımlı konteynerlerde çalıştırmanın birkaç önemli nedeni var
      Tüm kullanıcılara tutarlı bir deneyim garanti edebiliyoruz. Zamanla sürümlerin ayrıştığı bir ortamda herkesin kendi yerel Python dağıtımını sürdürmesi ve bunun Excel ile çalışacağını garanti etmesi gerektiğini düşünmek korkunç
      Bir Excel çalışma kitabını başka kullanıcılarla paylaştığınızda hesaplamanın kendiliğinden çalışmasını sağlayabiliyoruz. Birbirinden farklı yerel Python kurulumlarına bağımlı olursa bu olmaz ve kullanıcılar büyük hayal kırıklığı yaşar
      Güvenlik de büyük bir konu. Yerel kullanıcı yetkileriyle Python kodu çalıştırabilen bir Excel dosyasını açtığınızı hayal etmeniz yeterli
      İkinci noktaya da tamamen katılıyorum. Mevcut BT altyapısıyla entegre olan iç uygulamaları Python ile yapmak, en iyi ihtimalle bile can sıkıcı bir iş. Excel neredeyse her yerde zaten BT altyapısının bir parçası ve programlanabilir, tepkisel bir tuval
      Açıklama: Bu özelliğin tasarım ekibinde çalışıyorum
    • Microsoft Cloud’da çalışması, bizim şirkette onu makrolardan daha kullanışlı bile yapabilir
      Burada makrolar istemci makinelerinde kötü amaçlı kod çalıştırmanın bir yolu olarak görülüyor ve bu riskin, sağlayacağı faydaya değmediği düşünülüyor
    • Bulutla sınırlamak bir ölçüde mantıklı. Python’ı Excel dosya biçiminin temel bir parçası hâline getirirseniz taşınabilirlik azalır ve ileride türlü uyumluluk baş ağrıları doğabilir
  • Burada açıkça tehlike sinyalleri görünüyor. Excel’in özündeki güç, çalışma kitaplarının bağımsız olarak var olabilmesinden geliyor; şimdi ise süreç sonsuza dek buluta bağlanmış oluyor.
    Üç yıl sonra vefat etmiş bir iş arkadaşının çalışma kitabını açmanız gerektiğinde, bu entegrasyon özelliğini tedarikçinin desteklemeye devam edip etmemesine bağlı olacaksınız.
    Herhangi bir işin ilk adımı “yazılımı yeniden çalışır hale getirmenin yolunu bulmak” olduğunda bu berbat bir durum. Son birkaç on yılda Excel, Outlook, Word’ün çeşitli eklentileri yüzünden bunu defalarca yaşadım; üstelik o eklentiler işlemenin kendisini uzaktan da yapmıyordu.

    • “Hiçbir şeye sahip olmayacaksınız ama mutlu olacaksınız” artık elektronik tablolara kadar gelmiş mi yani? Masanın başında ücretli emekle ürettiğiniz şeye bile sahip olamıyorsunuz.
    • Açıkçası bu yol daha yönetilebilir görünüyor. Anaconda dağıtımı kullanıldığına göre her çalışma kitabını belirli bir dağıtıma bağlayıp güncelleme/geri alma olanağı sağlarsanız, yerel kurulumları yönetmekten çok daha kolay hale gelir.
    • Yalnızca buluta değil, aboneliğe de bağlanıyor. Aboneliği iptal ederseniz, duyuruda ücretli bir modül olabileceği söylenen o aboneliğe sahip değilseniz ya da Excel size bir tedarikçi tarafından verildiği için aboneliğiniz yoksa, o Excel sayfasını kullanmakta zaten sorun yaşarsınız.
    • Son 7 yıl kadar bulut dışı bir elektronik tablo kullandığımı sanmıyorum. Yine de önem düzeyi yüksek ve uzun ömürlü işler için Excel kullanmam. Daha çok beyin fırtınası ya da sunumlara ekran görüntüsü olarak koyma amaçlı.
    • Bulut kullansanız da kullanmasanız da bu sorun zaten var. Excel çalışma sayfaları zaten web’e veya başka dosyalara dış bağlantılar içerebiliyor; o web kaynağı ya da dosya yoksa iş bitiyor. Eski dosyalar, modern makinelerde artık çalışmayan yazılımlarla ancak açılabiliyor olabilir.
      Bu yüzden yedekleri ara sıra gerçekten geri yükleyip denemek ya da bu tür durumlarda önemli dosyaları doğrulamak önemli.
  • “Excel’de Python” haberine heyecanlanmıştım, sonra “bulutta çalışır” ifadesini görünce hevesim kaçtı. Bunun, insanları bulut hizmetine bağlamak dışında bir nedeni yok gibi görünüyor. Beni güvenli olmayan yazıcı mürekkebinden koruyacaklarını söylemelerine fazla benziyor.
    Normalde MS Office ürünlerini severim ve iyi niyetli yaklaşmaya çalışırım. Kilitleme dışında Python’un bulutta çalışmasını gerektirecek makul ve iyi bir neden varsa duymak isterim.

    • Tehlike sinyali. M$ insanları kendi bulutuna itiyor. OneDrive’ın yerel dosya sistemini ele geçirme biçimi, birçok kişinin yaşadığı iyi bir örnek.
      M$’ten uzaklaşılması gereken zamanın üzerinden bence yaklaşık 5 yıl geçti. Windows’tan Office’e kadar tüm ürünlerinde zaten tüketici karşıtı özellikler var.
    • Müşteriden yerel Python kurulumunu yönetmesini istememek bir gerekçe olabilir.
      Elbette Excel+Python ileri düzey kullanıcılarının kendi Python runtime ortamlarını getirmeye ve sürdürmeye alışkın olma ihtimalinin yüksek olduğunu da anlıyorum.
    • Muhtemelen çoğu Excel kullanıcısının Python kurup çalıştırma deneyimi olmadığı içindir. Python bilen biri için bile epey zahmetli bir iş.
      Excel’i iOS ve Android cihazlarda kullananlar da var. Bu yöntemle onlar da elektronik tablonun içindeki Python’u kullanıp okuyabilir.
    • Grist de var. Excel’in bir kopyası değil ama elektronik tablo/hibrit veritabanı olduğu için benzer işlerin bir kısmını yapabiliyor; en önemlisi de formüllerde Python kullanabiliyorsunuz ve yerelde çalıştırmak isterseniz self-hosting seçeneği de var.
  • 2005’te arkadaşlarımla Resolver Systems adlı bir şirket kurup Python destekli elektronik tablo Resolver One’ı yaptık.
    Ne yazık ki pazarda tutmadı; yönümüzü değiştirip çevrimiçi kodlama ve hosting ortamı PythonAnywhere’i yaptık. O ise oldukça iyi gitti ve geçen yıl Anaconda tarafından satın alındı. Şimdi de çember kapanmış sayılır.
    Açıklığa kavuşturayım: Anaconda içinde bu özelliği geliştiren ekip, PythonAnywhere ekibinden tamamen ayrı. Aynı kişiler olsaydı Hollywood tarzı bir hikâye için harika olurdu.

    • İyi bir üründü. Sunumunu hatırlıyorum; Londra Python finans buluşmalarında da birkaç kez karşılaşmıştık. “Enthought Python Distribution”ı da hatırlıyorum.
      Ama sorun, Resolver’ın IronPython tabanlı olması nedeniyle düzgün çalışmayan epey kütüphane bulunmasıydı.
    • İlk uygulamamı PythonAnywhere’de yaptım. Neredeyse 10 yıldır orada çalışan şeyler hâlâ var.
      PythonAnywhere web uygulamasında küçük düzeltmeleri doğrudan yapabilmek gerçekten güzeldi; GCP/AWS kullanmaya başladığımda o özelliği çok özledim.
    • PythonAnywhere harika. Başkaları gibi benim de web programlamaya ilk adım attığım yerdi.
    • Bu haberi duyar duymaz aklıma hemen Resolver Systems geldi.
  • “Python hesaplamaları Microsoft Cloud’da çalışır” ifadesini görünce bir iş arkadaşım şaka yollu “Microsoft bile Windows’ta yerel Python kurulumunu yönetemiyor galiba…” dedi.
    Ama Microsoft’un gerçekten de yerel Python ortamı yapılandırması sorununu nihayet çözdüğünü ve Excel’in işletim sistemi genelinde standart Python paket yöneticisine dönüştüğünü hayal etmek eğlenceli.
    $ excelpip install fastapi==9.11.23
    fastapi version 11.09.2023 aranıyor…

    • 20 yıl önce Debian’ın apt’siyle uğraştığımdan beri Microsoft’un Windows’ta paket yönetimini çözmesini bekliyorum. Alay etmiyorum; Microsoft’un ürün karmaşıklığı ve geriye dönük uyumluluk takıntısı düşünüldüğünde, yazılım yönetimini ileri taşıyabilecek aktör daha çok o gibi görünüyordu.
      Sorun alanının derinine inip açık kaynak tarafında çıkanların ötesine geçen bir paket yöneticisini yeniden icat edeceklerini sanmıştım.
      Bunun yerine bugün Windows Update, Windows Features, Microsoft Store, Software Center ve winget var. winget, Microsoft’un Windows için yaptığı paket yöneticisi; üstelik Microsoft’un yaptığı bir başka Windows paket yöneticisinden kurulması gereken araç.
    • Böyle bir sorun akla geliyor. Microsoft’un LTSC paket kümesini sabitlemesi mi gerekir? Bir nesil geriden gelen Excel sürümünü kullanan $GOV_AGENCY dünyayla nasıl iş birliği yapacak?
  • LibreOffice’un havayı çoktan koklamış olması gerekirdi. İlke olarak Python betikleme mümkün, ama aşırı zahmetli ve dağınık; iyileştirme yol haritası da yok gibi görünüyor
    Aynı uyarı Linux masaüstü ve genel olarak onun uygulamaları için de geçerli. Giderek daha fazla kapalı platform, bulut tabanlı olarak, çoğu zaman Python API’leri üzerinden mevcut uygulamalara gelişmiş “AI” özellik uzantıları ekleyecek
    Açık kaynak dünyasındaki çeşitli akımların bu kadar silo hâline gelmiş olması üzücü. Parçaların toplamından daha büyük bir potansiyel boşa harcanıyor

    • Çoğu durumda insanları Excel’e ve diğer kapalı ürünlere bağlı tutan şey gelişmiş özellikler değil, önemsiz görünen şeyler
      LibreOffice elektronik tablolarında ve Apple Numbers’ta en çok şikâyet ettiğim şey bitişik olmayan seçim alanlarını kopyala/yapıştır işleme biçimi
      Örneğin 5 satır 3 sütun veride 1 2 3, 7 8 9, a b c satırlarını seçip kopyaladıktan sonra d e f altına yapıştırırsanız Excel yalnızca seçilen satırları arka arkaya ekler. LibreOffice ve Numbers ise aradaki boş satırları da korur
      Bu davranışı değiştiren bir ayar bulamadım. Excel de tersine aralıkların korunmasını isteyen biri için sinir bozucu olabilir, ama ben aralıkların korunmasını neredeyse hiç istemediğim için LibreOffice ve Numbers kullanışsız geliyor
    • LibreOffice neredeyse en başından beri Python betiklemeyi içeriyor
      İnsanların bunu pek önemsememesinin nedeni, ofis paketlerinin en popüler kullanım senaryosunun Microsoft dosya biçimleriyle birlikte çalışabilirlik olması
    • ScriptForge’a bakmaya değer: https://help.libreoffice.org/latest/en-US/text/sbasic/shared...
      LibreOffice içinde betik çalıştırmak için APSO script organiser öneriliyor: https://extensions.libreoffice.org/en/extensions/show/apso-a...
    • Bana tam tersi gibi görünüyor. Python’da betik yazmak o kadar kolay ki Excel’in kendi tabutuna çivi çakması gibi görüyorum
      Hiç programlama dili kullanmamış yaşlı kullanıcı kitlesi yaşlanıp emekli olurken, Excel’e Python bağlamayı öğrenenler sonunda Python’ı daha çok tercih edecek. Çünkü daha esnek ve genişletilebilir
      Temel hesap tablosu kullanımı dışında Excel kullanmak için bir neden yok. Biri elektronik tablo isterse Python ile oluşturmayı otomatikleştirip bir daha doğrudan uğraşmamalarını sağlıyorum
    • LibreOffice’in önce çözmesi gereken başka çok sorunu var. Çok yavaş
  • Hayal kırıklığı
    “Excel’de Python şu anda Windows’ta Beta Channel çalıştıran kullanıcılara sunuluyor. Bu özellik önce 16.0.16818.2000 derlemesinden itibaren Windows için Excel’e dağıtılıyor, ardından diğer platformlara gelecek.” [1]
    “Excel’de Python, Windows için Excel’de kullanılabilir. Bu özellik Mac için Excel, web için Excel, iPad için Excel, iPhone için Excel, Android için Excel’de kullanılamaz. Desteklenmeyen platformlarda Python içeren çalışma kitapları görüntülenebilir, ancak Python hücreleri yeniden hesaplandığında hata gösterilir.” [2]
    [1] https://techcommunity.microsoft.com/t5/excel-blog/announcing...
    [2] https://support.microsoft.com/en-us/office/introduction-to-p...

  • “Python hesaplamaları Microsoft Cloud’da çalışır” deniyor; almayayım

    • O kısım benim de gözüme çarptı. Neden böyle bir modeli seçtiklerini merak ediyorum
    • Elektronik tablo paketinde mükemmel bir Python entegrasyonunu çok istiyorum, ama bunu denemeyi bile düşünmem
  • Bir dakika. LibreOffice’te yıllardır Python vardı, kimse umursamadı; bunun yerine “gerçek iş” için %100 uyumlu VBA gerektiğinden şikâyet edildi. O insanlar şimdi nerede?

    • Buradayız. Sorun yalnızca %100 uyumlu VBA değil; Excel’de çalışmayacak VBA tabanlı elektronik tablolar oluşturmak için tamamen yeni bir API öğrenmek zorunda kalmak
      LibreOffice VBA, Office VBA ile uyumlu olsaydı eski Windows sistemlerini bir yerlerde tutmaya devam etmek için bir nedenimiz olmazdı
      Bunu para kazanmak için yapıyoruz ve Excel’de çalışmayan Excel elektronik tabloları satın almak isteyen kimse yok
    • Excel’in daha fazlasını yapabilmesi canımı sıktığı için değil; LibreOffice’te alışık olunan ya da kullanmak zorunda olduğunuz özellikler olmadığı için hâlâ rahatsız edici olabiliyor
    • Müşterilerimden biri LibreOffice kullanıyor olsa seve seve kullanırım. Ama kimse kullanmıyor
      Linux’ta LibreOffice Calc ile çalışıyorum; Excel’in Linux desteği sıfır olduğundan, müşteriye sorunsuz gönderebileceğim kadar uyumluluk olsa güzel olurdu, ama henüz ona yaklaşmış bile değil
    • Özellikler kötüyse insanlar kullanmaz
      Varlığından haberdar değillerse insanlar kullanmaz
      Başka bir şeye alışmışlarsa insanlar onu ister
    • LibreOffice’in sorunu, Python desteğinin yalnızca kâğıt üzerinde var olmasıydı