הפונקציה סורקת מערך ומייצרת ערכי ביניים באמצעות החלה של פונקציית LAMBDA
על כל ערך. היא מחזירה מערך של ערכי הביניים שמתקבלים בכל שלב.
דוגמאות לשימוש
SCAN(5, A1:A3, LAMBDA(accumulator, current_value, accumulator+current_value))
SCAN(2, A1:A3, LAMBDA(accumulator, current_value, accumulator*current_value))
תחביר
SCAN(first_value, array_or_range, LAMBDA)
initial_value
: הערך הראשוני מסוגaccumulator
.array_or_range
: מערך או טווח שייסרקו.LAMBDA
: פונקצייתLAMBDA
שתחול על כל ערך ב-array_or_range
כדי לסרוק אותו.- תחביר:
LAMBDA(name1, name2, formula_expression)
- דרישות:
- ל-
LAMBDA
חייבים להיות בדיוק 2 ארגומנטיname
, וגםformula_expression
(ביטוי נוסחה) שמשתמש ב-names
האלה. כאשר מחילים את פונקצייתLAMBDA
, name1
נהייה תואם לערך הנוכחי שב-accumulator
ו-name2
נהייה תואם ל-current_value
שב-array_or_range
. ה-accumulator
מעודכן בכל שלב לערך הביניים שהתקבל בשלב הקודם.
- ל-
- תחביר:
הערות
- פונקציית
LAMBDA
המועברת צריכה לקבל בדיוק 2 ארגומנטיname
, אחרת תוחזר השגיאה#N/A
. הארגומנטים האלה תואמים ל-accumulator
ול-current_value
, לפי הסדר. הם מוסברים כך:name1
: נהייה תואם לערךaccumulator
.name2
: נהייה תואם ל-current_value
במערך הקלט.
- ה-
accumulator
מופעל על ידיinitial_value
ומעודכן בכל שלב לערך הביניים שהתקבל בשלב הקודם.
-
בזמן שמחילים את
LAMBDA
, ניתן למצוא את ה-current_value
שורה אחר שורה במערך הקלט.
- אפשר להעביר
פונקציה בעלת שם
לפרמטרLAMBDA
והיא תתפקד כמוLAMBDA
במקרה הזה. מידע נוסף על פונקציות בעלות שם- התחביר של
הפונקציה בעלת השם
חייב להיות תואם לתחביר שלLAMBDA
ל-SCAN
, עם בדיוק 2 placeholders לארגומנטים שמוגדרים לה. - אין להוסיף סוגריים אחרי
הפונקציה בעלת השם
.
- התחביר של
דוגמאות
החזרת הסכום הכולל של מערך
נתונים לדוגמה:
A |
|
---|---|
1 |
4 |
2 |
2 |
3 |
1 |
דוגמה: =SCAN(5, A1:A3, LAMBDA(accumulator, current_value, accumulator+current_value))
תוצאה:
9 |
11 |
12 |
החזרת האחוז המצטבר של הערך הכולל
נתונים לדוגמה:
A |
|
---|---|
1 |
4 |
2 |
2 |
3 |
1 |
דוגמה: =SCAN(0, A1:A3, LAMBDA(accumulator, current_value, accumulator + Current_value/SUM(A1:A3)))
תוצאה:
0.57 |
0.85 |
1 |
החזרת הסכום הכולל של מערך והפעלת החישוב מחדש, כאשר המספר הוא 0 עם פונקציה בעלת שם כ-LAMBDA
נתונים לדוגמה:
A |
|
---|---|
1 |
4 |
2 |
2 |
3 |
1 |
4 |
0 |
5 |
3 |
6 |
6 |
דוגמה: =SCAN(0, A1:A6, RUNNING_TOTAL_0)
הפונקציה בעלת השם: RUNNING_TOTAL_0
היא פונקציה בעלת שם
שמפיקה את הסכום הכולל של המערך ומפעילה את החישוב מחדש כאשר current_value
הוא 0.
הגדרת הנוסחה: =if(current_value=0, Current_value, accumulator+current_value)
, כאשר accumulator
ו-current_value
הם placeholders לארגומנטים שהוגדרו עבור RUNNING_TOTAL_0
.
תוצאה:
4 |
6 |
7 |
0 |
3 |
9 |
שגיאות נפוצות
ב-LAMBDA המועברת אין בדיוק 2 ארגומנטי nameאם לפונקציית LAMBDA
אין 2 ארגומנטי name
, מתרחשת השגיאה הבאה:
"מספר הארגומנטים ל-LAMBDA שגוי. היו אמורים להתקבל 3 ארגומנטים ובפועל התקבלו 2."
דוגמה: =SCAN(5, C1:C4, LAMBDA(current_value, current_value+1))
בדוגמה הזו, פונקציית LAMBDA קיבלה רק ארגומנט name
אחד, כשהיה צורך ב-2.
אם הפרמטר האחרון של פונקציית SCAN
לא היה פונקציית LAMBDA
, מתרחשת השגיאה הבאה:
"הארגומנט חייב להיות LAMBDA."
דוגמה: =SCAN(5, C1:C4, 3)
בדוגמה הזו, הפונקציה האחרונה היא 3
, במקום פונקציית LAMBDA
.
אם ארגומנט name
אחד או יותר אינו תקני, מתרחשת השגיאה הבאה:
"ארגומנט אחד של פונקציית LAMBDA אינו שם תקני."
דוגמה: =SCAN(5, C1:C4, LAMBDA(C1, v, C1+v))
בדוגמה הזו, C1
הוא name
לא תקני כי הוא מתנגש עם טווח.
אם ההחלה של LAMBDA
על מערכי הקלט מייצרת ערכי ביניים כלשהם שאינם ערכים בודדים, מתרחשת השגיאה הבאה:
"היה אמור להתקבל ערך בודד. אין תמיכה בתוצאות של מערך בתוך מערך."
דוגמה: =SCAN(5, C1:C4, LAMBDA(accumulator, value, {accumulator, value}))
כל החלה של LAMBDA
חייבת לייצר ערך ביניים שהוא ערך בודד בלבד ולא מערך אחר.
ראו בנוסף
- פונקציית LAMBDA: הפונקציה הזו מאפשרת לייצר ולהחזיר פונקציה בהתאמה אישית, עם קבוצה של
names
ועםformula_expression
(ביטוי נוסחה) שמשתמש בהם. - פונקציית MAP: הפונקציה הזו ממפה כל ערך במערכים הנתונים לערך חדש.
- פונקציית REDUCE: הפונקציה הזו מצמצמת מערך לתוצאה מצטברת.
- פונקציית BYROW: הפונקציה הזו מקבצת מערך לפי שורות.
- פונקציית BYCOL: הפונקציה הזו מקבצת מערך לפי עמודות.
- הפונקציה MAKEARRAY: הפונקציה הזו יוצרת מערך מחושב של תכונות מוגדרות.
- יצירה של פונקציות בעלות שם ושימוש בהן: הפונקציה הזו מאפשרת למשתמשים ליצור ולאחסן פונקציות בהתאמה אישית, בדומה ל-
LAMBDA
.