
הטקסט המלא של הדקות הראשונות בהרצאה «עבודה עם קבצים של אקסל בתוך Qlik - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אוקיי, אז לפני שני שיעורים ראינו איך אנחנו משרשרים טבלת החזרות לטבלת orders בעזרת פונקציית concatenate. בשיעור הקודם ראינו איך משתמשים ב-no concatenate.
אם אני חוזר לדוגמה הזאת של concatenate לשרשר נתונים, אז זה באמת היה לשם הדוגמה, כי בדרך כלל אנחנו לא נקבל נתונים כאלו בתוך, או לא נקליד אותם בתוך הסקריפט, אלא הם יהיו בדאטאבייס כמובן, או, אופציה לא פחות נפוצה, מקבצים.
הרבה פעמים זה יגיע בקבצים, הרבה פעמים לא בקובץ אחד בודד, בואו נניח נישאר עם הדוגמה הזאת של ההחזרות, שההחזרות משום מה לא נכנסים אלינו לדאטאבייס, יכול להיות שזה פשוט תהליך עסקי אחר שמביא לנו את הנתונים, ואנחנו בעצם מקבלים כל יום את טבלת ההחזרות בקובץ אקסל,
הקבצים זהים, אבל זה כל פעם קובץ אחר. עכשיו אנחנו צריכים לדאוג להכניס אותם לנתונים ולחבר אותם כמו שעשינו פה.
עכשיו הבעיה היא שבעצם זה המון המון פונקציות, פונקציות קונקטנט, קובץ שמגיע בכל יום ולא רק זה אני בעצם צריך כל יום להיכנס ולעדכן את הסקריפט ידנית כי עוד לא הגיע לי קובץ החדש, אתמול עוד לא הגיע לקובץ של היום לכן היום אני צריך להיכנס ולהוסיף את המשפט קונקרטינאי של הקובץ החדש.
כמובן שכל זה לא מאוד מאוד הגיוני לעשות ככה ולכן במקרה כזה נשתמש במנגנון אחר. קונקרטינאי משמש רק כשיש טבלה מאוד ספציפית וקונקרטית שאני יודע שאני רוצה לשרשר אותה אבל במקרה שיש לי הרבה קבצים אני אשתמש במנגנון של קריאה מתיקייה בעזרת כוכבית.
בשביל זה, קודם כל נהפוך את זה לקובץ אקסל, את האכזרות, ונעשה נגיד שניים או שלושה קבצים של אכזרות. אז בואו נפתח תיקייה, D-Temp, ונעשה שם קובץ אקסל, בוא נעשה תיקייה של אכזרות, נניח שזו התיקייה שמגיעים אלינו כל קבצי האכזרות, ואני אעשה פה קובץ אקסל,
נקרא לו Returns, נגיד 19 01 01, זה הקובץ החזרות שהגיע בראשון ינואר, סליחה לא רציתי תיקייה, אני רוצה קובץ אקסל, וזה הקובץ עכשיו, בואו נמלא אותו, כמובן כל זה הדגמות בלבד, אז לפי הנתונים שלנו פה יש לנו Customer ID, אפילו אפשר להעתיק את זה, העמודה הראשונה תהיה Customer ID,
העמודה השנייה תהיה Order Date, והשלישית Product ID, Quantity, פאק טייפ אני לא מכניס פה, תכף תבינו למה, ונשמור, ונתחיל קצת להכניס נתונים, כמובן זה רק בשביל ההדגמה.
אז קסטומר אחד, תאריך, פי שבעים, והכמות אחד. לצורך ההדגמה, נניח שזו הייתה ההחזרה היחידה באותו יום.
כמובן זה לא הגיוני שזה התאריך, אבל לא משנה כרגע. זו הייתה ההחזרה היחידה באותו יום, ונניח שיש קובץ נוסף שכולל את שתי ההחזרות הבאות. בואו נעשה עוד קובץ, נשכפל אותו, קראה לו אותו שם, אבל שני לחודש, ונכניס נתון אחר, פסולה ID 2, את זה נשנה ל-15 לעשירי, כלומר, זה לא משנה, זה רק הדגמה.
את ה-ID, 60. מספיק לי כרגע, וה-Quantity, 2. זה מספיק. אוקיי, אז יש לי שני קבצים בתיקייה, בואו נראה את זה, עם החזרות 1 והחזרות 2. שימו לב, המבנה שלהם זהה לחלוטין, זה באמת מצב מאוד הגיוני, כי אנחנו מדברים על קבצים של אותם נתונים, שכנראה מגיעים לנו כל יום בדרך כזאת או אחרת.
עכשיו, במקום זה, בואו ניקח את זה, נכניס אותו בעצם להערה, ואני רוצה לטעון את הקבצים. אז אני אתחיל לטעון קובץ אחד, ואחרי זה אני אשנה את הסקריפט.
אז אני הולך ל-Folder, בואו נמצא ב-D-Temp Returns. ואני אקח את הראשון. צריך למשוך קובץ. מה שעשיתי, עצרתי קונקשן, אז בואו באמת נעשה קונקשן של פולדר.
בעצם קונקשן מאפשר לי לגשת גם עכשיו וגם בהמשך לקבצים שנמצאים בתיקייה או לדאטה שנמצאה בדאטאביס מסוים, ראינו את זה ממש בתחילת הקורס.
נגיד ש-D-Temp Returns זה תיקייה שאני קורא קונקשן שאני רוצה לקרוא לו Returns, החזרות. ואז הוא בעצם יופיע לי פה בצד ימין ואני אוכל עכשיו לקרוא ממנו קבצים, אני לוחץ על זה ואני קורא את הקובץ הראשון ו-Select, הוא נותן לי איזשהו ויזארד, אני אומר לו, סבבה, לך, זה אינסרט סקריפט, והכניס לי את
הסקריפט הזה. קורא לי את הקבצים, מי הקובץ הראשון. עם כל מיני מאפיינים, שגיליון זה גיליון אחת וכולי. עכשיו, אני בעצם רוצה לעשות לזה לקונקטנט אורדרס, זה הדבר הראשוני, כמו שעשינו במקרה הקודם, אבל בעצם, כמו שאמרנו, זה לא יהיה טוב, כי אנחנו צריכים לעשות קונקטנט לכל אחד מהם.
אז מה אנחנו עושים? הוא בעצם משנה, במקום לכתוב את השם המלא של הקובץ, אני מוחק ואני עושה כוכבית. הסקריפט נשאר אותו דבר, כן יש פה קונקרטיה דעית למעלה, אבל לא היה הפניה לשם קובץ ספציפי, אני בעצם אומר לו, כל מה שבתיקיית ריטרנס, כל הקבצים שנגמרים ב-XLSX,
זאת אומרת קובץ אקסל, תשרשר אותם אחד אחרי השני. בעצם בפועל הוא פשוט יריץ את אותו סקריפט, שוב את אותו קטע בסקריפט, שוב ושוב ושוב ושוב על כל הקבצים שעונים על התנאי הזה. עכשיו, למה לא הכנסתי את ה-Fact type?
עכשיו, כשאנחנו בעצם, יש לנו קבצים אמיתיים, זה לא הגיוני שבכל שורה אנחנו ניכנס ונכניס Fact type return, זה לא הגיוני. אנחנו יכולים להכניס את זה בתוך הסקריפט, כי מן הסתם ה-Fact type זה לא משהו שיגיע