2017-01-13 1 views
0

J'ai passé des heures à essayer de résoudre ce problème, trouvé des articles en ligne, mais ils ne semblent pas fonctionner.Indice de critères multiples correspondant

J'ai un document Excel avec des données sur les deux onglets et que vous souhaitez la formule ci-dessous pour me montrer les gens de l'équipe sont sur si les dates et match userid sur les deux formes appelées « Source Élevé » & « Sheet1 »

{=INDEX(Sheet1!F:F,MATCH('Raised Source'!E:E&'Raised Source'!F:F,Sheet1!A:A&Sheet1!B:B,0))} 

Cela jette une erreur # N/A

Aide !!!

+0

équipe Donc les noms sont sur 'Sheet1 F: f'? les dates et l'ID utilisateur sont sur A et B? –

+0

J'ai mocké les données et cela fonctionne pour moi ... Peut-être qu'il ne peut pas trouver un match, avez-vous vérifié pour être sûr qu'une correspondance existe? En outre, faites attention en utilisant des formules matricielles sur des lignes/colonnes entières, cela ralentit considérablement les calculs. –

+0

Si vous attendez plus clairement le résultat attendu, je serais ravi de vous fournir une description complète de la façon dont Index et Match fonctionnent ensemble: Des exemples de la mienne peuvent être trouvés dans les réponses que j'ai fournies auparavant: [Index() Small() exemple] (http://stackoverflow.com/questions/41549674/how-to-categorise-a-column-in-excel- based-on-another-column-that-contains-value/41565539 # 41565539) & [INDEX() pour vérifier 3 conditions] (http://stackoverflow.com/questions/40805108/how-compare-3-columns-and -put-oui-ou-non-dans-une-autre-colonne/40806443 # 40806443) –

Répondre

2

Tout d'abord, je suppose que vos données sont dans ce format:

enter image description here enter image description here

Et que vous êtes à la recherche d'effectuer la recherche en utilisant les données de 'Raised Source'! pour rechercher par Sheet1! et retourner l'équipe de Sheet1! comme bien.

La formule:

La formule devra être entré comme un tableau (une fois copier et collé tout en restant dans la barre de formule a frappé CTRL + SHIFT + ENTER)

J'ai utilisé les plages nommées pour rendre la formule plus propre:

Team  =Sheet1!$F$1:$F$6 
TeamDate =Sheet1!$A$1:$A$6 
UserID =Sheet1!$B$1:$B$6 

S'il vous plaît noter que lors de l'utilisation d'une formule matricielle sur un calcul de la colonne entière ralentir considérablement il est donc préférable d'éviter cela et définir la plage exacte que vous cherchez à travers ou dépasser par une quantité raisonnable si vous attendez des ajouts.

La logique:

=INDEX(array,row,[column]) - Cette formule « index » le tableau que vous spécifiez, vous pouvez lui dire un numéro de numéro de ligne et de la colonne à renvoyer (par exemple =INDEX(B3:C4,1,1) retournera la valeur la première ligne et la première colonne de B3:C4 qui est B3 Nous n'avons pas besoin de dire à la formule une colonne si nous voulons juste que la première colonne soit retournée ou si les données que nous recherchons sont de seulement 1 colonne de large.

C'est là que la formule entre en jeu. W e utilise la formule MATCH(lookup_Value,Lookup_array,[match_type]) pour nous indiquer quelle position (ou quelle rangée dans ce cas) la valeur que nous recherchons.

utilisation normale de MATCH() serait correspondre le contenu des cellules exactes dans une plage, mais que nous utilisons une formule de tableau que j'ai joué un petit truc en utilisant MATCH(1,(E1=TeamDate)*(F1=UserID),0)

Alors, je vous ai dit la formule pour trouver 1 et me dire la position que cela se produit. 1 est renvoyé lorsque les deux critères correspondent à la formule Excel, TRUE représente 1 et FALSE représente 0.Lorsque cette formule fonctionne par ligne par ligne, si les deux résultats correspondent et retour TRUE alors le tableau stockera 1*1 qui est 1 et bien sûr si l'un ou les deux sont FALSE alors il retournera 1*0, 0*1 ou tous qui conduisent à 0. Comme les plages nommées commencent toutes sur la même ligne, la position relative (ou le nombre de fois précédant l'apparition d'un 1) sera toujours le numéro de ligne que vous souhaitez que la formule INDEX() renvoie.

IFERROR(value,value_if_error) - Si aucune correspondance n'est trouvée, la formule va générer une erreur car elle ne peut pas correspondre 1 à la baie que j'ai créée. Si cela se produit, j'ai dit à la formule que je voudrais que ce soit ,"") à la place qui est une cellule vide. Vous pouvez mettre à jour ceci à n'importe quel texte que vous préféreriez, peut-être ,"Not Found")?

L'autre IF() dans la formule de l'autre réponse était spécifique à cette question car ils voulaient seulement savoir qu'il y avait une correspondance plutôt que de retourner quelque chose de cette rangée.

sortie:

enter image description here

+1

Je ne peux pas le croire - Meilleure réponse la plus détaillée que j'ai jamais vu. Je l'ai maintenant aussi fonctionné grâce à vous aider. J'apprécie beaucoup. Merci – dmorgan20

+0

Heureux que cela a fonctionné pour vous et merci pour l'appréciation de la réponse ^^ –