6
votes

Formule pour trouver une correspondance en deux dimensions

J'ai besoin d'une formule qui recherchera une valeur dans une plage à 2 dimensions et renvoyera les coordonnées ou l'adresse de la cellule de la cellule correspondante. Par exemple: xxx

Je souhaite rechercher la plage A1: c3 pour tchad et retourner c2 ou 2,3 . Comment puis-je accomplir cela en utilisant des formules Excel? (Je vais réellement finir par l'appliquer à Google Feuilles).

Merci!


2 commentaires

Pourquoi as-tu essayé? Avez-vous quelque chose en tête? Ce serait génial si vous nous en parlez à ce sujet.


peut-être écrire une fonction personnalisée dans .gs pourrait aider.


3 Réponses :


1
votes

En supposant que vous utilisez Excel 2007 et supérieur.

Vous aurez besoin d'une colonne d'assistance. Si votre table ressemble à votre exemple dans votre exemple, dans la cellule d1 écrire: xxx

et faites-la glisser vers le bas. Ensuite, dans la cellule E1 Écrivez votre valeur de recherche ( "Tchad" par exemple). Ensuite, vous avez votre résultat de recherche dans la cellule E2 avec cette formule: xxx


1 commentaires

Après avoir mis en œuvre cette réponse à ma solution, j'ai dû réparer la correspondance à utiliser le type de correspondance 0, c'est-à-dire = si ($ D: $ d) = 0, na (), match ($ D: $ d), $ D: $ d, 0) & "," & max ($ D: $ d)) ci-dessus, sauf pour cela très bien, merci taosique



0
votes

Si vous voulez une solution plus simple, il est possible d'utiliser un seul assistant (ou pas du tout, au coût d'une formule compliquée).

Disons que je prends ton exemple. Je vais utiliser la colonne d pour afficher le résultat:

  • dans d1 , je mets le nom que je veux trouver: Tchad
  • in d2 , j'ai mis l'aide qui retournera un index de la valeur recherchée ( -1 si non trouvé): = ifError (match (D1 , Split (Textjoin (";", True, A1: C3), ";"), 0), - 1)
  • in d3 , je mets les formules pour obtenir la valeur ligne, colonne ( false si non trouvé): = si (D2 <> - 1, Roundup (division (D2, colonnes (A1: C3))) & "," & if (MOD (D2, colonnes (A1: C3)) = 0, Colonnes (A1: C3), MOD (D2, colonnes (A1: C3))))

    Si vous voulez vraiment utiliser une seule formule, il est possible dans d3 pour remplacer toutes les références à d2 par les formules utilisées dans d2 .


0 commentaires

2
votes

Une ancienne question, mais je pensais que je partagerais une réponse beaucoup plus simple et élégante ici qui n'implique pas de colonnes d'assistance ni de formules compliquées, de sorte que plus de gens vont faire plus facilement les choses. En supposant que la table contient des valeurs uniques et que vous utilisez E1 code> pour stocker votre chaîne de recherche tchad code> et E2 code> pour afficher le résultat:

  • Si vous voulez le résultat de la ligne et de la colonne de 2,3 code> dans E2 code>: p>

    =INDIRECT(ADDRESS(SUMPRODUCT((A1:C3=E1)*ROW(A1:C3)),SUMPRODUCT((A1:C3=E1)*COLUMN(A1:C3))))
    
  • Si vous voulez la chaîne d'adresses de cellule de style R1C1 de C2 code> dans E2 code>: p>

    =ADDRESS(SUMPRODUCT((A1:C3=E1)*ROW(A1:C3)),SUMPRODUCT((A1:C3=E1)*COLUMN(A1:C3)))
    
  • Si vous voulez le contenu de la cellule trouvée de Tchad code> dans E2 code>: p>

    =SUMPRODUCT((A1:C3=E1)*ROW(A1:C3)) & "," & SUMPRODUCT((A1:C3=E1)*COLUMN(A1:C3))
    
    • Sumproduct code> renvoie dans ce cas la somme des produits entre une matrice booléenne de true code> (valeur recherchée trouvée dans la cellule) et false code> ( Valeur recherchée non trouvée dans la cellule) pour chaque cellule de la table et les numéros de ligne / colonne correspondants (absolus) de ces cellules dans la feuille; Ainsi, le résultat est essentiellement la rangée / colonne (absolu) de la cellule où la valeur a été trouvée, car true = 1 code> et false = 0 code> en termes mathématiques
    • adresse code> renvoie l'adresse d'une cellule sous forme de texte (pas comme référence!) li>
    • indirecte code> renvoie la référence correspondant à une adresse de texte d'une cellule li> ul>

      Source and Credit va à: Cette réponse par XOR LX. Aurait pu ajouter le lien dans un commentaire, mentionnant la question en double, mais je voulais développer et expliquer la réponse un peu, donc plus de caractères étaient nécessaires. P> P>


1 commentaires

Merci! Utilisation de ceci pour rechercher lorsque la valeur d'une cellule à proximité (E2) se produit dans une matrice bidimensionnelle (D2: H) dans une feuille séparée (feuille2), puis extrait la valeur de la cellule dans la colonne de la rangée d'une rangée. où la valeur est trouvée: = index (feuille2! $ A: $ a, sumproducteur ((feuille2! $ d $ 2: $ h = € 2: $ h)))