פילטר לפי כותרת העמודה גוגל שיטס
-
יש לי טבלת נתונים כלשהיא ואני מעוניין להציג רק את העמודות שאני אבחר
אבל מכיון שיש עוד משתמשים שיכולים להוסיף עמודות לטבלה המקורית אני צריך לקבל את העמודות לפי הכותרת שלהם
חשבתי להשתמש בפונקציה QUERY שהיא הפונקציה היחידה שאני מכיר שיודעת לפלטר עמודות
הבעיה שאני לא מתמצא בשפת Visualization API ולכן מה שהצלחתי להבין מהדרכות שונות זה איך לקחת עמודות לפי המיקום שלהם בטבלה
לדוגמא=QUERY(גיליון 1!A1:D, "select B, C,")
לסיכום כיצד ניתן לבקש מהפונקציה הנ"ל רק את העמודות שהכותרת שלהם היא XXX,YYY,ZZZ
ועוד משהו אחרון: תודה רבה לכל העוזרים ואלו שרוצים לעזור
-
OdedDvirהשיב לפשוט אבל תותח ב 31 במאי 2022, 20:49 נערך לאחרונה על ידי OdedDvir 6 בינו׳ 2022, 4:37
@פשוט-אבל-תותח אפשר על ידי סקריפט קטן. עיין בפתרון כאן, ותעתיק את הקוד לסקריפט בגליון.
ואז תשתמש ב-QUERY
כך:=QUERY(גיליון1!A1:D, QueryByName(גיליון1!A1:D1, "SELECT `XXX`, `YYY`, `ZZZ`"))
-
@OdedDvir
תודה רבה
מה שקורה זה נותן שגיאה וזה ההסבר
TypeError: item.toLowerCase is not a function (שורה 26). -
nachהשיב לפשוט אבל תותח ב 1 ביוני 2022, 8:56 נערך לאחרונה על ידי nach 6 בינו׳ 2022, 9:15
@OdedDvir
@פשוט-אבל-תותח אמר:יש לי טבלת נתונים כלשהיא ואני מעוניין להציג רק את העמודות שאני אבחר
אבל מכיון שיש עוד משתמשים שיכולים להוסיף עמודות לטבלה המקורית אני צריך לקבל את העמודות לפי הכותרת שלהם
חשבתי להשתמש בפונקציה QUERY שהיא הפונקציה היחידה שאני מכיר שיודעת לפלטר עמודות ...
לדוגמא....
לסיכום כיצד ניתן לבקש מהפונקציה הנ"ל רק את העמודות שהכותרת שלהם היא XXX,YYY,ZZZכמובן שהפונקציה הנכונה זה Query, ואם הכותרות באנגלית ניתן להשתמש בכותרות עצמן, אך כיוון שבעברית עסקינן ומתעוררת הבעיה שציינת הייתי מציע להשתמש בנוסף גם בפונקציית
Match
, פונקציה זו מחפשת ערך מסוים בשורה מסוימת ומחזירה את המיקום היחסי של הערך בטווח.
דהיינו:
תשרשר לטקסט של השאילתה בצורה הבאה:="select Col"&MATCH("טלפון",A1:E1,0)
ואז הוא כל פעם יחפש את העמודה שרצית שתוצג ואפילו כשיתווספו עמודות בהמשך.
בעיה קטנה: אין אפשרות להשתמש בסגנון ההפניה של Col2 Col1 והלאה בהפניה לטווח רגיל רק כאשר הטווח הוא מערך של תאים לכן לא משנה מה הטווח שלך תיתן את ההפניה בצורה של מערך, דהיינו במקום:
A1:F38
תיתן:
{A1:F37;A38:F38}
ואז כן ניתן להשתמש בסגנון ההפניה הנ"ל בשאילתה.
(לדעתי חבל ללכת ישר לאופציה של קוד כשנראה לכאורה שיש פתרון מוצלח יותר בפונקציה ישירה)בהצלחה!
-
OdedDvirהשיב לnach ב 1 ביוני 2022, 10:48 נערך לאחרונה על ידי OdedDvir 6 בינו׳ 2022, 10:49
@nach השגיאה שציין @פשוט-אבל-תותח לא קשורה לעברית. בדקתי והסקריפט עובד בלי בעיה גם עם כותרות בעברית. לדעתי הקריאה לפונקציה לא מבוצעת נכון. היה טוב אם @פשוט-אבל-תותח היה מצרף את הנוסחה שבה השתמש.
(לדעתי חבל ללכת ישר לאופציה של קוד כשנראה לכאורה שיש פתרון מוצלח יותר בפונקציה ישירה)
זה נכון כשמדובר בעמודה אחת.
במקרה לעיל שיש צורך בכמה עמודות, השימוש בפונקציית עזר בסקריפט נותן נוסחא נקייה ומובנת, לעומת נוסחא ארוכה ומתוסבכת, עם כמה קריאות ל-MATCH
. -
Y.Excel.Accessהשיב לOdedDvir ב 1 ביוני 2022, 12:16 נערך לאחרונה על ידי Y.Excel.Access 6 בינו׳ 2022, 12:17
@OdedDvir אמר בפילטר לפי כותרת העמודה גוגל שיטס:
(לדעתי חבל ללכת ישר לאופציה של קוד כשנראה לכאורה שיש פתרון מוצלח יותר בפונקציה ישירה)
זה נכון כשמדובר בעמודה אחת.
במקרה לעיל שיש צורך בכמה עמודות, השימוש בפונקציית עזר בסקריפט נותן נוסחא נקייה ומובנת, לעומת נוסחא ארוכה ומתוסבכת, עם כמה קריאות ל-MATCH.נכון, אני גם מאוד נהנתי מהתשובה של @OdedDvir , אבל אני רוצה להביא גם את הצד השני...
- פונקציית UDF בגוגל שיטס איטית יותר, כך שבחישובים מסובכים זה מכביד.
- לפי מה שהבנתי א"א לשכפל קובץ כזה למקום אחר / ללקוח, כי צריך לשכפל את הסקריפט בנפרד.
כך שזה לא תמיד יותר נוח לעבוד עם גוגל סקריפט, ויש לשקול מה עדיף בכל מקרה ספציפי.
אם טעיתי/החסרתי במשהו, אשמח לדעת!
-
פשוט אבל תותחהשיב לOdedDvir ב 1 ביוני 2022, 13:59 נערך לאחרונה על ידי פשוט אבל תותח 6 בינו׳ 2022, 14:36
=QUERY('גיליון7'!A:F, QueryByName('גיליון5'!A1:F1, "SELECT `Data Folder`, `Data Did`"))
-
@פשוט-אבל-תותח הקריאה נראית תקינה. לפי הודעת השגיאה הכותרת של אחת העמודות בטווח היא לא מחרוזת. יתכן ויש לך עמודה עם כותרת ריקה בטווח שציינת, וזה גורם לשגיאה.
-
@OdedDvir
לא, כל העמודות מלאות
בטקסט רגיל לגמרי -
פשוט אבל תותחהשיב לOdedDvir ב 1 ביוני 2022, 15:24 נערך לאחרונה על ידי פשוט אבל תותח 6 בינו׳ 2022, 15:30
@OdedDvir
היי
מצאתי את הבעיה בטעות ציינתי 2 גיליונות שונים תיקנצתי וכעת זה עובד=QUERY('גיליון7'!A:E, QueryByName('גיליון7'!A1:E1, "SELECT `Data Folder`, `Data Did`"))
תודה רבה ענקית!!!!
-
@פשוט-אבל-תותח אמר בפילטר לפי כותרת העמודה גוגל שיטס:
@OdedDvir
היי
מצאתי את הבעיה בטעות ציינתי 2 גיליונות שונים תיקנצתי וכעת זה עובדהמילים "מצאתי את הבעיה" קצת מרגיזות.
אין שום בעיה לציין גליונות שונים (גם אם זה היה טעות מצידך).
הבעיה היא שהכתובת 'גיליון5'!A1:F1 הייתה ריקה בדיוק כפי שאמר @OdedDvir.
4/12