החלפת Vlookup לקישור רגיל

שבוע טוב,
לדוגמה וילוקאפ מחזיר ערך של תא X בגיליון Y , כך =VLOOKUP....
אני מבקש להחליף את הנוסחה לקישור המפנה ישירות לאותו התא (תא X בגיליון Y), כך = גיליון Y.....
הערך יהיה אותו דבר, אבל הנוסחה תוחלף מוילוקאפ לקישור רגיל.
אודה לעיצה, הכווונה, פתרון.
(7/2010)
 

ziv98

Member
לא ברור לי הצורך, אבל החלפה של פונקציה בפונקציה אחרת, אפשרית ע"י קוד בלבד.
צריך להבין מה הטריגר שיפעיל את הקוד (מתי יתכן והתוצאה של המהלך תיצור / תשנה את ההפניה)
 
לא בטוח שהבנתי מה כוונתך " יתכן והמהלך ישנה את ההפניה" .
חשבתי לחלץ את שם הגיליון מתוך ה- וילוקאפ , אבל איך למצוא את התא עצמו... (עמודה/שורה) ?
כוונתי בעצם, לבחור תא או מס' תאים (המכילים נוסחאות וילוקאפ) ולהפעיל מאקרו.
 

ziv98

Member
הלוקאפ מצא תוצאה מתאימה (ת"ז, למשל) ב - A1, ומשך את השם מ - B1.
שינית את ת"ז ב - A1, ועכשיו היא ב - A2, ובהתאמה את השמות.
אם קיבעת את משיכת השם מול B1, אתה מושך עכשיו שם לא נכון.

לגבי השאלה הכללית - אתה צריך לכתוב חיפוש, די פשוט, בדומה למה שעושה ה - לוקאפ - רץ על עמודה, ומחפש התאמה. אם מצא - מבצע offset כמספר העמודות בפרמטר. צריך לשים לב מתי עוצרים: יש הבדל מהותי בפרמטר האחרון (מיון הרשימה, ולא רק האם נמצא ערך מדוייק או נמצא מקורב)

ועדיין לא הבנתי מה רע בלוקאפ.
 
הי זיו,
לוקאפ בסדר גמור אבל לא מאפשר לדלג לתאים מזינים.
מה שכן מתאפשר בקישור רגיל, אף אם מדובר בגיליונות שונים.
במקרה שלי לא תהיה בעיה עם ההפניה, כי אני לא מקבע !
ולגבי תשובתך, אם הבנתי נכון, אני/הקוד צריך לחלץ נתונים מתוך הוילוקאפ (ערך החיפוש, שם גיליון, מאיזו עמודה מתחילה הטבלה, כמה להסיט שמאלה...) ורק אח"כ לעשות לולאה וגם להכניס תנאי שיידע היכן לעצור...,
ובסוף, נניח שמצאתי את התא - אני צריך ליצור אליו קישור רגיל.
נראה לי מורכב/בלגן לא קטן. אני בכיוון ?
 

ziv98

Member
ב - A1 כתוב פונקציית לוקאפ.
הרץ את הקוד:

קוד:
Sub fnc()
MsgBox Range("A1").Formula
End Sub

את המחרוזת שקיבלת - אתה צריך לנתח:
1. האם היא מתחילה ב - "=vlookup"
2. אם כן - קח את החלק בתוך הסוגריים, וחלק לפי פסיק
 
שאלה :
תחילה צריך להסיר את VLOOKUP והסוגריים.
איך מפריד את =VLOOKUP(A5,Sheet1!D:M,4,0)
כך שאקבל
A5,Sheet1!D:M,4,0
בפונקציית MID צריך להגדיר אורך אבל זה משתנה, שם הגיליון אינו קבוע...
אח"כ אני אשתמש ב 'טקסט לעמודות' ואבדוק הקלטה.
 

ziv98

Member
בהנחה שב - A1 יש פונקציה שהיא רק vlookup:

קוד:
Sub fnc()
Dim fncParts() As String
    fncstr = Range("A1").Formula
    If LCase(Left(fncstr, 8)) = "=vlookup" Then
        fncstr = Replace(Replace(LCase(fncstr), "=vlookup(", ""), ")", "")
        fncParts = Split(fncstr, ",")
        For i = 0 To 3
            MsgBox "lookup parameter " & (i + 1) & " = " & fncParts(i)
        Next i
    Else
        MsgBox "not vlookup"
    End If
End Sub
 
למעלה