0

Mon exemple est celui de la colonne A, j'ai des noms différents.Nombre d'occurrences de valeurs de plage séquentielle dans une autre plage

Que ces soit, par ordre d'apparition, en commençant par A1:

{Joe, Michael, Ana, Victor, Joe, Ana, George, Victor, Chris, George, Joe, Michael, Ana, Victor, Joe, Michael}

Alors Joe est en A1, Michael est en A2, Ana dans A3 etc.

Sur la colonne BI ont les valeurs du sous-ensemble que je veux rechercher dans l'ensemble des valeurs des noms de la colonne A. Supposons que ce sous-ensemble, commençant par B1, soit:

{Joe, Michael}

Alors Joe est en B1 et Michael est en B2.

Je cherche une formule unique:

  • qui n'utiliser des calculs à partir d'autres cellules
  • qui comptera Combien de fois les valeurs du sous-ensemble inclus dans l'ordre prévu (par exemple Joe, Michael), dans la colonne A.

Pour cet exemple, il doit retourner la valeur 3.

Cela étant dit, j'ai en fait besoin d'une formule plus générale qui fonctionnera pour n'importe quel sous-ensemble, indépendamment du nombre d'éléments de celui-ci.

Veuillez noter qu'il n'y a pas d'informations sur la taille maximale du sous-ensemble.

Quelqu'un peut-il suggérer une formule?

+0

Est-ce que votre système supporte 'TEXTJOIN()' ?? –

+0

Malheureusement pas –

Répondre

1

Voici une formule matricielle qui peut vous être utile. Il utilise la colonne A offsetted:

=SUM(IF(EXACT(A1:A499&A2:A500,B$1&B$2),1,0)) puis CTRL +SHIFT +ENTER

+0

@ Razvan-- En relisant votre exemple, ne devrait pas être le nombre 3 pour le sous-ensemble "Joe, Michael" pour la colonne A? Soit vous avez tout simplement mal compté, soit je n'ai pas compris ce que vous cherchez. J'espère que ça aide. –

+0

Oui, vous avez raison, j'ai mal compté. Il devrait être 3. Désolé pour cela .. J'ai corrigé mon commentaire initial. Je vous remercie! –

+0

la formule fonctionne très bien. Cependant, il ne tient pas compte du fait que la dimension du second tableau n'est pas connue. Dans ce cas, c'était 2 - {Joe, Michael}, mais ça peut être n'importe quel nombre. –

0

La formule suivante permettra d'améliorer progressivement sur la réponse précédente de gérer jusqu'à quatre noms dans le susbet. Je l'ai limité à quatre afin d'éviter un "Sunday Newspaper" longueur d'une formule.

IF (COUNTA (B1: B300) = 2, SUM (IF (EXACT (A1: A499 & A2: A500, B 1 & $ B $ 2), 1,0)), IF (COUNTA (B1: B300) = 3, SOMME (IF (EXACT (A1: A499 A2: A500 & A3: A501, Bl & B2 & B3), 1,0)), IF (NBA (B1: B300) = 4, SUM (IF (EXACT (A1: A499 & A2: A500 & A3: A501 & A4: A502, B1 B2 & & & B3 B4), 1, "")), ""))).

Bien sûr, vous pouvez l'étendre pour couvrir cinq sous-ensembles de noms en commençant par la plage "A" puis la plage "B".

+0

Merci! Malheureusement, le sous-ensemble peut atteindre 400 valeurs. –

0

Une approche différente du problème aidera. Copiez tous les noms de la colonne A dans une colonne inutilisée. Ensuite, allez dans l'onglet Données et utilisez "Supprimer les doublons". Triez ces valeurs uniques par ordre alphabétique, copiez-les, puis transposez-les (coller) dans une Row inutilisée.

Mettez cette formule dans la ligne entière, dans chaque cellule immédiatement sous les noms uniques: = RANDBETWEEN (1,1000000). Avec les deux lignes sélectionnées, allez dans l'onglet "Formule", puis "Noms définis" et sélectionnez "Créer à partir de la sélection". Cliquez sur la case "Top Row".

La colonne A contient les milliers de noms que vous avez indiqués. Tapez cette formule dans B1 et remplissez: = INDIRECT (A1).

En type C3: = SI (ET (EXACT (CONCENTRÉ (DÉCALAGE (B1,0,0, COMPTAGE (E $ 1: E $ 2000))), CONCATENAT (DÉCALAGE (E $ 1,0,0, NOMBRE (E $ 1: E $ 2000), 1)))), 1, ""). La colonne D contient le sous-ensemble des valeurs de nom. Tapez cette formule dans E1 et copiez aussi loin que D va (le sous-ensemble): = IFERROR (INDIRECT (D1), ""). Enfin, utilisez une fonction SUM placée où vous voulez pour obtenir le compte des valeurs du sous-ensemble dans la colonne A: = SUM (C: C).