מאי 11 2010

אמת או שקר – על אימות נתונים באקסל – חלק א’

מאת שלומי מסורי נושאים Excel, טיפים

אימות נתונים הינה פונקציה מאוד שימושית כאשר אני רוצה לדאוג לאחידות המידע שמוזן לגליון, ובמיוחד אם יש יותר ממזין נתונים יחיד.

אם נאפשר יד חופשית מאוד מהר נגלה שיש מידע מוזר /לא חוקי / סותר בגליון נתונים שלנו.

כמו בכל מאגר מידע ניתן כמובן להגביל את המזינים לסוגי המידע שאנו מאפשרים להם להזין לכל תא.

אופציה זו נקראת בקצרה – "אימות נתונים"

אומנם הזכרתי אופציה זו בפוסטים שונים, אבל הפעם אני אנסה לרכז את המידע במקום אחד.

אימות הנתונים מאפשר להגביל את המידע המוזן בתא , לטקסט באורך מוגדר, מספרים בטווח מוגדר, רשימות ערכים, תאריכים בטווחים מוגדרים, שעות בטווחים מוגדרים.

כמו כן, אפשר להגדיר בכניסה לתא הודעת הסבר. וכאן טיפ קטן, בכדי להציג מידע נוסף בגליון יש שתי דרכים עקריות:

אחת בעזרת הערות (כפתור ימני על תא –> הוספת הערה / שילוב CTRL+ F2) שהיתרון והחסרון שלה שההערה מופיעה רק בריחוף עכבר מעל התא, כך שאם אני עובד רק עם הממקלדת אני לא אראה את ההערה (אלא אם היא מוצגת בצורה קבועה מה שעלול לגרום לעומס יתר במידע ל המסך)

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

עוד על אימותים בפוסט ההמשך…

אין תגובות

ינו' 26 2010

עוד על שמות בגליון – והפעם רשימה משתנה

מאת שלומי מסורי נושאים Excel, טיפים

שלום לכולם,

בפוסט הקודם העלתי את נושא השמות והבטחתי דוגמה.

הפעם אני אצרף קובץ דוגמה המציג אפשרות לקבל רשימה דינמית, כלומר עפ"י בחירת ערך בתא A רשימת הערכים האפשרית בתא B משתנה בהתאם.

ובדוגמה שלהלן: עם שינוי שם העיר תתאפשר רשימת רחובות המותאמת לעיר הרלונטית.

ערים רחובות1 רחובות2

בקובץ המצורף אין אפילו שורת קוד אחת.

הגדרתי בגליון הגדרות את עמודה A את שמות הערים ובעמודות H ואילך את הרחובות.

גליון הגדרות

ונתתי שם לטווח זה: "ערים"  נוסחת השם של הרשימה הזאת מיוצגת בנוסחת OFFSET לפי המבנה הבא:

=OFFSET(הגדרות!$A$1,0,0,COUNTA(הגדרות!$A:$A))

ובתרגום סימולטני צבעוני : התחל בתא A1 (ללא סטיה בשורה ובעמודה), ותפוס כמות שורות ששוה לכמות התאים שאינם ריקים בעמודה A.

החוכמה כאן היא ברשימה השניה!

שמות הרחובות הם למעשה רשימה נפרדת לכל עיר והנוסחה המפנה אליהן אמורה לאתר את העיר המתאימה לבחירה שנעשתה.

הבחירה למעשה תלויה בתא שמימין לתא שאנו מעדכנים.

בקיצור הנוסחה של שם הטווח הזה היא: "רחובות" ונוסחת השם היא מורכבת יותר:

=OFFSET(הגדרות!$G$1,1,MATCH(’פרטי עובדים’!C9,הגדרות!$A:$A,0),COUNTA(OFFSET(הגדרות!$G$1,1,MATCH(’פרטי עובדים’!C9,הגדרות!$A:$A,0),500)))

והתרגום כמובן: התחל בתא G1, רד שורה אחת מטה וX שורות שמאלה (הX הוא למעשה נוסחה של MATCH – איתור הערך הרצוי בתוך רשימה קיימת. ובמקרה שלנו, מהתא שליד התא הנבחר במסגרת האימות נתונים בתוך רשימת הערים בעמודה A והחזרת המיקום שלו ברשימה)  ותפוס כמות שורות ששוה לכמות התאים שאינם ריקים בעמודה הנ"ל (כאן אני סופר את העמודה המתאימה לפי ההיסט שחושב בנוסחת OFFSET וMATCH).

