GOOGL SHEETS עזרה ביצירת פונקציה
-
אני יוצר כעת נוסחה בעלת שם בגוגל שיטס.
הנוסחה אמורה לסנן שורות לפי מערך מספרים נתון.
(בעצם אפשרות להשתמש עם INDEX עם הרבה שורות)כלומר היא מקבלת 2 פרמטרים: מערך נתונים, מערך מספרים
ומחזירה שורות מתוך המערך נתונים אם הם כתובות במערך המספרים.דוגמה (שעובדת אצלי כעת לאחר היצירה):
=SELECT_ROWS({"A",2;3,"B";"C",6;7,"D"} , {2,3})
והתוצאה היא
3 | B C | 6
אני מסתפק מבחינת מהירות ביצועים בין שלושה אפשרויות.
(אני מביא את האפשרויות כביטויי LAMBDA שיעבוד בכל קובץ)אפשרות א
=LAMBDA(MYARRAY,N_ROWS ,TRANSPOSE( QUERY({TRANSPOSE(MYARRAY)},"SELECT Col"& TEXTJOIN(", Col",TRUE,N_ROWS),0)) )(E41:F44,{1,2,4})
אפשרות ב (נראה לי אופטימלית יותר)
=ArrayFormula(LAMBDA(MYARRAY,N_ROWS ,FILTER(MYARRAY,NOT(ISNA(MATCH(MAKEARRAY(ROWS(MYARRAY),1,LAMBDA(R,C,R)),N_ROWS,0)))) )(E41:F44,{1,2,4}))
אפשרות ג
=ArrayFormula(LAMBDA(MYARRAY,N_ROWS ,SPLIT(BYROW(TRANSPOSE(N_ROWS),LAMBDA(MYVALUE,TEXTJOIN(CHAR(999),FALSE,INDEX(MYARRAY,MYVALUE)))),CHAR(999),TRUE,FALSE) )(E41:F44,{1,2,4}))
אשמח לדעה,
וכמובן אם יש לכם שיפור לאחת מהאפשרויות
ובמיוחד אם יש לכם הסבר איך זה עובד מאחורי הקלעים אשמח לשמוע. -
@Y-Excel-Access כתב בGOOGL SHEETS עזרה ביצירת פונקציה:
אפשרות ב (נראה לי אופטימלית יותר)
=ArrayFormula(LAMBDA(MYARRAY,N_ROWS ,FILTER(MYARRAY,NOT(ISNA(MATCH(MAKEARRAY(ROWS(MYARRAY),1,LAMBDA(R,C,R)),N_ROWS,0)))) )(E41:F44,{1,2,4}))
עכשיו ראיתי, שאופציה זו בעייתית למרות שנראית יותר טובה מבחינת ביצוע הסינון, כי מבחינת סדר השורות - יוצג סדר השורות המקורי, לא בסדר הנבחר...
כך שלאפשרות זו צריך תיקון / לבחור אפשרות אחרת.