יום שני, 30 בינואר 2012

יישומי מחשב - השיעור של רועי





השיעור של רועי

בdata אסור להוסיף או לשנות, כי תכנת הבדיקה משנה את זה.
לכן עושים העתקה נוסחתית לs1.
בודקים עד איפה הנתונים נמצאים עי end+ חץ למטה.
עושים = התא בגיליון אחר, ואז גוררים את הנתונים עד איפה שצריך.
קיבלנו העתק 1:1 של הנתונים בגיליון המקורי.
אם יש ערכים חסרים נקבל אותם כאפס, וזאת בעיה, ולכן יש העתק נוסחתי מותנה שבני נותן - אם האורך של התא הוא אפס הוא ישים טקסט שיראה לנו שזה בעייתי. (זה בודק את זה בעזרת פונקציית len).

לגבי הסיכומים של שנה שעברה:
שנה שעברה הראו איך לחשב טי טסט באקסל. השנה לא צריך את זה.
שנה שעברה היה צריך לחשב מובהקות גם ח"ז וגם דו"ז, השנה יהיה רק דו"ז.
אנחנו צריכים רק פונקציות סטטיסיות רגילות.
בספסס החומר דומה מלבד שיעור 10, בעמוד הראשון - פונקציות:
nvalid
nmis
sum
missing
sum.n - sums if there are n or more valid args
אותו עיקרון יכול לעבוד גם לגבי mean.n, max.n וכו


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

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

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

אז איך מפרידים משפט למילותיו? - זה מה שרועי אמר בשיעור, אבל יש בהמשך שיטה עדי]ה בהרבה!
נטרים ונוסיף רווח אחד בסוף, כך שאם יש תא ריק יהיה רווח אחד, וכך נבדיל בין טקסט בן מילה אחת לבין טקסט ריק. (לדעתי זה טוב כי אנחנו עושים find על מה שמשאל לרווח.)
B15
=trim(A15)&" "
נחפש את אורך המילה הראשונה (בטקסט ריק נקבל אפס)
C15
=find(" "', B15)-1

D15
=left(B15, C15)
קיבלנו את הטקסט של המילה הראשונה
E15
=len(D15)
קיבלנו את אורך המילה הראשונה
נחפש את שאר הטקסט:
F15
=right(B15, len(B15)-E15-1)

קיבלנו קבוצה של find-right וצריך להעתיק אותה (ללא קיבוע!!) כמה שצריך. ההנחה היא שיש עד 30 מילים.
(ראינו עם ארבע עמודות, אפשר היה לעשות את זה בשתי עמודות).

שיטה אחרת ועדיפה בהרבה:
קודם, מוצאים את המילה הראשונה כך:
=left(trimmed sentence, find(" ", trim.sen.)-1)
אח"כ, מחליפים אותה במשפט לכלום, ועכשיו המילה השניה היא המילה הראשונה-
=sbstitute(tri.sen., 1stword&" ", "", 1)
וחוזר חלילה לפי הצורך.
חשוב לא לקבע כלום!

עכשיו צריך לגרור את זה לכל המילים.
כדאי ללמוד לעבוד עם מקש הend.
שיפט+אנד+חיצים מתאימים תופסים שורה / עמודה שלמים.
אם value מפריע לנו אפשר לעשות תיקונים.
הוא מגיע ברגע שנגמר המשפט. אפשר לעשות תיקון כך שבכל מקום בו יכולה להיות בעיה - למשל find שמחזיר טעות. הטיפול:
=if(iserror(expression),  "", expression)

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

עכשיו אפשר לשאול שאלות על איזה עמודה רוצים, להשתמש בפונקציות:
max
mode 
(למשל, אם שואלים על העמודה הרביעית הכי שכיחה עושים מוד על העמודה בקבוצה הרביעית).

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

search
אותו דבר, אבל לא רגיש לרישיות.

טריק לחיפוש מספר מילים במשפט:
אם עשינו טרים והוספנו רווח סוף, אז מספר המילים הוא מספר הרווחים.
 בעזרת substitute נחליף כל רווח בטקסט ריק, ואז נעשה len(original, trimmed)-len(new), וההפרש שהתקבל הוא מספר המילים. 


במבחן יהיה מלא database ולכן חשוב להכיר:
match
פונקציה שמחפשת ערך בתור מערך של חסמים עליונים / תחתונים / ערכים מדוייקים.
חסמים תחתונים - ממוינים בסדר עולה. כל מה שקטן מקטגוריה 2 ייכנס לקטגוריה 1. מה שגדול מהקטגוריה העליונה יחזיר קטגוריה n+1 (כאשר n הוא מספר הקטגוריות). אם נחפש מספר שקטן מהקטגוריה התחתונה נקבל טעות.
שנה שעברה היה לבדוק לאלו ערכים אין קטגוריה. בשביל זה נחפש את הטעויות.
חסמים עליונים - אותו רעיון. ממוינים בסדר יורד. מה שגדול מהקטגוריה העליונה הוא חסר קטגוריה. 
חיפוש מדויק - עושים match 0.

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

פונקציות vlookup וhlookup -
הטווח מקובע ללא כותרות (בניגוד לפונקציות d).
אפשר להזין 0 ואז הוא יחפש חיפוש מדוייק, ואז זה לא משנה איך העמודה (או השורה) ממויינת.
אפשר להזין 1 ואז זה חיפוש מקורב, אבל את זה אפשר לעשות רק אם העמודה/שורה הרלוונטיות ממוינות בסדר עולה.












אין תגובות:

הוסף רשומת תגובה