חשוב ביותר לשים לב, יש כאן תאים מקובעים ותאים שאינם מקובעים (אותם הדגשתי במקרה שלנו C9)

מכאן הדרך קלה, באימות נתונים – רשימה אני מקצא לתא הראשון את הרשימה "ערים" ולתא לידו את רשימת "רחובות".

אין תגובות

ינו' 24 2010

KDT – חלום או מציאות?!

באחרונה אני שומע רבות על גישות חדשניות לבניה/פיתוח של בדיקות אוטומטיות. הבאזוורד הרווח היום הוא KDT-KeyWord Driven Test

ראשית, מהו הKDT הזה?

יש מאמר מצויין שכתבו איל זילברמן ואבירם שוטן המציג את עקרונות הKDT.

להלן סיכום מקוצר של עקרון הKDT:

  1. במטרה לערב את צוותי הבדיקות בתהליך האוטומציה פותח "מילון" אשר מיצג "שפת בדיקות" מילים מוסכמות לביצוע פעולות.
  2. על בסיס מילון זה, כותבים מהנדסי הבדיקות את הבדיקות שלהם בצורה שניתן לתרגמה לאוטומציה בצורה אוטומטית.
  3. מומחי האוטומציה בונים "מנוע" היודע לעבד את ההוראות שנכתבו בעזרת המילון לתסריטים אוטומטים.

ממליץ בחום לעיין במסמך הנ"ל.

ככלל המגמה היום היא לערב ברמה מסיבית את מהנדסי הבדיקות הידניים בבנית בדיקות אוטומטיות. כשלעצמו, התהליך והתפיסה מבורכים.

יש הגיון רב בסינרגיה של מהנדסי הבדיקות ומהנדסי האוטומציה, לא לחינם אני "מהנדס" את שני הצדדים, שימוש יעיל באוטומציה מצריך רמת חשיבה ותיכנון גבוהה במטרה למקסם את השימוש החוזר ברכיבי בדיקה.

במסגרת עבודתי כמנהל צוות אוטומציה נחשפתי למספר צורות מימוש של גישה זו.

במצב האידיאלי, יוכל מהנדס הבדיקה לבנות כל תרחיש בדיקה שיעלה על דעתו, בקלות ובמהירות המשתווה לכתיבה ידנית.

בפועל, יש מספר תנאים הכרחיים בכדי לממש אידאה זו בעלויות סבירות.

  1. רמת מורכבות נמוכה של פעילויות למיכון.
  2. רמת שינויים נמוכה – לחילופין הגדרת מזהה חד-חד ערכי לכל רכיב באפליקציה הנבדקת (דבר שאני ממליץ בחום בלי קשר לKDT)
  3. יציבות תשתיתית של המערכת הנבדקת, במטרה להמנע ככל האפשר מטיפול במצבים לא צפויים/ הודעות שגיאה חוסמות.

כמו כן, יש נקודות נוספות שחשוב להתיחס אליהן:

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

עד כה עוד לא ראיתי ולו פיתרון אחד שעונה על כל הקריטריונים שציינתי לעיל, למה שנחשפתי עד כה יש מענה חלקי עם יתרונות חלופיים לכל אחד מהפתרונות.

TRACSPRO

יש לציין ששמתי את הTRACSPRO במקום ראשון כי אני משוחד.

כבר לפני חמש שנים פיתחתי בשיתוף עם חברים לעבודה אפליקציה (TracsPro) שהקפיצה למדרגה גבוהה מאוד את המושג שימוש חוזר (Reuse) בתסריטי בדיקה הידניים בשלב הראשון, ולבסוף גם באוטומציה.

לא זה המקום להרחיב, אך נעשה שימוש במודל הידני שלו במספר פרויקטים, ובמודול האוטומציה ב2 פרויקטים גדולים.

QC+QTP => BPT

לפני כ3-4 שנים נחשפתי לראשונה לBPT של HP , על פניו התפיסה של הBPT לא מוכוונת לאוטומציה בלבד, אלא בכלל לתכנון בדיקות עם דגש רב על שימוש חוזר בבדיקות שנכתבו ובפרמטרים בתוך כל בדיקה.

