דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. if בלי "אם לא", מקונן בfilter בגוגל שיטס

if בלי "אם לא", מקונן בfilter בגוגל שיטס

מתוזמן נעוץ נעול הועבר תכנות
6 פוסטים 3 כותבים 409 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ש מנותק
    ש מנותק
    שמחה זו הסיסמא
    כתב ב נערך לאחרונה על ידי שמחה זו הסיסמא
    #1

    כשאני כותב if בתוך filter אני חייב לתת לו שני צדדים, מכיון שאם אני משאיר את הצד השני של התנאי ריק זה מתקבל כנתון קבוע שלא יכול להיות בפילטר.
    דוגמא

    =filter(if(D1="שעות",A:C,B:B=<15:00,""
    

    גוגל שיטס יחזיר שגיאה *הפונקציה FILTER מכילה גדלים לא תואמים של טווחים. ספירת השורות שהייתה צפויה להתקבל: ****. ספירת העמודות: 1. ספירת השורות שהתקבלה בפועל: 1, ספירת העמודות: 1.

    הסיבה לזה היא מכיון שלא נתתי לו בדיקה של כל הטווח שבחרתי אלא רק של "" ריק וזה בעצם ערך יחיד

    הבעיה שלי היא שאני מעוניין לעשות תנאי בפילטר, דהיינו אם G1 שווה ל X אז אני רוצה לקבל רק טווח שעונה לקריטריון, ואם G1 אינו שווה לX אני רוצה לקבל את כל הטווח.
    מה שעשיתי זה if

    =filter(A:C,if(g1="X",B:B>15,""
    

    ואז יוצר שאם G1 שונה מ X אז אני מקבל את השגיאה הנ"ל
    מה שעשיתי זה שהכנסתי תנאי שתמיד מתקיים במקום ""
    לדוגמא

    =filter(A:C,if(g1="X",B:B<1000000,""
    

    מכיון שכל הנתונים שלי קטנים ממיליון אז התנאי תמיד מתקיים
    עד כאן הכל טוב
    הבעיה שאני חווה איטיות נוראית בגיליון
    כשקצת קראתי על זה הבנתי שהחישובים המיותרים שנוצרו כך הם נוראיים, וכאן השאלה שלי כיצד ניתן לאכול את העוגה ולהשאיר אותה שלימה
    דהיינו גם לא לחשב סתם וגם להשאיר את הif במקומו
    תודה רבה
    ניסיתי הרבה זמן לתמצת את השאלה ולכתוב אותה באופן הברור ביותר, מקווה שהצלחתי

    A Y.Excel.AccessY 2 תגובות תגובה אחרונה
    0
    • A מנותק
      A מנותק
      avi rz
      השיב לשמחה זו הסיסמא ב נערך לאחרונה על ידי
      #2

      @שמחה-זו-הסיסמא
      לא קראתי הכל אבל אולי תעשה בתנאי שתמיד מתקיים 1=1, לא יעזור?

      תגובה 1 תגובה אחרונה
      0
      • Y.Excel.AccessY מנותק
        Y.Excel.AccessY מנותק
        Y.Excel.Access
        השיב לשמחה זו הסיסמא ב נערך לאחרונה על ידי
        #3

        דבר ראשון, שים לב - הפונקציות שלך לא שלמות, הם לא יכולות לרוץ ככה. (לא סגרת את הסוגריים), כך שזה קצת מערפל את השאלה.
        גם לא הבנתי כל כך מה התכוונת, יש לי 3 אפשרויות:

        • התכוונת להתנות האם לסנן או לא, לפי ערך תא G1, שאם הוא שווה ל "X" יש לסנן לכל מה שהשעה בו פחותה מ 15:00, ואם לא להביא הכל בלי סינון, וכמו שכתבת

        @שמחה-זו-הסיסמא כתב בif בלי "אם לא", מקונן בfilter בגוגל שיטס:

        הבעיה שלי היא שאני מעוניין לעשות תנאי בפילטר, דהיינו אם G1 שווה ל X אז אני רוצה לקבל רק טווח שעונה לקריטריון, ואם G1 אינו שווה לX אני רוצה לקבל את כל הטווח.

        בשביל זה, צריך לעשות IF חיצונית לפילטר.

        =ARRAYFORMULA(IF("x"=G1,FILTER(A:C,HOUR(B:B)<15),A:C))
        
        • אפשרות שניה - התכוונת לסנן לפי אחד משתי תנאים, ולכן כתבת IF בשביל זה.
          בשביל זה צריך להשתמש ב OR, דא עקא, שבOR יש את אותה שגיאה שכתבת כי הוא מתאים רק לנתונים יחידים ולא למערך, אז לזה צריך להשתמש ב BITOR, ככה:
        =ARRAYFORMULA(FILTER(A:C,BITOR(HOUR(B:B)<15,"x"=G1))
        
        • אפשרות שלישית - התכוות למשהו אחר, ואני לא קראתי את דבריך מספיק בעיון (וסליחה).
          אוכל לענות על שאלה אחת שהבנתי:

        גוגל שיטס יחזיר שגיאה *הפונקציה FILTER מכילה גדלים לא תואמים של טווחים. ספירת השורות שהייתה צפויה להתקבל: ****. ספירת העמודות: 1. ספירת השורות שהתקבלה בפועל: 1, ספירת העמודות: 1.
        הסיבה לזה היא מכיון שלא נתתי לו בדיקה של כל הטווח שבחרתי אלא רק של "" ריק וזה בעצם ערך יחיד

        יש לזה פתרון שאני משתמש איתו, פונקציית MAKEARRAY, תוכל לראות עליה עוד בקישור זה https://www.benlcollins.com/spreadsheets/makearray-function/
        ותוכל כמובן לחפש גם בעברית - זה מה שמצאתי מחיפוש מהיר של GOOGLE SHEETS MAKEARRAY.

        Y.Excel.Access @ gmail.com

        ש 2 תגובות תגובה אחרונה
        3
        • ש מנותק
          ש מנותק
          שמחה זו הסיסמא
          השיב לY.Excel.Access ב נערך לאחרונה על ידי
          #4

          @Y-Excel-Access כתב בif בלי "אם לא", מקונן בfilter בגוגל שיטס:

          MAKEARRAY

          תודה רבה על המידע המועיל, עזרת לי מאוד

          תגובה 1 תגובה אחרונה
          0
          • ש מנותק
            ש מנותק
            שמחה זו הסיסמא
            השיב לY.Excel.Access ב נערך לאחרונה על ידי
            #5

            @Y-Excel-Access כתב בif בלי "אם לא", מקונן בfilter בגוגל שיטס:

            בשביל זה צריך להשתמש ב OR, דא עקא, שבOR יש את אותה שגיאה שכתבת כי הוא מתאים רק לנתונים יחידים ולא למערך, אז לזה צריך להשתמש ב BITOR, ככה:

            זו תשובה מעולה כדי לסנן עבור 1 מ2 תנאים
            מה אתה מציע לעשות אם יש לי טבלה של 7 עמודות שאני רוצה שיוכלו לסנן אותה לפי כל אחת מהעמודות
            למשל

            name date time Details sender
            אברהם 20/5/2022 15:32 XXX המורה שלמה

            אני צריך סינון לפי שם, רק בתאריך מסויים או בין תאריכים, רק עם הפרטים שווים ל... או רק ממורה מסויים
            אני אצטרך לכתוב filter עבור כל צירוף שקיים ?

            Y.Excel.AccessY תגובה 1 תגובה אחרונה
            0
            • Y.Excel.AccessY מנותק
              Y.Excel.AccessY מנותק
              Y.Excel.Access
              השיב לשמחה זו הסיסמא ב נערך לאחרונה על ידי Y.Excel.Access
              #6

              @שמחה-זו-הסיסמא דבר ראשון - אפשר לקנן BITOR, אבל זה יהיה קצת מגושם 7 רמות קינון...

              אבל פשוט - למה ללכת בכלל על FILTER כשיש לך את QUERY? פשוט לעשות

              =QUERY({A2:V14},"SELECT * WHERE Col1 = 'אברהם' OR Col2 > 1 ...(וכו')" )
              

              (באמת אני מרבה להשתמש בQUERY פי כמה מ FILETR, SORT וכד', פשוט פונקציה אחת שבוחרת מתוך מערך, ממיינת ומסננת הכי טוב שאפשר, ובפרט אחרי החידוש שאפשר לעשות פונקציות בעלות שם וביטויי למדה - נולדו פתאום בתחום גם הרבה קיצורי דרך ואפשרויות חדשות)

              Y.Excel.Access @ gmail.com

              תגובה 1 תגובה אחרונה
              2

              בא תתחבר לדף היומי!
              • התחברות

              • אין לך חשבון עדיין? הרשמה

              • התחברו או הירשמו כדי לחפש.
              • פוסט ראשון
                פוסט אחרון
              0
              • דף הבית
              • קטגוריות
              • פוסטים אחרונים
              • משתמשים
              • חיפוש
              • חוקי הפורום