Soru Alt Kademelere Göre Toplam Sayı Çıkartma

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Merhaba

Ek dosyayı inceleyin.

istediğiniz sonuç bu ancak dosya yapınızı kontrol etmelisiniz.
Verilerinizde " ," yerine "." kullanılan yerler var.
 

Ekli dosyalar

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Öncelikle Ürün Ağacı yani öge no sütununu düzenlemeniz gerekir.
1,5 ürün kodu hem A8 hücrede hem A53 hücrede var, bu şekilde olmamalı.
Bu şekilde olursa tüm tabloda çalışacak formül yazamazsınız. benim yaptığım gibi dar bölgesel formül olmak zorunda kalırsınız.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Tablonuzda; Parça numarası x,xx (virgül ile ayrılmış) şeklinde ve kullanılacak malzemeler x.xx (nokta ile ayrılmış) ise notasyonda sorun yok, ToplaÇarpım uygun fonksiyondur.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Tüm alt kodlar için aradaki noktalama işaretini her daim "NOKTA" olarak kullanabiliyormusunuz? Ve excele aktardığınızda hepsi metin formatında geliyor mu? Excel bir kısmını tarih olarak algılayabilir bu yüzden soruyorum. Teyit edermisiniz.
 
Katılım
21 Temmuz 2017
Mesajlar
59
Excel Vers. ve Dili
Solidworks Office 2019
Tüm alt kodlar için aradaki noktalama işaretini her daim "NOKTA" olarak kullanabiliyormusunuz? Ve excele aktardığınızda hepsi metin formatında geliyor mu? Excel bir kısmını tarih olarak algılayabilir bu yüzden soruyorum. Teyit edermisiniz.
Denedim hep tarih olarak algılıyor Maalesef ona çözüm arıyorum
 
Katılım
21 Temmuz 2017
Mesajlar
59
Excel Vers. ve Dili
Solidworks Office 2019
Tüm alt kodlar için aradaki noktalama işaretini her daim "NOKTA" olarak kullanabiliyormusunuz? Ve excele aktardığınızda hepsi metin formatında geliyor mu? Excel bir kısmını tarih olarak algılayabilir bu yüzden soruyorum. Teyit edermisiniz.
Bu sorunuda çözdüm
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Ok.
Hepsini Virgül olarak verebiliyor musunuz? Edit: Nokta olarak mı vereceksiniz ?

Not:
@uzmanamele , sanırım arkadaşın aradığı çözüm o değil. Zira malzeme kodları bazen 4 hane olabildiği gibi bazen 14 hane de olabiliyor. Ve bu durumda bir üst parçanın kodu farklı oluyor.
 
Katılım
21 Temmuz 2017
Mesajlar
59
Excel Vers. ve Dili
Solidworks Office 2019
Tüm alt kodlar için aradaki noktalama işaretini her daim "NOKTA" olarak kullanabiliyormusunuz? Ve excele aktardığınızda hepsi metin formatında geliyor mu? Excel bir kısmını tarih olarak algılayabilir bu yüzden soruyorum. Teyit edermisiniz.
Dediğiniz sorunu çözdüm bir problem gözükmüyor çalıştırabiliyorum hepsi . olarak alabiliyorum.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Ok.
Hepsini Virgül olarak verebiliyor musunuz? Edit: Nokta olarak mı vereceksiniz ?

Not:
@uzmanamele , sanırım arkadaşın aradığı çözüm o değil. Zira malzeme kodları bazen 4 hane olabildiği gibi bazen 14 hane de olabiliyor. Ve bu durumda bir üst parçanın kodu farklı oluyor.
Hiç fark etmez, ürün ağacı notasyonu kullanılıyor.
Örnekte 1,5 ürün kodu için gerekli malzemeler 1,5xxx şeklinde olacaktır. ister 3 karakter ister 13 karakter olsun.
1,5 için uzunluk 3 karakter olduğu için kolay anlaşılsın diye soldan 3 karakter alıyor.
Esas formülde Aranan ürün kodu uzunluğuna bakılacak ve ona göre hesaplayacak.
 