בגירסאות החדשות של הBPT הושם דגש על נושא האוטומציה והשילוב בין מהנדסי הבדיקות למהנדסי האוטומציה, כך שכל גורם מביא את המומחיות שלו לידי ביטי, מהנדס האוטומציה – קוד יעיל אמין וחכם, מהנדסה הבדיקות/ נתח המערכות – הבנה עיסקית של המערכת הנבדקת.

הBPT הינו Frame Work לאינטגרציה ברמות גירעון שונות, החל מרכיב בודד המייצג תסריט תהליכי שלם המשך ברמת הגירעון ה"מומלצת" של HP – מסך בדיד, וכלה ברמת האוביקט במסך.

להלן תרשים המציג את הROI לעלויות בדיקות ידניות, בדיקות אוטומציה קלאסית ובדיקות אוטומציה בגישת BPT, כפקטור מספר סבבי בדיקה, מתוך מצגת בנושא:

ROI

ניתן בנקל לראות כי אוטומציה "מחזירה את עצמה" לאחר כ5 סבבים – כלומר אם אין צפי להרצה של 5- סבבים אין מה להתחיל בפיתוח אוטימציה למערכת הנבדקת.

כמו כן, שימוש בBPT מצמצם את העלויות ב50% ומציג יחס עלות תועלת משופר בהרבה – גם צפי ל3 סבבי הרצה יחזיר את ההשקעה באוטומציה!

קימים פתרונות נוספים שלא ארחיב עליהם בשלב זה, העושים שימוש בQTP כמנוע אוטומציה עם עטיפה לשימוש בודק ידני,

כשבאים לבחון התאמה של פתרון כזה יש לקחת בחשבון את הנקודות שציינתי למעלה, וכן את הזמן שיש להשקיע בלימוד האוביקטים.

כמובן שיש לבדוק בשימת לב רבה את הROI בפועל על מערכת מייצגת באירגון לשם קבלת הערכה אקטואלית למערכת הנבדקת.

ותודה לאסף האוזר שעזר לי במאמר זה

תגובה אחת

ינו' 19 2010

ואלה שמות – על שמות בגליון

שמות באקסל נועדו להקל על השימוש וההבנה של נוסחאות על טווחי נתונים.
לדוגמה, נוסחה שמחשבת מכפלה של שני תאים. תהיה מובנת יותר אם נגדיר שמות לכל אחד מהמרכיבים(Pay+Tax= כאשר Pay מוגדר לתא A1 וTax מוגדר לB1).

נוסחה עם שמות
יתרון נוסף, שימוש בנתונים בפונקציונליות שבד"כ לא מאפשרים זאת, כמובן, דוגמאות בהמשך.

נתחיל באיך מגדירים שם לתא או לטווח נתונים.

מאוד פשוט, נסמן את התא/ים שאנו מעוניינים להגדיר ונזין שם ללא רווחים בתא הכתובת (מסומן בצהוב).

תא השם

אפשרות אחרת, ללחוץ על הקיצור Ctrl+F3, למלא בשורה למטה את הטווח (לדוג’ A$1=) ובשדה העליון (מסומן בצהוב) להגדיר את השם הרצוי ללא רווחים.

הגדרת שם

אגב, בשדה התחתון (מסומן בצהוב) אפשר להכניס נוסחאות אבל זה כבר בפוסט אחר.

טוב, יש לי שם, מה זה עוזר לי?!

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

[caption id="attachment_160" align="alignnone" width="212" caption="רשימת ימים"]רשימת ימים[/caption]

נוכל להגדיר את הנתונים בגליון אחד, ולהפנות אל הטווח עם השם ישירות מהגליון הרצוי.

אימות נתונים

אופציות נוספות קשורות לVBA וזה ….

נחשתם נכון, בפוסט אחר.

ביי בנתיים.

ובהצלחה.

אין תגובות

ינו' 15 2010

האם זהו ממשק העתיד?!

אולי ירביצו לי השכנים מBlogix מהקומה של הUI. חן שקדי, רן לירון וטליה אבירן (אם שכחתי מישהו אני מתנצל מראש).

אבל היום במסגרת השוטטות היומית במרחבי הבלוגספירה מצאתי את הסירטון הזה:
החוש השישי


לאתר ישירות

