Power Query — חדר המכונות
כל טכניקות ה-ETL, אחת-אחת, עם צילום מסך מתוך העורך לכל אחת: טיפוסים, תאריכים, פיצול, עמודה מותנית, Merge ו-Append.
איך עובד השיעור
שלושה דברים לדעת לפני שמתחילים, ואז תוכן השיעור, ניווט בין השיעורים וההכנה לתרגול.
ניווט בין נושאים
הכפתורים הקודם והבא קבועים בראש המסך. אפשר גם בחצי המקלדת, בהחלקת אצבע בטלפון, או לקפוץ מרשימת הנושאים.
צילומי מסך אמיתיים
כמעט לכל טכניקה יש צילום מסך מתוך העורך. הקישו עליו כדי לפתוח בגודל מלא ולראות בדיוק איפה לוחצים.
שאלות ותרגול
הכפתור למבחן מוביל לבוחן של 40 שאלות ולתרגיל הבית — הכול על Power Query בלבד.
ארבעת שיעורי הקורס
המסלול המלא. אפשר לעבור לכל שיעור בלחיצה.
הכנה לתרגול
התרגיל המעשי בסוף השיעור. כדאי לפתוח את Power BI Desktop ואת קובץ AdventureWorks כבר עכשיו.
AdventureWorks_Sales.xlsx
שבעה גיליונות, 121,253 שורות מכירה ו-397 מוצרים — אותו קובץ משיעור 2, עכשיו מזווית ה-ETL.
המנוע שמכין את הנתונים
Power Query הוא המנוע שמבצע ETL: מושך נתונים ממקור (Extract), מנקה ומעצב (Transform), וטוען למודל (Load).
כמעט בלי קוד
כל קליק מייצר מאחורי הקלעים שורת קוד בשפת M. עובדים בעכבר, והקוד נכתב לבד.
חזרתיות מלאה
מגדירים פעם אחת. בכל Refresh כל הניקוי רץ מחדש אוטומטית על הנתונים החדשים.
מאות מקורות
Excel, בסיסי נתונים, אתרים, תיקיות ו-API — והכול מתאחד למקום אחד.
המשל: Power Query הוא המטבח שלפני המסעדה. לא מגישים חומר גלם — קודם מנקים, חותכים ומסדרים, ורק נתונים מבושלים מגיעים לצלחת, כלומר למודל.
אימות והתחברות מאובטחת
בחיבור למקור חדש, Power Query מבקש פרטי הזדהות פעם אחת ושומר אותם למקור — לא לקובץ.
| סוג אימות | מתי משתמשים |
|---|---|
| Anonymous | מקורות ציבוריים שלא דורשים הזדהות — אתר פתוח או API ציבורי |
| Windows | הרשאות המשתמש המחובר — רשת ארגונית וקבצים מקומיים |
| Database / Basic | שם משתמש וסיסמה — טיפוסי ל-SQL Server, Oracle ובסיסי נתונים |
| Organizational account | חשבון ארגוני (Microsoft / Google) בחלון התחברות מאובטח, בלי סיסמה בקובץ |
| Web API / Key | מפתח גישה שמודבק בכותרת הבקשה — לשירותים מבוססי API |
איפה מנהלים
File ← Options ← Data source settings. שם עורכים, מוחקים או מחליפים סיסמה שפגה.
רמות פרטיות
Private / Organizational / Public — מונעות דליפת מידע רגיש בין מקורות בזמן מיזוג.
טעות נפוצה
בחירת סוג אימות שגוי = שגיאת התחברות. בדקו מול מנהל המערכת מה המקור דורש.
כלל ברזל — קריאה בלבד
Power Query פועל בסביבת קריאה בלבד. הוא מושך עותק של הנתונים ומעצב אותו לדוח — שום פעולה כאן לא נוגעת בנתוני המקור.
המסך הזה בטוח לחלוטין
נמחק עמודות, נסנן שורות או נחליף טקסט — שום שינוי לא ישפיע על קובץ ה-Excel או על שרת ה-SQL. אפשר להתנסות בלי חשש.
רוצים לתקן מהיסוד?
שינוי שאמור להשפיע על כל מערכות הארגון חייב להתבצע במקור עצמו — בבסיס הנתונים או בקובץ, לא כאן.
כלל אצבע: עיצוב לטובת הדוח ← Power Query. תיקון אמת ← המקור.
Applied Steps — מכונת הזמן
Power Query עובד כמו מקליט מאקרו חכם: כל קליק נרשם כשלב נפרד. זו ההיסטוריה המלאה של תהליך ה-ETL.
| שלב | מה הוא עשה |
|---|---|
| Source · Navigation | התחברות למקור ומשיכת הטבלה הנכונה |
| Changed Type | המערכת זיהתה ושינתה סוגי נתונים — טקסט, מספר שלם, תאריך |
| Split Column by Delimiter | פיצול עמודה לפי מפריד |
| Changed Type1 | שינוי טיפוס נוסף שנוצר אוטומטית אחרי הפיצול |
| Added Conditional Column | העמודה המותנית שנוספה — השלב המסומן כרגע |
למעלה בפאנל: Properties ← Name — שם השאילתה הוא שם הטבלה כפי שתופיע במודל הנתונים.
ארבעה דברים שחובה לדעת על Applied Steps
אין Ctrl+Z
אי אפשר לבטל פעולה בדרך הרגילה. כדי לתקן טעות מוחקים את השלב בלחיצה על ה-✖ שמופיע לצידו.
עריכת שלב קיים
לחלק מהשלבים יש גלגל שיניים. לחיצה עליו פותחת מחדש את חלון הפעולה — לשנות ערך בלי לעשות הכול מהתחלה.
מסע בזמן
לחיצה על כל שלב קודם מראה בדיוק איך הנתונים נראו לפני שהפעולות הבאות בוצעו.
איתור באגים
בזכות מסע הזמן אפשר לנפות תקלות שלב אחר שלב ולזהות היכן בדיוק הנתונים השתבשו.
שינוי פורמט תאריך — Using Locale
מתי: תאריך אמריקאי (MM/DD/YYYY) עלול להתפרש הפוך — יום מול חודש — או לזרוק שגיאה.
| שלב | מה לוחצים |
|---|---|
| 1 | ב-Power BI: Home ← Transform data (פתיחת העורך) |
| 2 | קליק ימני על כותרת עמודת התאריך |
| 3 | Change Type ← Using Locale… |
| 4 | בחלון: Data Type = Date · Locale = English (US) |
| 5 | לחצו OK — נוסף שלב ב-Applied Steps |
חילוץ חלקי תאריך — Extract Date Parts
מתי: לפלח לפי שנה, חודש או רבעון בלי נוסחאות — מחלצים מעמודת תאריך קיימת.
| שלב | מה לוחצים |
|---|---|
| 1 | בחרו את עמודת התאריך (קליק על השם) |
| 2 | לשונית Add Column — כדי לשמור על המקורית |
| 3 | קבוצת Date & Time ← Date |
| 4 | Month ← Name of Month |
| 5 | עמודה חדשה נוצרת |
פורמט כסף — Fixed Decimal Number
מתי: מקבע ל-4 ספרות עשרוניות — בדיוק לכסף, בלי שגיאות עיגול בחישובים.
| שלב | מה לוחצים |
|---|---|
| 1 | בחרו את עמודת הכסף (למשל Standard Cost) |
| 2 | לחצו על אייקון הטיפוס (ABC / 123) משמאל לשם העמודה |
| 3 | בחרו Fixed Decimal Number |
| 4 | חלופה: Transform ← Data Type ← Fixed Decimal |
| 5 | העמודה נעולה ל-4 ספרות אחרי הנקודה |
עיגול מספרים — Rounding
מתי: לנקות מספרים ארוכים מחישוב ולקבוע כמה ספרות יישארו.
| שלב | מה לוחצים |
|---|---|
| 1 | בחרו את העמודה המספרית |
| 2 | לשונית Transform |
| 3 | קבוצת Number Column ← Rounding ← Round… |
| 4 | הקלידו מספר ספרות: 2 |
| 5 | לחצו OK |
פיצול עמודה — שבע שיטות
מתי: לפרק עמודה "דחוסה" למספר עמודות — לפי תו מפריד, מספר תווים, מיקום, או מעבר בין סוגי תווים.
| שיטה | מה היא עושה |
|---|---|
| By Delimiter | פיצול לפי תו נבחר — פסיק, מקף, רווח. השכיחה והשימושית ביותר |
| By Number of Characters | חיתוך כל כמות קבועה של תווים — למקטעים וקודים באורך אחיד |
| By Positions | חיתוך באינדקסים מדויקים (תו 3, תו 8) — למבנה קשיח בלי מפריד |
| By Lowercase to Uppercase | פיצול במעבר מאות קטנה לגדולה — mountainBike ← mountain | Bike |
| By Uppercase to Lowercase | ההפך — מעבר מאות גדולה לקטנה: MACdonald ← MAC | donald |
| By Digit to Non-Digit | פיצול במעבר ממספר לאות: 12345ABC ← 12345 | ABC |
| By Non-Digit to Digit | פיצול במעבר מאות למספר: PO9876 ← PO | 9876 |
פיצול לפי מפריד — צעד אחר צעד
| שלב | מה לוחצים |
|---|---|
| 1 | בחרו את העמודה (למשל SKU) |
| 2 | Home או Transform ← Split Column |
| 3 | By Delimiter |
| 4 | בחרו Custom והקלידו - |
| 5 | Split at: Each occurrence ← OK |
| מפריד | איפה פוגשים אותו |
|---|---|
| פסיק , | רשימות CSV, "שם משפחה, שם פרטי" |
| נקודתיים : | שעות (14:30:00) או מפתח-ערך (Category: Bikes) |
| שווה = | כתובות URL ופרמטרים: ProductID=5432 |
| נקודה-פסיק ; | ייצוא ממערכות אירופאיות, רשימות מיילים בתא אחד |
| רווח Space | שם פרטי ומשפחה, פירוק משפט למילים |
| טאב Tab | נתונים שהועתקו מקובץ TXT או מאקסל ישן |
| מותאם אישית | כל תו שלא ברשימה: מקף, לוכסן, קו תחתון, או מילה שלמה |
עיצוב טקסט — Format
מתי: ניקוי וסטנדרטיזציה של טקסט. תפריט אחד שמרכז שבע פעולות נפוצות.
| פעולה | מה היא עושה |
|---|---|
| lowercase | אותיות קטנות — לסטנדרטיזציה של כתובות אימייל |
| UPPERCASE | אותיות גדולות — לקודי מדינות ומטבעות (USD, ILS) |
| Capitalize Each Word | אות ראשונה גדולה בכל מילה — לשמות וערים |
| Trim | הסרת רווחי קצה בלבד — מתחילת המחרוזת ומסופה |
| Clean | ניקוי תווים נסתרים שאינם מודפסים (Enter, Tab) — חובה בייבוא מטקסט חופשי |
| Add Prefix | טקסט קבוע לפני הערך: 123 ← ID-123 |
| Add Suffix | טקסט קבוע אחרי הערך: liran ← liran@company.com |
למה Trim קריטי: הערך "Apple " עם רווח בסוף אינו זהה ל-"Apple". במיזוג ובקשרים זה ההבדל בין התאמה לבין שורה יתומה.
החלפת ערכים — Replace Values
מתי: לתקן ערכים שגויים או לאחד כתיבים שונים לאותו ערך.
| שלב | מה לוחצים |
|---|---|
| 1 | קליק ימני על כותרת העמודה |
| 2 | Replace Values… |
| 3 | למעלה: הערך שרוצים להחליף · למטה: הערך החדש |
| 4 | ב-Advanced options אפשר להגביל להתאמה מלאה של התא בלבד |
| 5 | OK |
| מקרה | דוגמה |
|---|---|
| איחוד כתיבים | "USA" · "U.S.A" · "United States" ← ערך אחד |
| ניקוי סימנים | הסרת ₪ או % שנתקעו בעמודה מספרית |
| טיפול בריקים | החלפת null בטקסט "לא ידוע" לפני טעינה למודל |
עמודה מותנית — Conditional Column
מתי: לוגיקת IF…THEN…ELSE בממשק גרפי — ערך חדש לפי תנאי, בלי לכתוב קוד.
| שלב | מה לוחצים |
|---|---|
| 1 | Add Column ← Conditional Column |
| 2 | הקלידו שם: סיווג עסקה |
| 3 | If [Sales Amount] > 5000 Then "גדולה" |
| 4 | Add Clause ← Else If > 1000 Then "בינונית" |
| 5 | Else: "קטנה" ← OK |
עקרון המַפָּל
מתי: סיווג נתונים רציפים לקטגוריות (Bucketing) — וההבנה איך Power Query קורא את התנאים.
ממשק במקום קוד
בונים IF…THEN…ELSE בלחיצות, בלי לכתוב שורת M אחת.
אין Between
בחלון אין אופרטור "בין לבין". מי שמגיע מ-SQL או מאקסל מחפש אותו — ולא מוצא.
המפל פותר זאת
התנאים נקראים מלמעלה למטה. הראשון שמתקיים קובע, ושורה נבדקת רק אם כל הקודמות לה נכשלו.
הסדר הוא הכול
תמיד מהגבוה לנמוך. בסדר הפוך, הערכים הגבוהים "ייתפסו" מוקדם וה"גבוה" לא יתקיים לעולם.
חוק המפל — צעד אחר צעד
| שלב | התנאי | מה קורה |
|---|---|---|
| 1 | If > 70 ← "מחיר גבוה" | המנוע עובר שורה-שורה; 70.01 ומעלה מקבל "גבוה" ולא בודק את השאר |
| 2 | Else If ≥ 50 ← "מחיר בינוני" | מגיעים לכאן רק אם שלב 1 נכשל — כך נוצר בפועל הטווח 50–70 בלי Between |
| 3 | Else If ≥ 30 ← "מחיר נמוך" | רק רשומות שמתחת ל-50 מגיעות לכאן: התנאי תופס את 30.01–49.99 |
| 4 | Else ← "מחיר נמוך מאוד" | רשת הביטחון: כל מה שנשאר, כולל 0 ושליליים, מקבל אוטומטית את התנית הזו |
עמודת אינדקס — Index Column
מתי: ליצור מזהה רץ ייחודי לכל שורה — שימושי למפתח מלאכותי, למיון יציב או לאיתור כפילויות.
| שלב | מה לוחצים |
|---|---|
| 1 | Add Column ← Index Column |
| 2 | בחרו From 0 או From 1 (או Custom עם קפיצה משלכם) |
| 3 | העמודה נוספת בקצה הטבלה ומספרת את השורות לפי סדרן הנוכחי |
שימו לב: האינדקס נקבע לפי סדר השורות ברגע היצירה. אם תמיינו לפני כן — המספור ישתנה בהתאם.
סינון מספרים — Number Filters
מתי: לצמצם שורות לפי חוקיות מספרית — באופן דינמי ששורד עדכוני נתונים.
| אפשרות | מה היא עושה |
|---|---|
| Greater / Less Than | "רצפה" או "תקרה": רק מחירים ≥50, או רק פריטים שזולים מ-20 |
| Equals / Does Not Equal | התאמה מדויקת לערך — למשל סינון החוצה של מחיר 0 |
| Between | כאן Between כן קיים — בכלי הסינון, בניגוד לחלון העמודה המותנית |
| סימון ידני בתיבות | נוח, אבל חוסם ערכים חדשים שייכנסו ברענון הבא |
סימון ידני מול תנאי לוגי: תיבות הסימון מתייחסות לערכים שקיימים עכשיו. תנאי לוגי ימשיך לתפוס גם ערכים חדשים.
שינוי סוג נתונים — Change Type
מתי: הפעולה החשובה ביותר. מספר שמוגדר כטקסט אי אפשר לסכם או לממוצע.
| שלב | מה לוחצים |
|---|---|
| 1 | לחצו על אייקון הטיפוס (ABC / 123) משמאל לשם העמודה |
| 2 | בחרו Whole Number (או Decimal / Text / Date) |
| 3 | אם נשאלתם — Replace current במקום Add new step |
| 4 | עכשיו אפשר לבצע אגרגציות על העמודה |
Merge — פתיחת המיזוג
מתי: המקבילה ל-JOIN או ל-VLOOKUP. מחברים את Sales ל-Product לפי ProductKey.
| שלב | מה לוחצים |
|---|---|
| 1 | עומדים על Sales ← Home ← Merge Queries |
| 2 | נפתח חלון Merge — למעלה כבר מופיעה Sales |
| 3 | בתפריט הנפתח התחתון בוחרים את הטבלה השנייה: Product |
| 4 | שתי הטבלאות מוצגות זו מעל זו — מוכנים להגדיר את המפתח המשותף |
Merge — המפתח המשותף
מתי: כאן מגדירים לפי מה הטבלאות מתחברות. בלי זה אין מיזוג.
| שלב | מה לוחצים |
|---|---|
| 1 | קליק על עמודת ProductKey בטבלה העליונה — היא נצבעת |
| 2 | קליק על ProductKey בטבלה התחתונה — נצבעת גם |
| 3 | אימות: למטה מופיע 121253 of 121253 rows matched |
| 4 | Join Kind = Left Outer (ברירת מחדל) ← OK |
שורת ההתאמה היא מד האיכות: 121,253 מתוך 121,253 אומר שכל שורת מכירה מצאה מוצר. מספר נמוך יותר מסמן מפתחות יתומים או רווחים בטקסט.
Merge — עמודת Table החדשה
מתי: המיזוג נוצר, אבל הנתונים עדיין מקופלים בתוך עמודה אחת.
| מה קרה | איפה רואים |
|---|---|
| נוצרה עמודה חדשה בשם Product | בסוף הטבלה — בכל תא כתוב Table |
| נוסף שלב | Applied Steps ← Merged Queries |
| הקוד שנכתב מאחורי הקלעים | Table.NestedJoin(...) |
| מה עושים עכשיו | מרחיבים (Expand) כדי לראות את הנתונים — בשלב הבא |
Merge — Expand ושליפת העמודות
| שלב | מה לוחצים |
|---|---|
| 1 | קליק על אייקון ה-Expand (⇆) בראש עמודת Product |
| 2 | בוחרים רק את העמודות שצריך — למשל List Price ו-Category |
| 3 | מבטלים את Use original column name as prefix לשמות קצרים |
| 4 | OK |
אל תסמנו הכול. כל עמודה מיותרת נשארת בזיכרון ומכבידה על המודל.
Merge — התוצאה הסופית
- העמודה Product הוחלפה בעמודות אמיתיות.
- לכל שורת מכירה יש עכשיו קטגוריה ומחיר — בלי VLOOKUP ידני.
- בכל Refresh המיזוג ירוץ אוטומטית מחדש על הנתונים החדשים.
שאלה שכדאי לשאול: האם באמת צריך את המיזוג? במודל כוכב תקין, קשר בין הטבלאות עושה את אותה עבודה בלי לנפח את טבלת העובדות.
Append — שרשור שאילתות
מתי: המקבילה ל-UNION. לשרשר טבלאות עם מבנה זהה לטבלה אחת ארוכה.
| שלב | מה לוחצים |
|---|---|
| 1 | עומדים על השאילתה הראשונה ← Home ← החץ שליד Append Queries |
| 2 | בוחרים Append Queries as New — שומר את המקור נקי ויוצר שאילתה שלישית |
| 3 | בוחרים Two tables או Three or more ואת הטבלה לשרשור |
| 4 | OK — המנוע משרשר אותן זו תחת זו |
תעלומת ה-NULL — Append מול SQL
זו השאלה הראשונה של כל מי שמגיע מ-SQL: למה נוצרו עמודות מלאות null?
מקביל ל-UNION ALL, לא ל-UNION
Append מוסיף את כל השורות אחת מתחת לשנייה, בלי להסיר כפילויות.
מאחד לפי שם, ורגיש לאותיות
שלא כמו SQL שמחבר לפי מיקום, Power Query מחבר אך ורק לפי שם העמודה — ו-Case-Sensitive. City ו-city ייחשבו לשתי עמודות שונות.
טיפ זהב: לפני Append ודאו ששמות העמודות זהים ב-100%, כולל רישיות ורווחים. לא זהים? בצעו Rename ליישור קו לפני השרשור.
טבלת הטכניקות — הכול במקום אחד
כל מה שעברנו, לפי מיקום בממשק.
| טכניקה | איפה |
|---|---|
| שינוי פורמט תאריך | קליק ימני ← Change Type ← Using Locale |
| חילוץ חלקי תאריך | Add Column ← Date |
| פורמט כסף | אייקון טיפוס / Transform ← Fixed Decimal |
| עיגול מספרים | Transform ← Rounding |
| פיצול עמודה | Home / Transform ← Split Column |
| עיצוב טקסט | Transform ← Format |
| הסרת רווחים | Transform ← Format ← Trim |
| החלפת ערכים | קליק ימני ← Replace Values |
| עמודה מותנית | Add Column ← Conditional Column |
| עמודת אינדקס | Add Column ← Index Column |
| סינון מספרים | חץ הסינון ← Number Filters |
| שינוי סוג נתונים | אייקון הטיפוס |
| מיזוג טבלאות | Home ← Merge Queries |
| שרשור טבלאות | Home ← Append Queries |
מה למדנו — שמונה נקודות
ETL לפני המודל
Power Query מושך, מנקה וטוען. מה שמגיע למודל כבר נקי.
קריאה בלבד
שום פעולה בעורך לא נוגעת בקובץ המקור או בשרת.
Applied Steps
כל קליק הוא שלב. אין Ctrl+Z — מוחקים שלב, עורכים שלב, וחוזרים בזמן.
טיפוסים קודם
מספר שנטען כטקסט לא ניתן לסיכום. Change Type הוא הצעד הראשון.
Using Locale
תאריך אמריקאי מתפרש הפוך בלי הגדרת אזור.
עקרון המפל
אין Between בעמודה מותנית — הסדר מלמעלה למטה יוצר את הטווחים.
Merge מול Append
Merge מוסיף עמודות לצד (JOIN), Append מוסיף שורות מלמטה (UNION ALL).
שם העמודה קובע
ב-Append ההתאמה לפי שם ורגישה לאותיות; ב-Merge שורת ההתאמה היא מד האיכות.
בוחן — 40 שאלות על Power Query
שאלה אחת בכל פעם, ארבע אפשרויות, משוב מיידי עם הסבר. כל השאלות עוסקות בעורך Power Query בלבד.
פעולה שביצעתם בעורך — איך היא משפיעה על קובץ המקור?
בעורך המתקדם (Advanced Editor) נפתח קוד M. מה מכיל מבנה let … in?
מה נוצר מאחורי הקלעים בכל לחיצה בעורך Power Query?
מה קורה לשלבי הניקוי בכל Refresh?
רוצים שאילתה נוספת שתמשיך מהשלבים הקיימים, ותתעדכן איתם. מה בוחרים?
התחברתם למקור חדש והתבקשתם פרטי הזדהות. איפה הם נשמרים?
לאיזה סוג אימות מתאים מקור ציבורי כמו אתר פתוח או API ללא הרשאות?
איזה סוג אימות בעורך משתמש בהרשאות המשתמש המחובר למחשב?
מה תפקיד רמות הפרטיות (Privacy Levels)?
בעמודה יש ערך אחד ומתחתיו תאים ריקים ששייכים לאותה קבוצה. איך ממלאים אותם?
מה נרשם ברשימת Applied Steps?
עשיתם טעות. איך מבטלים אותה בעורך?
רוצים לשנות ערך שהוגדר בשלב קודם, בלי לעשות הכול מחדש. מה עושים?
בעמודה יש ערכים כפולים ורוצים להשאיר שורה אחת לכל ערך. מה עושים בעורך?
איזה שלב נוצר כמעט תמיד אוטומטית מיד אחרי החיבור למקור?
מדוע כדאי לבדוק את שלב זיהוי הטיפוסים האוטומטי?
עמודה מספרית נטענה כטקסט. מה נחסם בעורך עצמו?
איפה הכי מהר לשנות סוג נתונים של עמודה?
העמודה מציגה 01/07/2017 והתאריך מתפרש הפוך. מה הפתרון?
השורה הראשונה בטבלה מכילה את שמות העמודות, אך נטענה כשורת נתונים. מה עושים?
רוצים עמודה עם שם החודש מתוך עמודת תאריך קיימת. מה הדרך הנכונה?
למה מעדיפים Add Column על פני Transform בחילוץ חלקי תאריך?
איזה סוג נתונים מתאים לעמודת כסף שדורשת דיוק בחישובים?
רוצים לקצר מספרים ארוכים לשתי ספרות אחרי הנקודה. מה משתמשים?
עמודת SKU מכילה FR-R92B-58 ורוצים לפרק אותה לשלוש עמודות. מה הדרך?
הערך mountainBike אמור להתפצל ל-mountain ו-Bike. איזו שיטה?
בפיצול עמודה: הערך PO9876 אמור להתפצל ל-PO ול-9876. איזו שיטת Split Column מתאימה?
לאיזו מטרה משמשת הפעולה Trim?
בייבוא מטקסט חופשי נכנסו תווי Enter ו-Tab נסתרים. מה מנקה אותם?
רוצים לאחד "USA", "U.S.A" ו-"United States" לערך אחד. מה הכלי?
מה מאפשרת עמודה מותנית?
מחפשים אופרטור "בין לבין" בחלון העמודה המותנית ולא מוצאים. מה נכון?
בעמודה מותנית בעורך — באיזה סדר יש לכתוב את שורות התנאי?
מה תפקיד שורת ה-Else בסוף העמודה המותנית?
איפה כן קיים Between?
מה עושה Merge Queries?
בחלון Merge מופיעה השורה "121253 of 121253 rows matched". מה היא אומרת?
אחרי Merge נוצרה עמודה שבכל תא בה כתוב Table. מה עושים?
שרשרתם שתי טבלאות ב-Append ונוצרו עמודות מלאות null. למה?
טרם ענית על שאלות — 0 מתוך 40
תרגיל בית — 10 משימות עם פתרונות
כל המשימות בעורך Power Query על AdventureWorks. אחרי כל משימה יש פתרון מלא עם המספר שאמור להתקבל.
AdventureWorks_Sales.xlsx
Home ← Transform data פותח את העורך. כל מה שנעשה כאן לא נוגע בקובץ המקור.
מעקב התקדמות
0 מתוך 5
1 פתיחת העורך ובדיקת טיפוסים
Home ← Transform data. עברו על שבע השאילתות ובדקו את אייקון הטיפוס של כל עמודה.
| שלב | מה עושים |
|---|---|
| 1 | בחרו את Sales ובדקו את Order Quantity — אמור להיות מספר שלם |
| 2 | בדקו את Sales Amount — אמור להיות עשרוני |
| 3 | סמנו לעצמכם כל עמודה שסומנה ABC ואמורה להיות מספר |
| טבלה | שורות |
|---|---|
| Sales | 121,253 |
| Product | 397 |
| Customer | 18,485 |
| Date | 1,461 |
| Reseller | 702 |
| Sales Territory | 11 |
| Sales Order | 121,253 |
2 תיקון פורמט תאריך
בטבלת Date ודאו שעמודת התאריך נקראת נכון.
| שלב | מה עושים |
|---|---|
| 1 | קליק ימני על כותרת עמודת התאריך |
| 2 | Change Type ← Using Locale… |
| 3 | Data Type = Date · Locale = English (US) ← OK |
3 חילוץ שם החודש
הוסיפו עמודה עם שם החודש מתוך עמודת התאריך.
| שלב | מה עושים |
|---|---|
| 1 | בחרו את עמודת התאריך |
| 2 | Add Column ← Date ← Month ← Name of Month |
4 פורמט כסף ועיגול
בטבלת Product: קבעו את Standard Cost ככסף, ועגלו את List Price.
| שלב | מה עושים |
|---|---|
| 1 | אייקון הטיפוס של Standard Cost ← Fixed Decimal Number |
| 2 | בחרו את List Price ← Transform ← Rounding ← Round… ← 2 ← OK |
5 פיצול עמודת SKU
בטבלת Product פצלו את SKU לשלושה חלקים.
| שלב | מה עושים |
|---|---|
| 1 | בחרו את עמודת SKU |
| 2 | Transform ← Split Column ← By Delimiter |
| 3 | Custom ← הקלידו - ← Split at: Each occurrence ← OK |
6 ניקוי טקסט
ודאו שאין רווחי קצה בעמודות הטקסט של Product.
| שלב | מה עושים |
|---|---|
| 1 | בחרו את עמודת Product (שם המוצר) |
| 2 | Transform ← Format ← Trim |
| 3 | חזרו על כך גם עבור Category |
7 עמודה מותנית — סיווג מחיר
צרו עמודה שמסווגת את List Price לארבע רמות.
| שלב | מה עושים |
|---|---|
| 1 | Add Column ← Conditional Column · שם: סיווג מחיר |
| 2 | If List Price > 70 Then "מחיר גבוה" |
| 3 | Else If ≥ 50 Then "מחיר בינוני" · Else If ≥ 30 Then "מחיר נמוך" |
| 4 | Else ← "מחיר נמוך מאוד" ← OK |
8 מיזוג Sales עם Product
הביאו לכל שורת מכירה את הקטגוריה והמחיר של המוצר.
| שלב | מה עושים |
|---|---|
| 1 | עומדים על Sales ← Home ← Merge Queries |
| 2 | בוחרים Product בתפריט התחתון |
| 3 | קליק על ProductKey בשתי הטבלאות |
| 4 | בודקים את שורת ההתאמה ← Join Kind = Left Outer ← OK |
| בדיקה | תוצאה |
|---|---|
| שורות שהותאמו | 121,253 מתוך 121,253 |
| עמודה שנוצרה | Product — בכל תא כתוב Table |
| שלב שנוסף | Merged Queries |
9 הרחבת המיזוג
שלפו רק את שתי העמודות שצריך.
| שלב | מה עושים |
|---|---|
| 1 | קליק על אייקון ה-Expand בראש עמודת Product |
| 2 | סמנו רק List Price ו-Category |
| 3 | בטלו את Use original column name as prefix ← OK |
10 ניסוי Append
שרשרו שתי טבלאות ובדקו מה קורה כששמות העמודות לא זהים.
| שלב | מה עושים |
|---|---|
| 1 | שכפלו את Reseller (קליק ימני ← Duplicate) ושנו בעותק שם עמודה אחת לאותיות קטנות |
| 2 | עמדו על המקור ← Home ← Append Queries ← Append Queries as New |
| 3 | בחרו את העותק ← OK |
משאבים והמשך הדרך
להעמיק ב-Power Query
אפשר לנווט גם בכפתורים שבראש המסך, בחצי המקלדת, ובטלפון בהחלקת אצבע