Son düzenleme:

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Farklı anlıyoruz konuyu.
Ben yine de soruyu anladığım haliyle kodlarla aşağıdaki gibi cevaplayayım.

Sayın Furmet. Dosyanızın A sütununda tamamen NOKTA ile parça numaralarını getirdiğinizi varsayarak, dosyanızın K sütununa Yeni parça miktarlarını hesaplamak için aşağıdaki kodları bir modüle içine yerleştirip çalıştırabilirsiniz.

Örnek dosyanız
https://dosya.co/r6a32xtzzhpl/MalzemeNo.xlsm.html

C++:
Sub ParçaSay()
Dim X As Range, Çarpan As Integer
For i = 3 To Range("A" & Rows.Count).End(3).Row
    If InStrRev(Range("A" & i), ".") > 0 Then
        Çarpan = Range("A3:A" & Son).Find(Left(Range("A" & i), InStrRev(Range("A" & i), ".") - 1), , xlValues, xlWhole).Offset(0, 1)
    Else
        Çarpan = 1
    End If
    Range("K" & i) = Çarpan * Range("B" & i)
Next
End Sub
 

Ekli dosyalar

Katılım
21 Temmuz 2017
Mesajlar
59
Excel Vers. ve Dili
Solidworks Office 2019
Farklı anlıyoruz konuyu.
Ben yine de soruyu anladığım haliyle kodlarla aşağıdaki gibi cevaplayayım.

Sayın Furmet. Dosyanızın A sütununda tamamen NOKTA ile parça numaralarını getirdiğinizi varsayarak, dosyanızın K sütununa Yeni parça miktarlarını hesaplamak için aşağıdaki kodları bir modüle içine yerleştirip çalıştırabilirsiniz.

Örnek dosyanız
https://dosya.co/r6a32xtzzhpl/MalzemeNo.xlsm.html

C++:
Sub ParçaSay()
Dim X As Range, Çarpan As Integer
For i = 3 To Range("A" & Rows.Count).End(3).Row
    If InStrRev(Range("A" & i), ".") > 0 Then
        Çarpan = Range("A3:A" & Son).Find(Left(Range("A" & i), InStrRev(Range("A" & i), ".") - 1), , xlValues, xlWhole).Offset(0, 1)
    Else
        Çarpan = 1
    End If
    Range("K" & i) = Çarpan * Range("B" & i)
Next
End Sub
Merhaba Ömer Bey,



Uyarısı alıyorum
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Tekrar dener misiniz?
C++:
Sub ParçaSay()
Dim X As Range, Çarpan As Integer
For i = 3 To Range("A" & Rows.Count).End(3).Row
    If InStrRev(Range("A" & i), ".") > 0 Then
        Çarpan = Range("A3:A" & i - 1).Find(Left(Range("A" & i), InStrRev(Range("A" & i), ".") - 1), , xlValues, xlWhole).Offset(0, 1)
    Else
        Çarpan = 1
    End If
    Range("K" & i) = Çarpan * Range("B" & i)
Next
End Sub
 
Katılım
21 Temmuz 2017
Mesajlar
59
Excel Vers. ve Dili
Solidworks Office 2019
Tekrar dener misiniz?
C++:
Sub ParçaSay()
Dim X As Range, Çarpan As Integer
For i = 3 To Range("A" & Rows.Count).End(3).Row
    If InStrRev(Range("A" & i), ".") > 0 Then
        Çarpan = Range("A3:A" & i - 1).Find(Left(Range("A" & i), InStrRev(Range("A" & i), ".") - 1), , xlValues, xlWhole).Offset(0, 1)
    Else
        Çarpan = 1
    End If
    Range("K" & i) = Çarpan * Range("B" & i)
Next
End Sub
Elinize emeğinize sağlık Ömer Bey tam olarak istediğim buydu ilginiz için teşekkür ederim
 
Üst