האם לא ירחק היום ונראה אנשים מנופפים בידהם ברוב משמעות באמצע הרחוב.

והרהור אחרון מעניין איזו תנועה יקצו לReset?!

תגובה אחת

ינו' 12 2010

מציאת האחד והיחיד – או איך מוציאים רשימת ערכים יחודית

מאת שלומי מסורי נושאים Excel, טיפים

הבוקר עוד בטרם הספקתי ללחוץ על כפתור ההשכמה במכונת הקפה במשרד זינק עלי ממארב ג’ ובאמטחתו השאלה הקבועה באקסל.
איך אני מוציא מרשימה באורך הגלות עם ערכים חוזרים את הערכים היחודיים כלומר מופע יחיד של כל ערך או בקיצור סינון כפולים.

כמובן שיש מספר דרכים למצוא את היחודיים:

אפשרות אחת לחפש ידנית, נראה אותכם עם רשימה של אלפיים שמות.

אפשרות אחרת לכתוב נוסחה, למיין את הנתונים לסנן כמו שכבר כתבתי בעבר

אפשרות נוספת להשתמש בטבלת ציר שעל כך אני אדבר בהזדמנות אחרת.

אבל הבעיה בכל השיטות הללו היא, שבעדכון הרשימה המקורית יש צורך לחזר על הפעולות בכדי להיות עדכניים.

לכן, בכדי שהנודניק יפסיק להציק, וגם מסקרנות בריאה, מצאתי את הנוסחה להלן באתר הזה.

את האמת, לא הבנתי בעצמי את כל הנוסחה, אבל היא עובדת אם שומרים על הוראות ההפעלה שלה.

