
Genel formül
(=INDEX(rng1,MATCH(1,MMULT(--(rng2=critera),TRANSPOSE(COLUMN(rng2)^0)),0)))
Özet
Birden çok sütunu eşleştirerek bir değeri aramak için MMULT, TRANSPOSE, COLUMN ve INDEX'e dayalı bir dizi formülü kullanabilirsiniz. Gösterilen örnekte, H4'teki formül şöyledir:
(=INDEX(groups,MATCH(1,MMULT(--(names=G4),TRANSPOSE(COLUMN(names)^0)),0)))
burada "adlar" adlandırılmış aralık C4: E7 ve "gruplar" adlandırılmış aralık B4: B7'dir. Formül, her ismin ait olduğu grubu döndürür.
Not: Bu bir dizi formülüdür ve control shift enter ile girilmelidir.
Açıklama
İçten dışa doğru çalışarak, bu formülde kullanılan mantıksal kriterler:
--(names=G4)
burada adlar C4: E7 olarak adlandırılır. Bu, verilerdeki her değer için bir DOĞRU / YANLIŞ sonucu oluşturur ve çift negatif, DOĞRU YANLIŞ değerlerini 1 ve 0'a zorlayarak şöyle bir dizi verir:
(0,0,0;1,0,0;0,0,0;0,0,0)
Bu dizi, "isimlerin" yapısıyla eşleşen 4 satıra 3 sütundur.
Bu ifade ile ikinci bir dizi oluşturulur:
TRANSPOSE(COLUMN(names)^0))
SÜTUN işlevi, 3 sütun ve 1 satır içeren sayısal bir dizi oluşturmak için kullanılır ve TRANSPOSE bu diziyi 1 sütun ve 3 satıra dönüştürür. Sıfırın kuvvetine yükseltmek, dizideki tüm sayıları 1'e dönüştürür. MMULT işlevi daha sonra matris çarpımını gerçekleştirmek için kullanılır:
MMULT((0,0,0;1,0,0;0,0,0;0,0,0),(1;1;1))
ve sonuç, arama değeri olarak 1 olmak üzere dizi olarak MATCH işlevine gider:
MATCH(1,(0;1;0;0),0)
MATCH işlevi, sağlanan ölçütleri karşılayan ilk eşleşen satırın satırına karşılık gelen ilk eşleşmenin konumunu döndürür. Bu, dizi olarak "gruplar" adlı aralıkla, satır numarası olarak INDEX'e beslenir:
=INDEX(groups,2)
Son olarak, INDEX, Adam'ın ait olduğu grup olan "Ayı" yı döndürür.
Ölçütler için sabit değerler
Tam eşleşme yerine belirli metin değerlerini kontrol etmek için ISNUMBER ve ARAMA işlevlerini birlikte kullanabilirsiniz. Örneğin, "elma" içeren hücreleri eşleştirmek için şunları kullanabilirsiniz:
=ISNUMBER(SEARCH("apple",data))
Bu formül burada açıklanmıştır.