Dans ma feuille de calcul, il existe un WorkItemRange
avec une colonne d'ID d'élément de travail et une autre colonne de liens vers un site Web externe, qui est une formule qui se résume à:
=HYPERLINK("http://some-tfs/_workitems/edit/" & A1, "TFS Link")
Dans la même feuille de calcul, mais une autre feuille de calcul, il y a une colonne avec un VLOOKUP
qui veut get HYPERLINK
.
=VLOOKUP("SomeWorkItemID",WorkItemsRange,2,FALSE)
Le VLOOKUP
, cependant, renvoie TFS Link
au lieu de l'URL sous-jacente, "http://some-tfs/workitem/" & A1
.
J'ai besoin de recréer l'hyperlien dans ma deuxième feuille de calcul, de la manière suivante:
=HYPERLINK(?VLOOKUP(), "Click here to open Work Item")
Comment formuler mon VLOOKUP
afin qu'il returnne l'URL sous-jacente? Certes, parce que la deuxième feuille a access à l'ID de l'élément de travail, je pourrais simplement copyr la formule HYPERLINK
origine de WorkItemRange
, mais la gamme et la formule sont supposées être situées dans une feuille de travail cachée qui n'est pas disponible pour les users occasionnels de la feuille de calcul .
De plus, cette fiche de travail est complètement dépourvue de VBA et j'aimerais le garder de cette façon.
EDIT: Je request également des solutions sans Excel 4.0 Fonctions, s'il en existe.
Toute information est appréciée. C'est ma première question dans SO et Gosh, j'espère que je le fais bien.
Suite au schéma:
vous pouvez append un Nom de Formules-> Nom Manager avec la formule suivante:
RetHYP -> =GET.FORMULA(INDEX(Sheet1!$A$12:$A$14;MATCH(Sheet1!$B$13;Sheet1!$A$12:$A$14)))
et dans la cellule:
B14 -> =HYPERLINK(MID(RetHYP;1+FIND("""";RetHYP);FIND(";";RetHYP)-(2+FIND("""";RetHYP)));INDEX(A12:A14;MATCH(Sheet1!$B$13;Sheet1!$A$12:$A$14)))
Le RetHYP renvoie la formule de HYPERLINK, après la cellule, vous avez reconstruit l'HYPER …
Utilisation de VBA: avec cette fonction, vous avez le Hyper:
Public Function ExtraxtHYP(AllCell As Range, LinkS As Ssortingng) As Ssortingng Dim Ssorting, SsortingN, SsortingA, AddrS As Ssortingng Dim xx As Range For Each xx In AllCell If xx.Value = LinkS Then Ssorting = Mid(xx.Formula, InStr(1, xx.Formula, "&") + 1, InStr(1, xx.Formula, ",") - InStr(1, xx.Formula, "&") - 1) SsortingN = Trim(xx.Parent.Name) & "!" & Trim(Ssorting) SsortingA = (Mid(xx.Formula, InStr(1, xx.Formula, """"), InStr(1, xx.Formula, ",") - InStr(1, xx.Formula, """"))) SsortingA = Left(SsortingA, InStr(1, SsortingA, "&")) & SsortingN SsortingA = Application.Evaluate(SsortingA) ExtraxtHYP = SsortingA Exit Function End If Next End Function
First Arg c'est la gamme dans la feuille principale, et la seconde le lien que vous searchz …
Avec cette valeur, vous pouvez créer le lien (exemple: dans B10, vous avez "Libero"):
=HYPERLINK(ExtraxtHYP(Sheet1!A12:A14;Sheet2!B10);B10)
Je répète la meilleure façon d'utiliser une colonne cachée pour que datatables soient claires …