שגיאה בפונקציית פילטר בגוגל שיטס
-
בנוסחה FILTER
פעמים רבות נתקלתי בשגיאההפונקציה FILTER מכילה גדלים לא תואמים של טווחים. ספירת השורות שהייתה צפויה להתקבל: 1000. ספירת העמודות: 1. ספירת השורות שהתקבלה בפועל: 1, ספירת העמודות: 1.
אף פעם לא הבנתי מה הפירוש של השגיאה הזו
ואני אפרט
אם אני כותב לדוגמא=FILTER(A1:F,LEFT(C:C,5) = left(L$1,5),or(E:E <= TODAY(),E:E=""))
אני מקבל את השגיאה הזו
אבל אם אני מחלק את הנוסחה לחלקים
דהיינו
אם אני כותב ככה=FILTER(A1:F,LEFT(C:C,5) = left(L$1,5),E:E <= TODAY())
או ככה
=FILTER(A1:F,LEFT(C:C,5) = left(L$1,5),E:E="")
זה עובד בלי בעיות
אשמח להסבר מהיא מהות השגיאה כמו גם למה שילוב 2 התנאים יחד הם שגרמו את הבעיהתודה רבה מראש
-
@שמחה-זו-הסיסמא הסיבה לשגיאה כתובה בהודעה: הטווח שהיה אמור להתקבל הוא של 1000 שורות בעוד הטווח שהתקבל בפועל מכיל רק שורה אחת.
קשה לענות בלי לראות את הנתונים.
נסה לשרשר את הפונקציות:=FILTER(FILTER(A1:F,LEFT(C:C,5) = left(L$1,5),E:E <= TODAY()),E:E="")
-
- זה מביא את אותה שגיאה
- אני לא הבנתי על איזה טווח הוא מדבר.
- מה שאני רוצה שיהיה זה שאם אחד משני התנאים מתקיימים, זה יכנס לטבלה החדשה.
אם הבנתי נכון מה שאתה כתבת זה לשרשר 2 תנאים, וגם לא הבנתי למה לכתוב פעמיים את הפונקציה פילטר, ניתן להוסיף תנאים נוספים
-
@OdedDvir
לבקשתך
אני מעלה כאן קובץ אקסל עם הנתונים (בלבד, ללא הפונקציה פילטר מכיון שהיא אינה נתמכת באקסל)תודה רבה
דוגמא.xlsx -
פיתרון זמני מצאתי
כתבתי ככה=FILTER(A1:F,LEFT(C:C,5) = left(L$1,5),if(E:E="",TRUE,E:E <= TODAY()))
אבל עדיין לא זכיתי להבין את הבעיה על איזה טווח הוא מחפש לקבל 1000 שורות שהוא קיבל בפועל רק שורה אחת
-
@שמחה-זו-הסיסמא הבעיה היא בתנאי האחרון:
or(E:E <= TODAY(),E:E="")
אתה מבצע
OR
על שני טווחים, מה שעלול להחזיר מספר לא ידוע של תאים (ובאמת כך הוא בפועל).
הפונקציהFILTER
מאפשרת סינון טווח על ידי תנאים שמחזירים טווח (שורה או עמודה).
אתה מנסה לסנן טווח, אבל התנאי הזה לא מחזיר טווח, אלא ערך יחיד.אגב:
יש כאן עוד בעיה בלוגיקה של התנאי, כי גם תא ריק מחזירTRUE
בהשוואה:<= TODAY()
אם אתה מבקש לסנן את השורות ולהציג רק את המכילות תאריך קטן או שווה להיום או ריק, מספיק לכתוב כך:
=FILTER(A1:F,LEFT(C:C,5) = left(L$1,5),E:E <= TODAY())
-
@שמחה-זו-הסיסמא אמר בשגיאה בפונקציית פילטר בגוגל שיטס:
@OdedDvir
אני מקווה שהבנתיישנם פונקציות היכולות להחזיר טווח ולשמש כפונקציות מערך (בתוך ARRAYFORMULA), וישנן פונקציות שלא.
דוגמא לפונקציות שלא:- TEXTJOIN
- AND
- OR
פונקציות אלו תמיד יחזירו ערך בודד, כך שאי אפשר להשתמש בהם כלל בתוך פונקציית מערך כי הם יכשילו את המערך ויחייבו אותו להחזיר ערך יחיד.
נ.ב. אני מאמין שאפשר ליצור אותם כמחזירי טווח בפונקציות UDF או למצוא קוד קיים... אבל לצערי אני עדיין לא מכיר.