אני יוצר כעת נוסחה בעלת שם בגוגל שיטס.
הנוסחה אמורה לסנן שורות לפי מערך מספרים נתון.
(בעצם אפשרות להשתמש עם 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}))
אשמח לדעה,
וכמובן אם יש לכם שיפור לאחת מהאפשרויות
ובמיוחד אם יש לכם הסבר איך זה עובד מאחורי הקלעים אשמח לשמוע.