אנא אפשר JavaScript כדי להשתמש בתכונות הנגישות תכונות נגישות של אתרים על ידי UserWay
top of page
Nissim Elaluf

Value types in M language

עודכן: 24 בפבר׳ 2024




הי חברים זוכרים שביקשתם תוכן איכותי בנושא  PowerQuery?

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

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

אז הנושא היום יהיה סוגי נתונים ב PowerQuery יותר מדוייק Value types in M language

למה זה נושא כל כך חשוב אתם שואלים ?

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

טוב חאלס חפירות נתחיל 😊

יש 3 סוגים בסיסיים של נתונים בשפת M

▪ Primitive Value

▪ Function Value

▪ Structured Data Values שסוג זה עצמו מתחלק ל3

1.    List

2.    Record

3.    Table

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

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

דוגמאות:

  1. Number: 1,2,3

  2. Text: “abc”

  3. Date: 5/1/2022 → hashtag#date(Year,Month,Day)

שימו לב שחובה לשים את הhashtag#date אחרת נקבל תוצאה של חישוב מתמטי

מי פותר את התרגיל ורושם תוצאה בתגובות מקבל 2 נקודות … 5/1/2022

 4. Time: 12:24:15 PM

 5. Null: null

שימו לב לנקודה חשובה חובה לרשום  null  עם אותיות קטנות

Logical: true / false

תציצו שמאלה ותראו שעל כל “Query” ניתן לראות את סוג הערך



סבבה אז זה כולכם מכירים

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

מדובר ב Function value פונקציות יכולות להיות פשוטות כמו בדוגמה להלן ומורכבות מאוד במקרה הצורך.

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

למשל :

NisoFunction = (a,b) => a * b

Invoke function example: Result = NisoFunction (4,5)

כמובן שהתוצאה תהיה 20 (שזה כבר Primitive Value)

שימו לב לנקודה חשובה – פרמטרים בפונקציה צריכים להיות רשומים בתוך סוגריים() ואחריו =>

ותראו מה יצרנו …



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

ננסה ?

אוקי 6 כפול 74 מישהו רוצה לנחש?



מהמם הגענו לסוג השלישי והאחרון להיום אבל הוא מתחלק ל3 Structured data values!!!

הראשון מי זוכר ? זה כתוב למעלה …

נכון – List

שההגדרה הפשוטה כל כך של רשימה היא : רצף ערכים מסודר על בסיס אפס מוקף בסוגריים מסולסלים { }

אפשר ליצור רשימה מוגדרת או רצף של ספרות או כמובן רשימה מקוננת בתוך רשימה 😊

To create list of numbers: {2,4,6}

שימו לב שברשימה הערך הראשון הוא במיקום 0 וכן הלאה



To create a list of a range of numbers: {1..100}

To create a list of lists:  {{10,12},{6,8},{2,4}}

To create a list of records : {[ID=1,Name=“Nissim”], [ID=3,Name=“Yakir”]}

בואו נראה איך מתעסקים עם רשימות

אם אני רוצה להצביע על הערך הראשון ברשימה הפשוטה לעיל אכתוב {0}{2,4,6}  והתוצאה היא 2

מה עם זה  {{10,12},{6,8},{2,4}}

אם ארצה את הערך הראשון ברשימה השניה (6)

אכתוב



סוג הבא : Records

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

נראה כך

בPQ זה ייראה כך



והרשומה תוצג כך :



שימו לב לכפתור העליון מצד שמאל תכף נגיע אליו



 ומי שעוקב עד עכשיו יודע שהסוג האחרון להיום הוא Tables

אז טבלה היא בעצם אוסף של רשומות !

גם הרשומות בטבלה ממוספרות מ0



ניתן ליצור אותה בצורה מקוצרת במקום להקליד רשומה רשומה עם table#




שימו לב לחלק חשוב

איך אני “מצביע” על ערך מסויים:

To access first row of a table: FirstRow = MyTable{0}

To access specific column: VendorColumn = MyTable[Vendor]

To access the value of Date column in the 2nd row: Value = MyTable{1}[Date]

 אוקי נסכם

למדנו את שלושת הסוגים

תנו לי דוגמאות לשימוש שלכם בפונקציות רשימות או רשומות

אני מבטיח בקרוב להוסיף תוכן שבו אוכיח לכם את החשיבות של השימוש בסוגים אלו !!

מקווה שנתתי ערך 😊


Comments


bottom of page