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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
Y.Excel.AccessY

Y.Excel.Access

@Y.Excel.Access
אודות
פוסטים
294
נושאים
49
קבוצות
0
עוקבים
2
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • באקסס-איפוס ID
    Y.Excel.AccessY Y.Excel.Access

    @laswater אפשר גם להוסיף בשאילתה ישירות ל ID את הספרה 0 או מספר נמוך אחר כרשומה אחת, וכך הוא ימשיך משם.

    דוגמה - איפוס ID.accdb

    @dovid כתב בבאקסס-איפוס ID:

    כמו"כ מסתבר לי שלשנות לשדה מספרי רגיל לשמור ושוב להחזיר גם יעבוד.

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

    תיקון ודיחסת מסד נתונים אמור לעזור לזה,

    באמת עוזר, כך שזו הדרך הכי קלה.


  • כרטסת בגוגל שיטס
    Y.Excel.AccessY Y.Excel.Access

    @בער הנה אחת מהאפשרויות - לסנן את עמודה A יותר מ 5000.

    =ARRAYFORMULA(SORT(
    {
    FILTER(הכנסות!A1:D100
    ,הכנסות!A1:A100 > 5000)
    ;
    FILTER({הוצאות!A1:B80, הוצאות!D1:D80, הוצאות!C1:C80*-1},
    הוצאות!A1:A80 > 5000)
    }
    ),1,FALSE)
    

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

    במקרה כזה אפשר לסבך עם עוד קינון של תנאי או להשתמש עם QUERY. אני כולל כאן סינון עם שני תנאים - או לפי עמודה A או לפי עמודה C.

    עם תנאי:

    =ARRAYFORMULA(SORT(FILTER(
    {הכנסות!A1:D100;הוצאות!A1:B80, הוצאות!D1:D80, הוצאות!C1:C80*-1}
    ,BITOR({הכנסות!A1:A100;הוצאות!A1:A80}>5000,{הכנסות!C1:C100;הוצאות!C1:C80}="מוצר")
    ),1,FALSE)
    

    עם QUERY:

    =QUERY({הכנסות!A1:D100 ; הוצאות!A1:B80, הוצאות!D1:D80, הוצאות!C1:C80*-1}, "SELECT * WHERE Col1 > 5000 OR Col3 = "מוצר" order by Col1 desc",0)
    

    נ.ב. ברמה כזאת של חישובים מקוננים הייתי כבר משתמש מראש ב QUERY - מצריך יותר ידע אבל קוד יותר קצר. גם בפשטות אפשר לקנן את ה QUERY ולחסוך את הצורך בעמודת D. אבל שאלת דווקא על SORT ו FILTER.


  • חיבור סורק ברקוד לאקסס
    Y.Excel.AccessY Y.Excel.Access

    @איש-פלוני הערה קטנה על הקוד, שאינה מעניין השאלה.

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

    ו-כמו שעשית, לא לערבב באותו שם משתנה שמות באנגלית ובעברית, זה מבלגן את הימין - שמאל של הקוד.

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


  • VLOOKUP עם ערך לחיפוש משתנה, אפשרי בלי IF?
    Y.Excel.AccessY Y.Excel.Access

    @OdedDvir מדהים! חידש לי ממש.
    הערה חשובה:
    לפחות לגרסאות היותר ישנות, לחישוב נכון של הנוסחה צריך להקיש בסיום כתיבת הנוסחה CTRL+SHIFT+ENTER לקבלת החישוב כנוסחת מערך.


  • נוסחה בגוגל שיטס
    Y.Excel.AccessY Y.Excel.Access

    @בער אמר בנוסחה בגוגל שיטס:

    @Y-Excel-Access
    ניסתי לעשות את זה ככה:

    =QUERY({'07.2021'!B:F;'08.2021'!B2:F2;'09.2021'!B2:F2},"select Col1, count(Col2), sum(Col2) where Col1 <> '' group by Col1 ")
    

    והוא עשה לי טור של כל השמות ובטור השני והשלישי הוא התייחס רק למה שמופיע בעמודה C ולא למה שמופיע בעמודה F

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

    הנוסחה הנכונה:
    =QUERY({'07.2021'!B:B,'07.2021'!F:F;'08.2021'!B2:B,'08.2021'!F:F2;'09.2021'!B2:B,'09.2021'!F:F2},"select Col1, count(Col2), sum(Col2) where Col1 <> '' group by Col1 ")

    הסבר -
    הסוגריים {} מקבצות את ההפניות לטבלה.
    פסיק , מסדר הפניה ליד הפניה
    נקודה-פסיק ; מסדר הפניה מתחת להפניה

    אז הפונקציה לוקחת את עמודה B:B מטבלה 07 ומסדרת לידה את עמודה F:F מטבלה 07 וזה נהיה טבלה ראשונה.
    אח"כ לוקחת את התאים B2 עד סוף העמודה (ללא B1) ומסדרת לידה את התאים F2 עד סוף העמודה ואת שתי עמודות אלו מסדרת מתחת הטבלה הראשונה
    ואותו דבר עם ההפניה השלישית

    אח"כ הנוסחה מבצעת חישוב של SQL לסכום ולספור את הנתונים בתנאי שכתוב משהו בעמודה הראשונה, ולפי הטקסט של העמודה הראשונה (שם התורם)

    אם עדיין יש צורך - תוכל לפנות אלי גם במייל (אם זה לא נתונים רגישים - אפשר גם לשתף איתי את הקובץ)
    בהצלחה!


  • חיפוש מתורגם לאנגלית בגוגל
    Y.Excel.AccessY Y.Excel.Access

    יצרתי קובץ (בקישור זה) שמתרגם טקסט מעברית לאנגלית בתרגום גוגל ומחפש את התרגום - פותח דף חדש עם תוצאות חיפוש גוגל של הטקסט המתורגם לאנגלית.

    איך להשתמש?
    יש להעתיק את הקובץ - כרטיסייה קובץ > יצירת עותק.
    ולהשתמש עם העותק שלכם.
    גודל המסך מתאים למחשב (מי שרוצה יכול לשנות שיתאים לטאבלט וכדו')

    שמיש במיוחד בחיפושים עם אנגלית מסובכת... (כמובן אפשר לשלב עברית ואנגלית), - אפשר לשים את זה בסימניות הדפדפן למי שמשתמש בזה הרבה.

    אשמח לדעת האם זה הועיל, ולקבל רעיונות לשדרוג.


  • גוגל שיטס - איך להעתיק היפר קישור בין חוברות עבודה
    Y.Excel.AccessY Y.Excel.Access

    לסיכום - עזר לי להתייאש.
    אחרי שהנחתי שאין אפשרות על ידי APP SCRIPT,
    פשוט ייבאתי את הטקסט של התאים בהם יש את הקישור, ואת הקישור עצמו הנתלה על כל תא, והרכבתי שוב נוסחה חדשה בגליון השני של HYPERLINK וגמרנו.

    תודה רבה ל @מנצפכ ול @אביי על העזרה


  • איך מזהים בVBA תו 'רווח קשיח'
    Y.Excel.AccessY Y.Excel.Access

    @מלא אפשר דוגמה? אני לא יודע מה הכוונה לרווח 'קשיח'.
    כל האותיות שנכתבות באקסס הם על תקן בייט אחד (256 מיקומים, כשאחד מהם הוא זיכרון המצביע)

    האפשרות הכי פשוטה לבדוק את זה - אם קשה למצוא אותו - כתוב באקסל:

    ="|"&CHAR(ROW(A1:A255))&"|"
    

    וחפש את הרווח הקשיח - או אם קל למצוא אותו - להיפך עם ACS.

    וכן, בעיקרון אפשר להחליף כל תו עם Replace ב VBA ולכאורה אף בקוד פקד באמצעות בונה הביטויים.


  • BLAZOR - האם זה יעיל?
    Y.Excel.AccessY Y.Excel.Access

    @mekev כתב בBLAZOR - האם זה יעיל?:

    @Y-Excel-Access כתב בBLAZOR - האם זה יעיל?:

    ההתרשמות שלי מלכלוך הידיים

    אשמח לחוות דעתך (הסובייקטיבית)
    על תחושת ה'זמן תגובה' בטעינה / פעולות
    אצל המשתמש בBLAZOR

    הידיים שלי עדיין מלוכלכות...

    אני רושם את ההתרשמות שהספקתי לקבל, ולפני כן הערה - כאן במחשב שאני עובד על פרויקט זה ה VISUAL STUDIO עובד לאט גם ב C# CONSOLE, כך שהוא לא כל כך פרמטר נכון...
    עכ"פ הקמפול לקח זמן כל פעם, התגובה בדפדפן מהירה, והשליפה מ SQL באמצעות SQLCLIENT לקחה כמה שניות בפעם הראשונה ששלפתי.

    כל האמור הוא ב BLAZOR SERVER בלבד, ב WEB ASSAMBLY לא עבדתי עדיין.


  • BLAZOR - האם זה יעיל?
    Y.Excel.AccessY Y.Excel.Access

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

    אני לומד קצת את BLAZOR ב C#, התרשמתי מאוד, אבל בכל אופן רציתי לשאול ממי שמכיר או ניסה האם זה יעיל:

    • שווה לעבוד ב BLAZOR ליישומים בפיתוח מהיר?

    • האם אפשר לקמפל את כל הקבצים (כולל קבצי מסד נתונים כמו SQL / JSON וכדו' או אפילו אקסס עצמו כמסד נתונים) לקובץ הפעלה אחד? מסוג EXE או אחר

    • האם אפשר להשתמש באפשרות ויזואלית כמו טפסי אקסס? - האם אפשר ויעיל (וכנראה שלא...) לשלב קוד פתוח של HTML + CSS + JS משולב?
      לפי מה שהבנתי יש כלים בJS ויזואליים להוספת טבלה וכדו' כמו שיש ב C# WINDOS FORMS, וחשבתי שזה יכול לעזור לפיתוח מהיר, אם כמובן אפשר לשלב.

    • האם זה באמת שמיש לפיתוח אתר? מישהו פיתח כך בפועל? (כמובן בצורה שזה מתקפל ל WEB ASSAMBLY) או שזה יותר פרסומות בעלמא

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


  • if בלי "אם לא", מקונן בfilter בגוגל שיטס
    Y.Excel.AccessY Y.Excel.Access

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

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

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

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


  • אקסל להוריד כפילוית מ2 עמודות
    Y.Excel.AccessY Y.Excel.Access

    @לעזור-לכולם
    כתוב פונקציה

    =FILTER(G1:G100,ISNA(MATCH(G1:G100,H1:H10,0)))
    

  • ניקוי חלון הdebug באקסס
    Y.Excel.AccessY Y.Excel.Access

    @ארי מה הצורך?
    אם זה בשביל שיהיה לך נקי בעין תוך כדי עבודה
    אפשר תמיד למחוק ידנית - כמו כל קובץ טקסט. CTRL + A ו DELETE.

    לא יודע אם אפשר לגשת לזה בצורה תכנותית.


  • האם יש אפשרות לתכנת ישירות בענן
    Y.Excel.AccessY Y.Excel.Access

    תודה רבה לכל המשיבים.
    אסכם לבינתיים את התשובות, לי ולבאים אחרי:

    • @יוסף-בן-שמעון הביא פתרון של דוקר, ליצור 2 , אחד עם VS ואחד עם SQL, אך זה יהיה על השרת - לא בענן.
    • @יוסף-בן-שמעון ו @משתמש-תמים כתבו אפשרות ב GITHUB לעורך VS - 2 אפשרויות איך לגשת אליו בקלות, אך זה כבד. ולכאורה אין מקום לאחסן נתונים. ו @meir-lamdan הביא תוסף שעוזר ג"כ לערוך את הקוד ב VS ב GITHUB.
    • @aaron הביא אפשרות לטרמינל מלא ותוספים את gitpod וcodespaces של גיטהאב, שהוא חינמי עד 50 שעות פיתוח בחודש (לצורך שלי של עבודה ממחשב אחר - די והותר מבחינתי, כמובן אם זה כולל גם אפשרות לקוד פרטי בלי לפרסמו כקוד פתוח), וגם כאן - לכאורה אין פתרון לאחסון נתונים.
    • @aaron הביא גם עוד שתי פתרונות לשרת מחשב - לפי מה שהבנתי להתקין את התוכנה בשרת וירטואלי. זה פחות מעשי לי - כי השרת עצמו עולה כסף.
    • ו @dovid המליץ לא לפתח רק כך אלא להשאר גם בצורת הפיתוח הרגילה על המחשב שלי (לפי מה שהבנתי).

    הבנתי אתכם נכון?


  • תרגיל: עיגול מספר לפי מערך מפתחות
    Y.Excel.AccessY Y.Excel.Access

    @קומפיונט אמר בתרגיל: עיגול מספר לפי מערך מפתחות:

    יש לי מערך של מפתחות, לדוג 100 200 300 ... ואני רוצה שהמשתמש יזין מספר כלשהו הוא יעוגל למספר המפתח הקרוב ביותר.

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

    אולי יש למשהו דרך יצירתית לעשות את זה?

    יש לציין שהפתרון שלי הוא רק בשפות של NET., אבל בטוח יש דרכים יצירתיות גם בשפות אחרות. אז אתם גם מוזמנים לנסות (כמובן בלי גוגל).

    בלי לחפש...
    הפתרון כאן הוא ב VBA.
    אני מניח שכל המערך הוא עם ערכי INT בלבד,
    וגודל המערך ידוע, אך גודלו יכול להיות LONG.

    והדרך הכי יעילה מבחינתי, זה לקודד לבד... כך כל פעולה ידועה,
    והכי קצרה - לכתוב את זה כפונקציה:)

    נ.ב. יכול להיות שיש עוד דרכים יותר טובות - לא בדקתי את הקודים בשרשור.
    וגם - יש משהו מעצבן בVBA, שבחלק מהיישומים (לדוגמה, אצלי) א"א לדעת את גבולות המערך למרות שיש פונקציה ייעודית לזה (LowerBound, ו UpperBound) וכש"כ לא את גודל המערך, לכן הוספתי פרמטרים של גבולות המערך.

    Option Explicit
    
    Public Function Round(ByRef Value As Integer, ByRef Arr() As Integer, ByRef Length As Long, Optional ByRef LowerBound As Long = 0) As Integer
    
        Dim i As Long
        Dim lower As Integer, upper As Integer
        
        If Value = Arr(LowerBound) Then
            Round = Value
            Exit Function
        ElseIf Arr(LowerBound) > Value And Arr(LowerBound) < 32767 Then       ' limit intreger == 32767
            upper = Arr(LowerBound)
        ElseIf Arr(LowerBound) < Value And Arr(LowerBound) > lower Then
            upper = 32767
            lower = Arr(LowerBound)
        End If
        
        For i = LowerBound + 1 To LowerBound + Length - 1
            If Value = Arr(i) Then
                Round = Value
                Exit Function
            ElseIf Arr(i) > Value And Arr(i) < upper Then
                upper = Arr(i)
            ElseIf Arr(i) < Value And Arr(i) > lower Then
                lower = Arr(i)
            End If
            
            'Debug.Print "arr(i) " & Arr(i) & " lower " & lower & " upper " & upper
        Next i
        
        If upper - Value <= Value - lower Then Round = upper Else Round = lower
        
    End Function
    
    Sub בדיקה()
    Dim AA(1 To 5) As Integer
    AA(1) = 4
    AA(2) = 12
    AA(3) = 2
    AA(4) = 22
    AA(5) = 80
    MsgBox Round(CInt(InputBox("")), AA, 5, 1)
    End Sub
    

  • שיתוף רק גיליון אחד בגוגל שיטס
    Y.Excel.AccessY Y.Excel.Access

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

    כדי לגשת לסקריפט הכי פשוט ליצור מאקרו ואז להמשיך עם זה. כי במילא השימוש הכי קל לך זה מאקרו.
    הסקריפט צריך לעשות SETVALUE לנתונים שם מהנתונים אצלך, ולדרוס את כל מה שכתוב שם, על ידי קישור - אתה מזין לו את הקישור בהגדרת משתנה נוסף שמצביע על חוברת העבודה שם.
    תוכל לבדוק בתיעוד של גוגל על APP SCRIPT (נראה לי שזה בתיעוד של הספריה של APP SCRIPT בשביל GOOGLE SHEETS). לא אמור להיות מסובך.
    תידרש הרשאה בהפעלה הראשונה.


  • שיתוף רק גיליון אחד בגוגל שיטס
    Y.Excel.AccessY Y.Excel.Access

    @שוהם307 בעקרון אפשר לעשות לכל אחד גליון נתונים, ולייבא לך כמנהל את הנתונים של כולם עם IMPORTRANGE, והנתונים שתשנה אצלך יעדכנו אצלם אוטומטית על ידי קוד APP SCRIPT.
    כך הם לא יוכלו לראות את הקישור שלך, אבל אתה תראה את שלהם.


  • חיפוש בטופס באקסס
    Y.Excel.AccessY Y.Excel.Access

    @יעקב-מ-פינס כתב בחיפוש בטופס באקסס:

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

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

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

    אם לא הובן אפשר להסתכל בדוגמה -
    .‏‏Microsoft Access Database חדש.accdb


  • אקסל | ריק במקום 0
    Y.Excel.AccessY Y.Excel.Access

    @פלורידה בגליונות שמסיבה מסוימת אתה לא רוצה שערך 0 יוצג כערך ריק, (כגון שיש תאים אחרים שהחשבון שלהם יוצא אפס), תעשה פשוט:

    =LET(MyValue,כאן תכתוב את הנוסחה שלך,IF(MyValue = 0,"",MyValue))
    

    הערה חשובה: שים לב שפונקצית LET מופיעה רק בגירסאות האחרונות של אקסל, והיא כן מופיעה גם בGOOGLE SHEETS (זה חדש!).


  • תו אופצונאלי בהחלפה בוורד
    Y.Excel.AccessY Y.Excel.Access

    @dovid כתב בתו אופצונאלי בהחלפה בוורד:

    זהו, קיבלנו מעל 90 אחוז החלפה מדוייקים, מדוייקים יותר מבינה מלאכותית (שמנצחת בתחום האי ודאות - אלו שלא טיפלנו).

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 2 / 7
  • התחברות

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

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