@יהודי-טוב
אתה למעשה צריך לשלב שתי פונקציות
MATCHו- INDEX
גליון 1: IDN
גליון 2: Data
הסבר לנוסחא בתא C2:
הפונקצייה MATCH מחזירה את מספר השורה של הערך המבוקש A2 בטבלה השנייה
הפונקציה INDEX שולפת ערך מהעמודה A2:A8 לפי מספר השורה שמתקבל מ-MATCH
@יהודי-טוב
אתה למעשה צריך לשלב שתי פונקציות
MATCHו- INDEX
גליון 1: IDN
גליון 2: Data
הסבר לנוסחא בתא C2:
הפונקצייה MATCH מחזירה את מספר השורה של הערך המבוקש A2 בטבלה השנייה
הפונקציה INDEX שולפת ערך מהעמודה A2:A8 לפי מספר השורה שמתקבל מ-MATCH
@יהודי-טוב
אתה יכול בשני גליונות: אחד מכיל את הרשימה עם התעודות זהות והשמות והשני את הנתונים, ולהוסיף עמודה שתבצע Lookup בגליון של תעודות הזהות ותחזיר את השם המתאים
@UA אמר בחישוב הפרש תאריכים באקסל:
לומר אפשר להשתמש בפונקציה חוץ מהארגומנט md ולהיות רגועים?
אני צריך את זה לאקסל שח-י-י-ב להיות מדויק
כן, אם אתה מודע למגבלות של DateDif. למשל בחישוב הפרש של שעות היא מעגלת את התוצאה
לדוגמא:
DateDiff("h", #4/13/2017 12:09PM#, #4/13/2017 3:59PM#)
התוצאה היא 3, כי הדקות לא נכללות.
אם תשתמש בארגומנט n לחישוב של דקות ואחר כך תחלק ב-60 תקבל דיוק של הדקות:
DateDiff("n", #4/13/2017 12:09PM#, #4/13/2017 3:59PM#)
התוצאה היא 230, וכשתחלק ב-60 תקבל 3.83 שעות.
עוד דבר, איזה אופציות נוספות יש לחשב מרחק של ימים/חודשים/שנים בעזרת פונקציות ולא VBA?
תוכל לכתוב נוסחא יותר ארוכה בשימוש בפונקציות המובנות
Day() Month() Year()
שכן מופיעות.
למשל:
DATEDIFF($A2;$B2;"D") == INT($B2-$A2)
DATEDIFF($A2;$B2;"M") == 12*(YEAR($B2)-YEAR($A2))+MONTH($B2)-MONTH($A2)-(DAY($B2)<DAY($A2))
DATEDIFF($A2;$B2;"Y") == YEAR($B2)-YEAR($A2)-IF(MONTH($A2)>MONTH($B2);1;IF(MONTH($A2)=MONTH($B2);DAY($A2)>DAY($B2);0))
אם תשקיע עוד מאמץ, יש גם אפשרות ליישם את הארגומנט md... עיין כאן למקור.
@UA אמר בחישוב הפרש תאריכים באקסל:
לגבי הפרש תאריכים באקסל כלומר חישוב מס' ימים/חודשים/שנים בין 2 תאריכים, יש את פונקציית DATEDIF אבל הפונקציה מוסתרת ומייקרוסופט לא ממליצה להשתמש בה.
שאלתי היא:
האם אפשר להשתמש ב-DATEDIF, ומה הבעיות העלולות להיווצר?
ליתר דיוק מיקרוסופט לא ממליצה להשתמש בפרמטר md של הפונקציה בלבד. עיין באתר מיקרוסופט. הסיבה לכך היא שלעתים התוצאות לא צפויות.
איזה פונקציה חילופית יש?
תשתמש בפונקציה ללא חשש, (היא לא היחידה שמוסתרת באקסל) אבל הימנע משימוש בפרמטר כפול md. אלא חשב את היום בנפרד על ידי d ואת החודש עלידי m.
פונקציה זהה קיימת גם בVBA בשם הכמעט זהה DateDiff
@ZACK אמר בימות המשיח - ממשק לקריאה נוחה של לוג השיחות:
רק שאלה, את הכתיבה של הפונקציות שהמפתח עושה עם API , איך הוא עושה את זה? בשפת תוכנה? איזה?
זו שאלה טובה - שמתאימה לנושא חדש לגמרי...
על קצה המזלג, בדרך כלל ספק ה-API רוצה להגיע לקהל גדול ככל הניתן, ולכן יספק ממשק שיכול להתקשר עם שפות תוכנה מצויות.
כיום כשמדברים על API, בדרך כלל הכוונה היא ל-WebAPI שהוא מאפשר למפתחים לגשת לפונקציות על ידי האינטרנט, ובכך מעניק גמישות גדולה ביותר בצד של המפתחים (ניתן לבצע קריאות API מכל מכשיר המחובר לאינטרנט)
@nigun אמר בימות המשיח - ממשק לקריאה נוחה של לוג השיחות:
ימות המשיח פתחו הרבה מודול נפלאים
תוכל לספק מידע נוסף בנושא? האם המודולים זמינים לציבור?
@ZACK
API=Application Programming Interface
או "ממשק לתכנות אפליקציה".
הדגש הוא על המלה "ממשק" שזה בעצם אומר: אוסף של פונקציות והגדרות שדרכם אפשר לגשת לרכיבי התוכנה.
למשל:
כשאתה מפעיל את הרדיו, הממשק שלך הוא הכפתורים, פתח הכנסת הדיסק וכו'. למרות שאתה לא יודע בדיוק כיצד עובד הרדיו או הדיסק, זה לא ממש אכפת לך, נכון? אתה נמצא במגע עם הממשק שמספק לך את הפונקציונאליות שאתה צריך (לשמוע שיר, לעצור, להגביר וכו')
מפתחי תוכנה X מספקים ממשק למתכנתים אחרים, דהיינו אוסף של פונקציות ונתונים, כך שיוכלו לגשת לפונקציונאליות של התוכנה שלהם, מבלי לדעת בדיוק איך הקוד עובד או יכולת לשנות אותו.
המתכנתים שולחים קריאה לAPI של תוכנת X ומקבלים ממנה תגובה.
לדוגמא, על ידי ה-API של Gmail אני אוכל להשיג את רשימת אנשי הקשר שלי ולהציגה בתוכנה שכתבתי בעצמי.
על ידי API של ימות המשיח אני אוכל תיאורטית לגשת לנתונים שלהם, לקבל מידע על השלוחה שלי, ולשלוף משם נתונים או אפילו לשנות דברים, בהנחה שימות המשיח מאפשרים לי זאת בממשק (API) שלהם.
מפתחי ה-API הם אלו שמחליטים אילו פונקציות זמינות למתכנתים חיצוניים ואילו לא.
בדוגמא של הרכב, אם אני רוצה למשל לנגן את השיר אחורה או בחצי מהירות, לרוב הממשק לא מאפשר זאת.
זה אומר שאני צריך להוריד את הנתונים מהאתר באופן יומי.
האם דרך API אפשר למשוך את הנתונים יותר בקלות \ אוטומטית?
@WWW וואו, תודה על המידע. כבר עזרת לי הרבה כי הקבצים האלו הם דוחות חודשיים (ולא יומיים).
כשמורידים את הלוג הוא מחולק לקבצים לפי ימים:
LogPlaybackPlayStop.2020-04-24.html
LogPlaybackPlayStop.2020-04-25.html
וכו'
אני רוצה
אני יכול לכתוב ממשק כזה, אבל לא מתחשק לי להמציא את הגלגל. יש למישהו משהו מוכן?
אפשר גם לסמן בחלון הנ"ל "הצג עקבות מצביע" מה שגורם לעכבר להשאיר אחריו שובל כשמזיזים אותו.
@אביי אמר בחיפוש והחלפה של רווחים באקסל/אקסס:
כלומר, איך אני מתפעל אותה בהחלפה?
newString = Trim(someString)
למשל
newString = Trim("This is a string ") 'NewString is now = "This is a string"
@רוב-יועץ זה חידוש בשבילי, אני סברתי שדור 3 יותר מזיק. האם מדבריך ניתן להסיק שדור רביעי עוד יותר טוב?
@איש-ימיני כנראה טעות בהקלדה או שלא דייקת בשמות השדות.
אני מאוד ממליץ לך לשנות את כל שמות השדות שבטבלאות וכן את שמות הטבלאות לאנגלית, זה יחסוך לך כאב ראש גדול!
אפילו עברית פונטית כבר עדיפה (למרות שלא מומלצת גם...) למשל לקרוא לטבלה Klali, Ziunim וכו'
@איש-ימיני תיצור שאילתא חדשה, עבור לתצוגת SQL ותרשום
UPDATE כללי LEFT JOIN ציונים ON כללי.[מספרי זהות] = ציונים.[מספרי זהות] SET כללי.[ציון 2] = [ציונים].[ציון];
שים לב! לא כדאי בכלל להשתמש בשמות שדות בעברית, כאן בקוד למעלה סימן ההשמה (=) נראה הפוך מימין לשמאל
וכאילו השאילתא מעדכנת את טבלה 2 ולא את טבלה 1.... וגם משפט הJoin נראה הפוך
@איש-ימיני לייבא לתוך שדה חדש אי אפשר בשאילתא. צריך ליצור שדה חדש ידנית ואחר כך ליצור שאילתת עדכון.
או להציג את הנתון מהטבלה 2 ליד השורה המתאימה מטבלה 1 על ידי שאילתא (מבלי לשמור אותו בטבלה 1)
@איש-ימיני אוקי, מה שם שתי הטבלאות המדוברות, ומה שם השדות הרלוונטים בכל טבלה?
יש שני שלבים לדבר:
את 1 אתה יודע לעשות?
@nigun לי יש Nokia C2 ולא עושה שום בעיות