Fondamentalement, mon problème est que j'ai une chaîne dans une cellule d'Excel. Je dois ensuite voir si cette chaîne existe dans une autre ligne (pas une cellule, mais toute la ligne) et, le cas échéant, imprimer le contenu d'une autre cellule de la même ligne. mais dans une autre colonne.
Je vais donner un exemple de base:
Title Answer
Police 15
Ambulance 20
Fire 89
Maintenant, je dois scanner la colonne de titre pour, par exemple, "Police", puis renseigner la cellule avec la valeur sous Réponse (dans ce cas, 15).
Je ne peux pas simplement dire IF(A2="Police";B2;""
car j'ai besoin d'analyser l'intégralité de la colonne Titre.
J'ai essayé d'utiliser IF(COUNTIF(A$2:A$100;"Police");
qui scanne le contenu de A2 à A100 pour la chaîne Police, et je sais comment le faire imprimer de manière constante (il suffit de mettre quelque chose après le;), mais je ne vois pas comment faire de cette "constante" une variable qui change en fonction de la ligne trouvée. Donc, si la COUNTIF
a trouvé Police dans la cellule A44
, alors la réponse à ma formule serait B44
, comme si elle avait trouvé Police dans A62
, alors ma formule devrait afficher B62
J'espère que cela a du sens et que quelqu'un peut m'aider :)
Notez que j'utilise Excel 2010 et que j'ai besoin d'une formule normale, car je ne peux pas utiliser de script pour ce document.
MODIFIER:
Voici ce que j’ai jusqu’à présent. Notez que le tableur que j’utilise est bien plus complexe que le "simple" exemple que j’ai dans la question ...
=IF(ISNUMBER(FIND("RuhrP";F9));LOOKUP(A9;Ruhrpumpen!A$5:A$100;Ruhrpumpen!I$5:I$100);"")
Ceci affiche "RuhrP"
dans chaque réponse où "RuhrP"
est trouvé dans F9
et non pas la réponse que je veux, qui devrait être celle trouvée dans RuhrPumpen!I$5:I$100
où l'index de cellule est identique à celui de la colonne A
où A9
a été trouvé. Encore une fois, désolé pour la complexité, je ne peux pas penser à un meilleur moyen de le Word.
Je remarque que vous avez suggéré cette formule
=IF(ISNUMBER(FIND("RuhrP";F9));LOOKUP(A9;Ruhrpumpen!A$5:A$100;Ruhrpumpen!I$5:I$100);"")
..... mais LOOKUP
ne convient pas ici parce que je suppose que vous voulez une correspondance exacte (LOOKUP ne le garantit pas et les données de la plage de recherche doivent être triées), donc VLOOKUP
ou INDEX/MATCH
serait mieux .... et vous pouvez aussi utiliser IFERROR pour éviter la fonction IF, c'est-à-dire
=IFERROR(VLOOKUP(A9;Ruhrpumpen!A$5:Z$100;9;0);"")
Remarque: VLOOKUP recherche toujours la valeur de recherche (A9) dans la première colonne du "tableau de tableau" et renvoie une valeur de la nième colonne du "tableau de tableau" où n est défini par col_index_num, dans ce cas. 9
INDEX/MATCH est parfois plus flexible car vous pouvez définir explicitement la colonne de recherche et la colonne de retour (et la colonne de retour peut se trouver à gauche de la colonne de recherche, ce qui ne peut pas être le cas dans VLOOKUP). Cela ressemblerait à ceci:
=IFERROR(INDEX(Ruhrpumpen!I$5:I$100;MATCH(A9;Ruhrpumpen!A$5:A$100;0));"")
INDEX/MATCH vous permet également de renvoyer plus facilement plusieurs valeurs de différentes colonnes, par exemple. en utilisant les signes $ devant A9 et la plage de recherche Ruhrpumpen! 5 $: 100 $, c.-à-d.
=IFERROR(INDEX(Ruhrpumpen!I$5:I$100;MATCH($A9;Ruhrpumpen!$A$5:$A$100;0));"")
cette version peut être glissée pour obtenir des valeurs successives des colonnes I, J, K, etc .....
J'ai compris cette conception de données:
Feuille principale: Colonne A: Codes de pompe (chiffres)
Colonne B: formule indiquant une ligne correspondante dans la feuille 'Ruhrpumpen'
=ROW(Pump_codes)+MATCH(A2;Ruhrpumpen!$I$5:$I$100;0)
Les formules ont ";" au lieu de ",", il devrait également s'agir d'une notation allemande. Sinon, remplacez-le.
Colonne C: formule indiquant les données dans la colonne 'Ruhrpumpen' à partir d'une ligne trouvée par la formule dans la colonne B
=INDIRECT("Ruhrpumpen!A"&$B2)
Colonne D: formule indiquant les données dans la colonne B de 'Ruhrpumpen' à partir d'une ligne trouvée par la formule dans la colonne B:
=INDIRECT("Ruhrpumpen!B"&$B2)
Feuille 'Ruhrpumpen':
Colonne A: quelques données sur une certaine pompe
Colonne B: quelques données supplémentaires
Colonne I: codes de pompe. Le début de la liste comprend le nom défini 'Codes_pompe' utilisé par la formule dans la colonne B de la feuille principale.
Exemple de feuille de calcul: http://www.bumpclub.ee/~jyri_r/Excel/Data_from_other_sheet_by_code_row.xls
En supposant
la plage de données source est A1: B100.
La cellule de requête est D1 (ici vous allez entrer Police ou Feu).
La cellule de résultat .__ est E1
Formule dans E1 = VLOOKUP(D1, A1:B100, 2, FALSE)
Il est très intéressant de savoir que beaucoup d’entre nous sont confrontés au problème de la réplication de la valeur de recherche lorsqu’on utilise Vlookup/Index avec Match ou Hlookup .... Si nous avons une valeur en double dans une cellule que nous connaissons tous, Vlookup le premier élément correspondrait dans le tableau loopkup .... Alors voici une solution pour vous tous ...
par exemple.
dans la colonne A, nous avons un champ appelé société ....
Column A Column B Column C
Company_Name Value
Monster 25000
Naukri 30000
WNS 80000
American Express 40000
Bank of America 50000
Alcatel Lucent 35000
Google 75000
Microsoft 60000
Monster 35000
Bank of America 15000
Maintenant, si vous recherchez le jeu de données ci-dessus, vous verrez que la duplicité se trouve dans Nom de la société aux lignes n ° 10 et 11. Ainsi, si vous mettez le vlookup, les données seront collectées en premier .. Mais si vous utilisez la formule ci-dessous , vous pouvez rendre votre valeur de recherche unique et saisir facilement toutes les données, sans contestation ni problème
Mettez la formule dans C2 .........A2&"_"&COUNTIF(A2:$A$2,A2)
.......... Le résultat sera Monster_1
pour le premier élément de ligne et pour les rangées 10 et 11 .....Monster_2, Bank of America_2
respectivement .... Ici vous allez maintenant vous avez la valeur unique, donc maintenant vous pouvez choisir n'importe quelle donnée facilement maintenant ..
A bientôt !!! Anil Dhawan