ORTAK ELEMAN SAYISINI TEK FORMULLE BULMA

Katılım
23 Eylül 2004
Mesajlar
1,754
Excel Vers. ve Dili
Excel 2010 TR
:kafa:

Sizden istediğim örneğin

A1=1
A2=2
A3=3
A4=4
A5=5
A6=6
A7=7

bir küme olsun

b1=2
B2=5
B3=6
B4=7
B5=8
B6=9
B7=10

buda 2 cı kume olsun şimdi bu kümelerin ortak eleman sayısını tek bir formulle nasıl alabilirim acaba (Yani banan iki hücrede aynı olan 2,5,6.7 rakamlarını sayısı 4 vermesi gerekiyor)
eğersay formulunu kullanarak yapıyorum fakat 7 tane eğer say kullanmak zorunda kalıyorum tek bir formulle yapılıyorsa lütfen yardım.
 
Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Merhaba

Aynı kolonda tekrarlanan sayılar olmaması şartıyla ARRAY Formülü :

Kod:
=COUNTA(A1:B7)-SUM(1/COUNTIF(A1:B7;A1:B7))
Formülü yazdıktan sonra sadece entere değil ctrl + shift + enter e basınız.

İyi çalışmalar
 
X

xxrt

Misafir
Merhaba,sorularınızda daha açıklayıcı ve kullanım yeri konusunda bilgi verirseniz daha iyi sonuçlar alabilirsiniz.Biz yazarken sadece olması gereknei yapıyoruz.Kullanıldığı yeri bilmek önemlidir.

C1 Hücresine şu fonksiyonu yazınız.
Kod:
=EÐER(EHATALIYSA(DÜÞEYARA(A1;$B$1:$B$7;1;YANLIÞ));"";DÜÞEYARA(A1;$B$1:$B$7;1;YANLIÞ))
Bunu aşağıya sürükleyiniz.

D1 Hücresinede şu fonksiyonu kopyalayınız.
Kod:
="İki Kümede "&7-BOÞLUKSAY(C1:C7)&" Adet Ortak Eleman Bulunmaktadır."
Bu sizin istediğiniz sonucu verir.
 
Katılım
28 Temmuz 2004
Mesajlar
275
Sayın xxrt;
Üçüncü bir sutunda yaptırdığımız işlemleri + saydırma + yazdırma işlemlerini dizileri değişken, ortak eleman sayısını sonuç olarak döndüren bir fonksiyon mesela ortaksay(dizi1;dizi2) gibi bir fonksiyon yazabilir miydik? :?:
 
Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Merhaba Hüseyin Bey :hey:
İstediğiniz file ekte:mukerrer_iki_kolon_say.xls

İyi çalışmalar
 
Katılım
23 Eylül 2004
Mesajlar
1,754
Excel Vers. ve Dili
Excel 2010 TR
Merhaba

=EÐERSAY($A$1:$A$7;B1)+EÐERSAY($A$1:$A$7;B2)+EÐERSAY($A$1:$A$7;B3)+EÐERSAY($A$1:$A$7;B4)+EÐERSAY($A$1:$A$7;B5)EÐERSAY($A$1:$A$7;B6)+EÐERSAY($A$1:$A$7;B7)

şeklinde yapıldığında bana sonucu veriyor fakat işlem çok uzadığı için bilgisayarın hızı düşüyor... bu işmemi otomatik yapabilen başka bir formul varmıdır.tek bir formulle yapılabilirmi diye araştırıyorum...

:agla:
Teşekkürler.
 
Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Hüseyin Bey

Sizin excel türkçe ,onun için aşağıdaki formülü kullanacaksınız.Yine ctr+shift+enter array formülüyle.

Kod:
=BAÐ_DEÐ_DOLU_SAY(A1:B7)-TOPLA(1/EÐERSAY(A1:B7;A1:B7))
Formullerin ing-türkçe karşılıkları için aşağıdaki linke bakın ltf.

http://www.excel.web.tr/viewtopic.php?p=1659#1659
 
Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Merhaba :hey:

Aslında Hüseyin Beyin istediği A6:G6 satırında bir kümenin olması ve birde A20:G20 satırında başka bir küme olması (aradaki satırlar boş) ve buradaki ortak elemanların sayısının bulunmasıymış.Ne tesadüf bu soruyu daha öncede çözmüştüm. :mrgreen:

Aşağıdaki Kodu bir modüle atayın ve user defined (kullanıcı tanımlı) fonksiyonlarda jale yi çalıştırın.


Kod:
Function jale(Ref_Alan As Variant, Kiyas_Alan As Variant) As Long
'Referans alana göre kiyaslanan alanda kaç tane aynı varsa sayar.Boşluklardada çalışır.22.01.2004 .Jale

Dim mSay As Long, r1 As Long, r2 As Long, c1 As Integer, c2 As Integer
Dim i As Long, j As Integer, k As Long, l As Integer
 mSay = 0
 r1 = Ref_Alan.Rows.Count
 r2 = Kiyas_Alan.Rows.Count
 c1 = Ref_Alan.Columns.Count
 c2 = Kiyas_Alan.Columns.Count
  For i = 1 To r1
   For j = 1 To c1
    For k = 1 To r2
     For l = 1 To c2
      If Ref_Alan(i, j).Value = Kiyas_Alan(k, l).Value Then mSay = mSay + 1
     Next l
    Next k
   Next j
  Next i
jale = mSay
End Function
Foksiyonun adını değiştirince çalışmaz.. :mrgreen:

İyi çalışmalar
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,324
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

İşe yararmı bilmiyorum ama şöyle bir şey düşündüm;

(kümelerde tekrar eden sayılar olmaması kaydıyla...)

1) 1nci küme A1:A7 aralığındaysa,

2) 2nci küme B1:B7 aralığındaysa,

3) B1:B7 aralığını kopyalayıp, A8:A14 aralığına yapıştırın,

4) Böylece 14 elemanlı yeni bir küme olsun,

5) Daha sonra kullanılacak formul:

=14-SUMPRODUCT(1/COUNTIF(A1:A14;A1:A14))


Veya;

Böyle kopyala-yapıştır yapmadan 1nci küme A1:A7, 2nci küme B1:B7 aralığındaysa, direkt olarak;

=14-SUMPRODUCT(1/COUNTIF(A1:B7;A1:B7))

Not: Bu çözüm de yukarıda jale tarafından önerilen ilk çözüme benzedi.
 
Katılım
5 Eylül 2004
Mesajlar
571
Excel Vers. ve Dili
Excel 2003 SP1 Ingilizce
Hüseyin Bey :hey:

Sizi online görünce bu sorunuzun akibetini öğrenmek istedim. :oops:
 
Üst