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

Value types in M language

  • תמונת הסופר/ת: Nissim Elaluf
    Nissim Elaluf
  • 23 בפבר׳ 2024
  • זמן קריאה 3 דקות

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



ree

הי חברים זוכרים שביקשתם תוכן איכותי בנושא  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” ניתן לראות את סוג הערך


ree

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

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

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

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

למשל :

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

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

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

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

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


ree

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

ננסה ?

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


ree

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

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

נכון – List

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

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

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

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


ree

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)

אכתוב


ree

סוג הבא : Records

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

נראה כך

בPQ זה ייראה כך


ree

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


ree

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


ree

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

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

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


ree

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


ree


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

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

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]

 אוקי נסכם

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

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

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

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


תגובות


bottom of page