• DİKKAT

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

8 karakterli kodun dört karakteri ile talep edilen ürünün orjinal hali ile listelenmesi

  • Konbuyu başlatan Konbuyu başlatan ATEMİ
  • Başlangıç tarihi Başlangıç tarihi

ATEMİ

Altın Üye
Katılım
9 Ocak 2006
Mesajlar
457
Excel Vers. ve Dili
Office 2021 Türkçe
Merhaba Arkadaşlar
"EX915631"formatında ürün kodu var
"EX9" ilk 3 karakter grup kodu
"1563" ürün esas kodu
"1" birinci parçası (2 ise ikinci parçası gibi...
Müşteri "15631" bu şekilde sipariş veriyor bunun "EX915631" formatta kaç parça varsa listelenmesine uygun bir işlev arıyorum.
Teşekkür ederim.
 

Ekli dosyalar

Merhaba,

Müşterinin kaç adet istediğini hangi alandan anlıyorsunuz?

Müşteri talep alanına sadece 1563 yazmışsınız. Bu da ürünün ana kodu sanırım.
 
Üstadım adedin burada önemi olmadığı için kalabalık olsun istemedim.
Müşteri ana kodu üzerinden sipariş veriyor (1563 gibi)
Bunu diğer bileşenlerle birlikte listelemek istiyoruz.
Başında "EX9" ve sonunda "1" gibi gelmesi gerekir ama daha önemli olan sondaki diğer parçalarla birlikte listelenmesi

yani 1563
EX915631
EX915632
EX915633 olarak listelenecek
 
Korhan Bey bir standart yok aslında genelde 3 parça oluyor ama bu daha fazla da olabilir.
 
Bu formül işinize yarayabilir..

C++:
=LET(Talep;A2:.A100;No;3;Sayaç;SIRALI(SATIRSAY(Talep)*No);"EX9"&İNDİS(Talep;TAMSAYI((Sayaç-1)/No))&(MOD(Sayaç-1;No)+1))
 
Korhan Bey 2 konu var.
Birincisi, ürünlerin sonuna 1 den başlaması lazım 0 dan başlıyor. Sondaki karakter parça sayısı olduğu için sıfırıncı parça gibi oluyor.
İkincisi de sizin dikkatinizi çeken "Peki neden 3 adet? " konusu bu soru önemli bir soru olmuş parça sayısı ileride artabilir.
 
Bu arada siz kendinize has bir işlev mantığı kullanıyorsunuz. Hiç duymadığım işlevleri sizde öğreniyoruz, hiç akla gelmeyecek mantık kullanıyorsunuz maşallah
 
No;3 sanırım burası fazla bunu 20 yaptım kodun sonuna 20 ye kadar uzattı.
firma kod sekmesinde olan kodlar nihai olanlar. burada her kod kaç parçadan ibaretse (3 den fazla da olabilir) o ürünün o kadar kodu var (sondaki parça sayısı eklendiği için o da ayrı bir ürün gibi değerlendiriyor.)
Bu durum bir çok müşteri için önemli olmadığından siparişi esas kod üzerinden veriyor
 
Mesele en baştaki 1563 müşteri kodlu ürünü, aşağıdaki şekilde listeliyor
EX915630 (sondaki sıfır sıfırıncı parça olarak algılanıyor 1 den başlasa daha iyi olur)
EX915631
EX915632
EX915633 (3. parça bu artabilir)
 
Üstteki mesajımdaki formülü güncelledim. Son halini deneyiniz.


Aşağıdaki formülde ise B sütununda üretilecek adetleri girerseniz liste ona göre oluşur.

C++:
=LET(Talep;A2:.A100;Sayaç;B2:.B100;Seri_No;"EX9";Satır_Oluştur;LAMBDA(X;LET(Y;MAK(0;TAMSAYI(S(İNDİS(Sayaç;X))));EĞER(Y>0;Seri_No&İNDİS(Talep;X)&SIRALI(Y);)));Liste;BIRAK(REDUCE("";SIRALI(SATIRSAY(Talep));LAMBDA(Z;X;DÜŞEYYIĞ(Z;Satır_Oluştur(X))));1);FİLTRE(Liste;Liste<>""))
 
Demek ki sizin sürümün desteklemediği bir fonksiyon var. Bende Ofis 365 kullanıyorum. Bende formül sonuç veriyor.

Ofisin INSIDER sürümüne kayıt olup güncelleme yaparsanız en güncel versiyona sahip olabilirsiniz.
 
2021 sürümüne uygun bir formülle yapılamaz mı? tek bilgisayarda kullanılmayacak yine bu bilgisayarda geçsek de diğerlerinde yine hata verecek
 
Korhan Bey sizi de geç saatlere kadar esir ettim. Benim için uykunuzdan olmayın müsait olunca da bakabilirsiniz
 
2021 sürümü için 1-2-3 sıra numarası üreten formülün çalışması gerekir.

Değişken talep miktarı için ofis 2021 sürüme uygun formül aşağıdaki gibi olabilir. Deneyip sonucu bildirirsiniz.

C++:
=LET(Talep;FİLTRE(A2:A100;(A2:A100<>"")*(S(B2:B100)>0));Miktar;S(FİLTRE(B2:B100;(A2:A100<>"")*(S(B2:B100)>0)));Satır_Say;SATIRSAY(Miktar);Toplam_Miktar;TOPLA(Miktar);No;SIRALI(Toplam_Miktar);Seri;SIRALI(Satır_Say);Kümülatif;DÇARP(--(Seri>=DEVRİK_DÖNÜŞÜM(Seri));Miktar);Say;DÇARP(DEVRİK_DÖNÜŞÜM(--(Kümülatif<DEVRİK_DÖNÜŞÜM(No)));SIRALI(Satır_Say;1;1;0));Grup;Say+1;X;No-EĞER(Grup=1;0;İNDİS(Kümülatif;Grup-1));"EX9"&İNDİS(Talep;Grup)&X)
 
Korhan Bey selamlar,
Uyguladım. EX915631 den başlayarak sıralı olarak devam ediyor.
 
Korhan Bey
K, L, M sütunlarında farklı denemeler yapmıştım.
mesela FİLTRE(firmakodları!A:A;EĞER(EHATA(MBUL(A2;firmakodları!A:A));0;1)) bu formülde sadece bir kodun detayını doğru getiriyor. A2 yi A2:A16 olarak değiştirdiğimde sıralama da bir sıkıntı var ve bazıları eksik geliyor.
 

Ekli dosyalar

Verdiğim çözüm işinize yaradı mı?
 
Geri
Üst