• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Soru Office 365 LAMBDA ve Recursive Formüllerle Makrosuz Ürün Ağacı (BOM)

ayv74

Yeni Üye
Katılım
11 Şub 2024
Mesajlar
4
Aldığı beğeni
0
Katkı
%0.00
Excel V
Office 365 TR
Konu Sahibi
Selamlar, üretim sektöründe çalışanların en büyük dertlerinden biri olan Ürün Ağacı (BOM) hiyerarşisiyle ilgili bir sorum var. Elimde bir ana ürün var, onun altında yarı mamuller, onların da altında ham maddeler var (Kademeli kırılım). Normalde makro (VBA) ile döngü kurularak bu ağaç patlatılabiliyor.Ancak ben makro içermeyen (.xlsx) kurumsal bir dosyada, sadece Office 365'in yeni fonksiyonlarını kullanarak bu işi çözmek istiyorum. Bir ürünün kodunu girdiğimde, onun altındaki tüm seviyeleri (1. Seviye, 2. Seviye...) derinliği fark etmeksizin tarayacak ve hiyerarşik olarak sıralayacak özyinelemeli (recursive) bir LAMBDA kurgusu yapabilir miyiz? Örnek veri yapısını ekteki dosyaya yükledim, formül sihirbazı hocalarımızın fikirlerini bekliyorum
 

Ekli dosyalar

veri tablonuzu ve bundan oluşturmak istediğiniz sonuç tablosunu basit bir örnekleme yaparak eklerseniz daha iyi olur sanırım.
 
Konu Sahibi
Galapagos hocam selamlar, haklısınız ham veriyi netleştirmeden formül kurmak zor. Kusura bakmayın atlamışım. Kafamdaki mantığı ve gitmek istediğim hiyerarşik kırılımı basitçe şöyle örnekleyebilirim:
Elimdeki Ham Veri Yapısı (Giriş):
  • Ana Parça (A) | Alt Parça (B)
  • ARABA | MOTOR
  • ARABA | ŞASİ
  • MOTOR | PİSTON
  • MOTOR | KRANK MİLİ
Formülle Almak İstediğim Hiyerarşik Çıktı (Sonuç):
Raporlama hücresine "ARABA" yazdığımda, formülün alt kırılımları derinliği fark etmeksizin tarayıp bana şu şekilde basmasını istiyorum:
  • ARABA
  • -- MOTOR
  • ---- PİSTON
  • ---- KRANK MİLİ
  • -- ŞASİ
Normalde bunu VBA makrolarında iç içe döngülerle (Do While) çözebiliyoruz. Ama kurumsal dosya .xlsx formatında kalacağı için, makro kullanmadan tamamen 365'in kendi özyinelemeli (recursive) LAMBDA fonksiyonu ve Ad Yöneticisi kurgusuyla yapabilir miyiz.
 
Örnek için teşekkürler. Kırılım hep 2 tane mi ? Yoksa
Örneğin:
Araba
Motor
Piston
Xxxxxxxx

de olabiliyor mu yoksa ?
 
Konu Sahibi
Galapagos hocam, kırılım sayısı sabit değil, ucu açık olabiliyor. Araba -> Motor -> Piston -> Segman -> Hammadde gibi 4-5 seviyeli derinliklere sahip ürün ağaçlarımız da mevcut.
Bu yüzden formülün katman sınırı olmaksızın, bir alt bileşen bulduğu sürece hiyerarşiyi aşağıya doğru patlatmaya devam etmesi gerekiyor. Ad tanımlamasındaki LAMBDA fonksiyonunun ucu açık çalışabilmesi tam olarak bu yüzden kritikti hocam. Yardımlarınız için şimdiden çok sağ olun.
 
Güzel bir "problem" :)
Benden hemen yanıt gelmez, araştıracağım. Ama biliyorum ki diğer katılımcılardan yanıt gelecektir. YZ de katkı verir sanırım.
 
Geri
Üst