בהנחה שהרשימה שלכם נמצאת בעמודה A החל משורה 1 ועד לשורה 1000, את הרשימת התוצאות אני מעוניין למקם בעמודה B, סדר הפעולות הוא כדלהלן:

  1. בתא B1 יש להזין את הערך הראשון ברשימה מעמודה A (באותה מידה אפשר לקשור אותו בנוסחה "A1=")
  2. בתא B2 להכניס את הנוסחה הבאה:

    =OFFSET($A$1,MATCH(0,MMULT(–TRANSPOSE(TRANSPOSE($A$1:$A$130)=B$1:B1),ROW(INDIRECT("1:"&ROW()-1))/ROW(INDIRECT("1:"&ROW()-1))),0)-1,0,1,1)

    קצת ארוך מה? יש לשים לב שהמספר המודגש בכחול מייצג את כמות הרשומות בעמודה A אם יש יותר צריך להגדיל בהתאם (המקסימום לפי בדיקה שלי על אקסל 2003 היא 5461 רשומות)
  3. השלב האחרון הוא להפוך את הנוסחה לנוסחת מערך, מתוך העזרה של אקסל(נוסחת מערך: נוסחה המבצעת מספר חישובים בקבוצת ערכים אחת או יותר ולאחר מכן מחזירה תוצאה אחת או מספר תוצאות. נוסחאות מערך מוקפות בסוגריים מסולסלים { }, ומוזנות על-ידי הקשה על CTRL+SHIFT+ENTER.), Microsoft Excel מוסיף אוטומטית את הנוסחה בין { } (סוגריים מסולסלים).
  4. מכאן מה שנותר הוא לגרור את הנוסחה מטה, התוצאה תהיה רשימת הערכים הייחודיים (אם עברנו את כמות הערכים היחודיים התאים יופיעו עם שגיאת נוסחה N/A#)

זהו, יש לכם נוסחה שמחשבת את הערכים הייחודיים.

בהצלחה

לבקשת הקהל אני מצרף קובץ דוגמה: קובץ דוגמה לבחירת יחודיים

6 תגובות

ינו' 10 2010

טריק קצר על המרת טקסט למספר

מאת שלומי מסורי נושאים Excel, טיפים

יש פעמים שאתם מיבאים נתונים ממקורות חיצוניים או מדביקים רשימת מספרים אך שוד ושבר, אקסל לא מזהה את התוכן כמספר (אפשר להבחין בזאת אם הוא מצמיד את התוכן המספרי כאילו היה טקסט לועזי).
אפשרות אחת היא להכנס למצב עריכה של התא (F2) לצאת. (ENTER/TAB)
הבעיה מחמירה שיש טור/ים עם מאות ואלפי מספרים שלא מודעים לעצמם מספיק.
הטריק הוא פשוט ושימושי:
מסמנים את התאים הבעיתיים ואז בוחרים: נתונים –> טקסט לעמודות.
כשנפתח המסך לוחצים מייד על סיום.
ו… ואללה כל המספרים עם בעיות הזהות קיבלו טיפול יעיל ומהיר.

בהצלחה

אין תגובות

ינו' 10 2010

עוד על יבוא, או יבוא מהרשת

מאת שלומי מסורי נושאים Excel

כבר זמן רב אני רוצה לפרסם את הפוסט הזה כהמשך לפוסט הקודם בנושא.
לכן הפעם החלטתי גם לעשות מעשה והתישבתי לכתוב את מה שאני עושה בו שימוש מאוד מסיבי באקסל ולא קשור לעבודה.

אני מתוודה גם אני משקיע בבורסה (בתקווה לא לשקוע) ואחת הדרכים היעילות והמהירות שאני מכיר לבדוק מה מצב התיק שלי מבלי להכנס לאתר הבנק / בית ההשקעות היא ……

ברור, אקסל.

הרעיון פשוט, למצוא מקור נתונים זמין ועדכני באינטרנט להתממשק אליו ולקבל עדכונים כל זמן נתון.

באופן לא מפתיע אקסל מאפשר זאת (עם מספר מגבלות מעצבנות).

לצורך אקסל המעקב שלי אני עושה שימוש באתר הרשמי של הבורסה.

וליתר דיוק לעמוד המפרסם את מדדי כל המניות, בעמוד זה אני מתלבש על הטבלת "נתוני מסחר – מניות כל המניות והמירים"

מכאן העבודה מאוד פשוטה (ותכף אני אדגים איך לבנות אקסל שכזה), וניתן לשלוף את המידע העדכני ביותר (בהשהיה אופנתית של 20 דקות).

אז קדימה לעבודה.

בגיליון המיועד אני פונה אל מקור הנתונים הרצוי: נתונים –> ייבא נתונים חיצוניים –> שאילתת אינטרנט חדשה

שאילתת אינטרנט

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

דפדפן פנימי

נזין את כתובת האתר לתוך שורת הכתובת, או נגלוש לשם בצורה רגילה (לא הכי נוח).

שורת כתובת

נמתין עד שנקבל את הדף הרצוי עם סימני חצים ברוטב צהוב, ונבחר את הטבלה "נתוני מסחר – מניות כל המניות והמירים"

סימון

בלחיצה על "ייבא" נוכל להחליט על מיקום הנתונים שלנו ולאשר

ייבוא נתונים

הנתונים נגזרו לתוך הגליון (לא להבהל אם זה לקח זמן מה)

נתונים בגליון

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

מאפייני

ולסמן את קצב הרענון הרצוי (מרענון כל דקה ועד פעם ב999999 דקות ) או בפתיחת הקובץ. (אזהרה!! קצב רענון תכוף מידי יעמיס על התקשורת ועל האקסל!!)

בכל פעם שאקסל נגש לאינטרנט ומרענן נתונים, נראה בתחתית המסך צלמית של גלובוס סובב.

רענון

מכאן אפשר לשחק עם הנתונים בעזרת נוסחאות כמו VLOOKUP וחברותיה בכדי לקבל את המידע הנדרש במקום הרצוי.

לפניכם תיק לדוגמה (לצערי רק לדוגמה)

תיק לדוגמה

מלבד 5 העמודות הראשונות שמולאו ידנית כל שאר העמודות מחושבות על בסיס המידע שנשלף בשאילתה!

טוב, עד כאן להלילה.

בהצלחה ביישום

וגם בבורסה.

2 תגובות

דצמ' 24 2009

דוס נייד – על תפילות סלולריות

מאת שלומי מסורי נושאים כללי

דוס נייד

על תפילות סלולריות,

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

את התפילון פיתח נער כשרוני בשם אורי הולנדר. ומפיץ אותו בחינם באתר המוקדש לנושא !!

3 תגובות

דצמ' 04 2009

פוסט מהדרכים

מאת שלומי מסורי נושאים כללי

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

בברכת שבת שלום.
ושימרו על עצמכם, הכל מתועד ומפורסם.

אין תגובות

הבא »

Switch to our mobile site