query de sumif işlemi

Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
Arkadaşlar excel de olan yaklaşık 30000 satırlı bir veri üzerinde yapılan işlemi access ortamına aktarmaya çalışıyorum (excel in işlemi yapması yaklaşık 2 saat sürüyor).

Exceldeki tabloda

=SUMIF(Database!$BE:$BE;$A7&" "&"Rotatif";Database!$J:$J)

satırı var, burada A7 de müşteri numaraları var, Database BE müşteri numarası boşluk kredi türü şeklinde (mesela müşeri numarası Database sayfasının A sütununda, kredi türü de B sütununda ise BE sütununda bu ikisi yanyana getirilmiş "1111 Rotatif" gibi). Database J sütununda ise müşterilerin bakiyeleri var, kısaca eğer müşteri numarası Database de varsa bakiyesini getir... (Excelde aynı formülden yan yana yaklaşık 20 tane olduğu için çok uzun sürüyor)

Bu işlemin aynısını Access de bir query de yapıp bir tablo oluşturmaya çalışıyorum ancak bir türlü beceremedim Access bilgim çok az olduğu için zorlanıyorum.. DSum ve Sum(Iif..) fonksiyanlarını denedim ama sonuç alamadım.

İkinci sorum da DLookup ile ilgili, excel de Vlookup işleminin aynısını (müşteri numaralarını unique olarak getiriyorum yanlarına isimlerini yazdırmaya çalışıyorum) yapmaya çalışıyorum ama beceremedim.

İlgi gösteren arkadaşlara şimdiden teşekkür ederim...
 
Katılım
16 Mart 2005
Mesajlar
132
Excel Vers. ve Dili
Office 2003 (Eng. )
önce veriyi access e import etmen gerek.Datanı yada küçük bir kısmını mdb olarak ekleyebilirsen sorgusunu yazıp buraya ekleyebilirim istersen
 
Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
import işlemini yaptım zaten, ekte dosyanın çok küçük bir kısmını yolluyorum burda 10 satır veri bıraktım onların arasında da hiç YTL olmadığı için unique YTL boş geliyor, daha detaylı açıklamayı txt dosyası olarak da içine koydum buraya yazmak istemedim :)
 
Katılım
16 Mart 2005
Mesajlar
132
Excel Vers. ve Dili
Office 2003 (Eng. )
field 59 u update query ile halledicem
60,61 ve 62 yi nasıl hesapladığınızı buraya yazarsanız sorguyu o şekilde yazarım.
 
Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
fild 59 60 ve 61 zaten verinin içinde hazır olarak var field 59 önceden basit bir excel koduyla o hale getiriliyor..

field 59 un excel formülü =E78&" "&H78&" "&AC78

yani müşteri numarası para birimi (ytl mi dolar mı olduğu) ve kredi türü yanyana getirilmiş durumda

field 60 ve 61 datanın içinde geliyor ve kullanılmıyor zaten...
 
Katılım
16 Mart 2005
Mesajlar
132
Excel Vers. ve Dili
Office 2003 (Eng. )
fild 59 60 ve 61 zaten verinin içinde hazır olarak var field 59 önceden basit bir excel koduyla o hale getiriliyor..

field 59 un excel formülü =E78&" "&H78&" "&AC78

yani müşteri numarası para birimi (ytl mi dolar mı olduğu) ve kredi türü yanyana getirilmiş durumda

field 60 ve 61 datanın içinde geliyor ve kullanılmıyor zaten...
gönderdiğiniz datanın içinde 3 tane sorgu var.
Bunlardan 2 tanesi update query field59'u oluşturuyor çalıştırarak kontrol edebilirsiniz.üzerine çalışacağı için problem olmaz.
diğer sorununuz ise anladığım kadarıyla dun+bugün table'ını unique yapmaktı.Onu da unique yap querysi ile yapabilirsiniz.bu tablo yeni isminde yeni bir table yapıyor.umarım bu şekilde istemiştiniz.Kolay gelsin...
 
Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
ilginiz için çok teşekkür ederim, ancak şöyle bir problem var, veri içerisinde

müş.no isim
111 ali
111 ali kuaför

gibi satırlar olduğu için unique getirmek istendiğinde iki kayıt da geliyor, sadece müşteri numaraları unique getirmek istenildiğinde olması gerektiği gibi geliyor, bu yüzden önce müşteri numaralarını ayrıca unique getirip ardından dlookup ile yanına müşteri isimlerini getirmeye çalıştım ama bunu başaramadım :)
 
Katılım
16 Mart 2005
Mesajlar
132
Excel Vers. ve Dili
Office 2003 (Eng. )
ekte gönderdiğim mdb'de "dun+bugün table unique yap" sorgusundaki müsteri ünvan sahası şu an group by
orayı okla açıp "first" yapıp tekrar çalıştırın müşteri numaraları unique olacaktır.
 
Katılım
29 Ekim 2006
Mesajlar
33
Excel Vers. ve Dili
Excel 2003 İngilizce
dediğiniz gibi yapınca oldu çok teşekkür ederim:)

şimdi sorunumun ikinci kısmı olan sumif fonksiyonunun access e aktarılması var... Aslında yapılması gereken tek şey eğer şu hücredeki değer şu tabloda varsa tablonun şu alanını buraya yaz demek...
 
Katılım
16 Mart 2005
Mesajlar
132
Excel Vers. ve Dili
Office 2003 (Eng. )
dediğiniz gibi yapınca oldu çok teşekkür ederim:)

şimdi sorunumun ikinci kısmı olan sumif fonksiyonunun access e aktarılması var... Aslında yapılması gereken tek şey eğer şu hücredeki değer şu tabloda varsa tablonun şu alanını buraya yaz demek...
esasında sumif kullanmaya gerek yok diye düşünüyorum çünkü siz burada iki değeri toplatmıyorsunuz anladığım kadarıyla yani burada şu değer varsa buraya yaz diyorsunuz.
örneği biraz önce size gönderdiğim sorgu için kullanabiliriz.
"fileld59 tablo bugün update yap" sorgusundaki "update to" sahasını aşağıdaki şekilde değiştirip tekrar çalıştırırsanız;


IIf([Tablo_Bugun]![bakiye] Is Not Null;[Tablo_Bugun]![musteri] & " " & [Tablo_Bugun]![para_kad] & " " & [Tablo_Bugun]![kodlama] & " " & [Tablo_Bugun]![bakiye];"kredi kullandırılmadı")


yukarıdaki if sorgusu eğer bakiyede bir değer varsa
müşteri - para kad- kodlama -bakiye sahalarını birleştirerek field59 a yazıyor.Eğer bakiye sahasında bir değer yoksa field59 da "kredi kullandırılmadı" yazıyor.(kredi kullandırılmadı görebilmek için bakiye sahasından bir tanesini silin mesela)
sanıyorum böyle bir şey istediniz eğer değilse istediğiniz şekilde çeşitlendirebiliriz.
 
Üst