2 Eşleşme Dizi Formülünün Dizi Kesişimini Bulun


0

Dizi formülünü kullanarak iki eşleşme fonksiyonunun kesişimini nasıl bulurum (CTR + ÜST KRKT + ENTER tuşlarına basarak).

Şu anda bu dizi formülünü kullanmayı deniyorum ancak sonuç alamıyorum.

{=MATCH(B2,Sheet2!$A$2:$A$5) MATCH(C2,Sheet2!$B$2:$B$5)}

Örneğin, Sayfa2'deki veriler aşağıdakine benzer.

     A          B          C
1    Code       Type       Value
2    ID1        DIRECT     100
3    ID1        INDIRECT   130
4    ID2        DIRECT     200
5    ID2        INDIRECT   110

Sayfa1'deki verilerim aşağıdaki gibi görünüyor.

     A          B          C
1    Date       Code       Type     
2    3/1/2013   ID2        INDIRECT     

Yukarıdaki dizi formülünü kullanarak 2 dizinin (satır numaralarının) kesişimini almayı bekliyorum:

= {4,5} {3,5}
= {5}

Bu fonksiyona yukarıda yazıldığı gibi girebildiğinizden emin misiniz?
— Peter L.

Merhaba Peter, bunu yapamam. Ama benim sağduyum, boşluk aralığın kesişimi için işleç olduğundan, daha sonra "dizi formülü" işlevine başvurmaya çalışıyorum.
— Dino

Şimdi kesişme ile ne demek istediğinizi anlamıyorum. Ve since space is operator for intersection of rangeaynı zamanda benim için bir keşif)
— Peter L.

Burada Ax= Bx= B2, nerede x bir satır numarası olduğu örnekleri mi arıyorsunuz ? Ve ne geri dönmek istiyorsun? Satır numarası? Değer?
— Excellll

Evet, boşluk kesişim operatörüdür ...... ama bu iki aralığın kesişimini sağlar - MATCH işlevi bir sayı döndürür (veya hata) - Bunların kesişimini nasıl elde edeceğinizi göremiyorum ..... .
— barry houdini

Yanıtlar:


1

Bu formülü deneyin (dizi formülü olarak girildi):

= MATCH (B2 C2 Sayfa2 $ A $ 2: $ A $ 5 ve Sheet2 $ B 2 $: $ B $ 5,0)

Harika çalışıyor Peter. Bunu asla düşünmedim. Thanks :)
— Dino

0

Eşleşmeler için satır numaraları ve eşleşmeyenler için yapay bir değer içeren bir dizi alabilirim. Dizi girişi ile:

=IF($A$2:$A$5=D2,IF($B$2:$B$5=E2,ROW($A$2:$A$5),2000000),2000000)

Eşleşmeleri tek tek hücrelerde de alabilirim, ancak bir hücrede bir dizide olamaz. Dizi girişi ile (satır 2'de) ve sahte bir değere ulaşana kadar doldurun:

=SMALL(IF($A$2:$A$5=D2,IF($B$2:$B$5=E2,ROW($A$2:$A$5),2000000),2000000),ROW()-1)

Diziyi yalnızca eşleşme boyutuna daraltmak için (oldukça basit) bir VBA işlevine ihtiyacınız olacağına inanıyorum.


0

Eğer sadece bir maç beklerseniz, Peter'ın önerisi istediğinizi yapmalıdır. Eğer öyleyse, Excellll'in çözümünü sadece eşleşen satır numaralarını içeren bir dizi elde etmek için uzatabilirsiniz, örneğin 2 ve 5 numaralı satırlar her iki sütunda da eşleşirse bu formül {2; 5} döndürür

=SMALL(IF(($A$2:$A$5=D2)*($B$2:$B$5=E2),ROW($A$2:$A$5)),ROW(INDIRECT("1:"&SUM(($A$2:$A$5=D2)*($B$2:$B$5=E2)))))

ile onaylandı CTRL+SHIFT+ENTER

Not: Bu, farklı bir sonuca giden yolda atılan bir adımsa, bu en iyi yöntem olmayabilir.


Merhaba Barry, evet 1 dönüş değeri bekleniyor. Ancak, benzersiz olmayan referans çiftlerim varsa bu çözüm genişletilebilir. Buna oy vermek istiyorum, ancak itibarım 15'in altında olduğu için bunu yapamam :(
— Dino
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.