אם יצא לכם להציץ ב Power Query אתם בטח יודעים שאין כמעט בעיה באקסל, שהוא לא יודע לתת לה פתרון.
זה אחד השיפורים המשמעותיים ביותר, והוא עושה את זה בצורה קלה וידידותית.
לפני כמה ימים הציג בפניי קולגה (איש יקר שאני מעריכה מאוד) את הבעיה הבאה:
ללקוח שלו יש תוכנה ששומרת קובץ מכירות יומי בשם קבוע ובתיקיה קבועה, והלקוח מעוניין לצבור את הנתונים.
אז מה הבעיה? האם זו לא תכונה מובנית ב Power Query?
האמת? לא…
אם אשתמש באפשרות של טעינת נתונים מקובץ אקסל אחר, אז ברגע שישמר בתיקיה קובץ חדש, יוחלפו נתוני הקובץ הישן בנתונים החדשים.
השימוש באיסוף נתונים מתיקיה (עליו כתבתי במאמר הזה), גם לא יעיל, משום שיש שם תמיד קובץ אחד בלבד.
אז מה הפתרון?
ליצור שאילתה שמוסיפה את הנתונים לעצמה!
בילבלתי אתכם?
לא נורא, עוד רגע אציג בפניכם את השלבים לפתרון, רק לפני כן אציג בפניכם את הקבצים שעליהם אציג את הפתרון.
בעקרון, מדובר בנתוני דמה קצרים, שנבדלים זה מזה בערכים, כך שנוכל להבדיל ביניהם בקלות:
שלב ראשון – טעינת נתונים מקובץ האקסל:
אפתח קובץ אקסל חדש ואצור שאילתה שטוענת את הנתונים מקובץ אקסל אחר אל תוך גיליון העבודה שלי (רצוי לתת לשאילתה שם משמעותי):
שלב שני – טעינת הטבלה שנוצרה אל ה Power Query
בשלב השני אטען את הטבלה שנוצרה שוב אל העורך, אך אצור חיבור בלבד,
וזאת משום שאני לא מעוניינת ליצור גיליון נוסף עם הטבלה:
אבחר בטעינת נתונים מתוך טבלה/טווח, ובאפשרויות הטעינה אבחר ב'טען נתונים ל…' ואסמן את האפשרות 'צור חיבור בלבד'
בשלב זה יש לנו שתי שאילתות, ובשתיהן אותם הנתונים:
שלב שלישי – צירוף השאילתות
כעת אחזור לעורך, אבחר בשאילתה הראשונה (זו שמופיעה כטבלה בגיליון), ובכרטיסיית 'בית' אבחר ב'צרף שאילתות'
בחלונית שנפתחה, בחרתי להוסיף את השאילתה השנייה (זו שמקושרת באמצעות חיבור בלבד):
בשלב הזה השאילתה נוספה לעצמה:
ולכן אסיר כפילויות (אפשר להסירן בלחיצה ימנית על הטבלה בעורך).
לסיום אלחץ על 'סגור וטען' ואחזור אל האקסל.
עכשיו אחליף את הקובץ הראשון בקובץ השני (זכרו, לשני הקבצים יש את אותו השם), ולאחר מכן בשלישי, וזו התוצאה שהתקבלה:
קסם!
דרך אגב, לחלק ממשתמשי PowerBI Desktop קיימת האפשרות לעשות זאת על ידי שימוש ב Incremental.
אני מקווה שהאפשרות הזאת תגיע בקרוב גם לאקסל
ורק הערה לסיום – האפשרות הזאת מאפשרת הוספת נתונים בלבד.
שינוי או תיקון של נתון בקובץ המקור ישמור גם את הנתון הישן וגם את הנתון החדש, ולא יחליף ביניהם