לא, שיהיה כתוב ש"ח [או הצורה של ש"ח]
בתודה מראש, ותזכה למצוות
 
ערב טוב

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

תאריךשעת התחלת פעילותשעת סיום פעילותשם מרצה
24/01/202218:15:0019:30:00חיים
24/01/202219:30:0020:15חיים
24/01/202220:3021:15חיים
31/01/202217:30:0019:15:00יוסף
31/01/202217:30:0019:15:00יוסף
01/02/202217:00:0019:00:00יוסף
07/02/202217:30:0019:15:00יוסף
07/02/202219:45:0021:00:00יוסף
07/02/202221:0022:30יוסף
למה לא להשתמש ב'הסר כפילויות'? אתה צריך דווקא נוסחה?
 
אין לי תשובה.
הסר כפילויות לא יעזור כי אנחנו מחפשים טווחים ולא מספרים.
אנחנו בעצם רוצים שהאקסל יחפש שורה שורה האם הכניסה או היציאה נמצאת בתוך הטווח שבין הכניסה ליציאה של כל שורה.
הריבוע הריק שהיה בהודעה שלי הוא סתם טעות
 
הסר כפילויות?
אין אפשרות, כי יש המון תאריכים זהים/ המון כניסות זהות/ שמות זהים
צריך להצליב מידע ביניהם.
יש אפשרות בהסר כפילויות להסיר כפילות רק במקרה שכל התאים בשורה הזאת זהים
 
לא הבנתי מה אתה מתכוין
כשאתה בוחר טבלה שלימה/טווח שלם באקסל ורוצה להחיל עליו הסר כפילויות הוא מוחק רק רק שורות שמופיעות פעמיים אותו דבר כל התאים, שזה אומר שרק אם זה יהיה גם אותו שם וגם אותה שעת כניסה וכו' הוא ימחק אחד מהם.
 
כשאתה בוחר טבלה שלימה/טווח שלם באקסל ורוצה להחיל עליו הסר כפילויות הוא מוחק רק רק שורות שמופיעות פעמיים אותו דבר כל התאים, שזה אומר שרק אם זה יהיה גם אותו שם וגם אותה שעת כניסה וכו' הוא ימחק אחד מהם.
בקיצור אתה מחזק את דבריי שאין אפשרות שידועה לנו. אם מישהו ימצא אופציה זה יהיה מעולה.
(אני לא מכיר את אקסס, אולי שם אפשר?)
 
חזק מאוד
תזכה למצוות
[עדיין תיקון קטנצ'יק, כשכותבים עשרים, שלושים, הלאה, הוא כותב ועשרים, ושלושים, בעשרים ואחד זה כבר בסדר]
 

קבצים מצורפים

  • מספרים למילים בשורות מרובות.xlsx
    KB 163.6 · צפיות: 47
בקיצור אתה מחזק את דבריי שאין אפשרות שידועה לנו. אם מישהו ימצא אופציה זה יהיה מעולה.
(אני לא מכיר את אקסס, אולי שם אפשר?)
גם לי יעזור אם מישהו ימצא את הפתרון לזה.
הכיוון שהתחלתי לחשוב עליו היה:
נניח שהיו לנו רק שני מרצים,
המרצה הראשון מתחיל בנקודת זמן 3.5, ומסיים ב 3.7.
המרצה השני מתחיל ב 3.6, ואנחנו רוצים לדעת האם זה באמצע הזמן של המרצה הראשון.
אז עושים תנאי: אם 3.6 גדול מ 3.5, וגם קטן מ 3.7, תכתוב שגיאה. (אותו תנאי עושים על זמן הסיום של המרצה השני).

הבעיה פה שבצורה כזו נצטרך לעבור על כל השורות בגליון ולבדוק את הבדיקה הזו.
ואז תצא נוסחה ארוכה מאוד (גדול משעת כניסה של שורה 1 וקטן משעת יציאה של 1, או: גדול משעת כניסה של שורה 2 וקטן משעת יציאה של שורה 2, או: כנ"ל 3, או: כנ"ל 4).

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

כותבים פקודות למחשב בעורך הקוד של אקסל - VBA כך:

אדון מחשב צור לעצמך רשימה זמנית של מרצים

כעת בצע מחשבי היקר לולאת "FOR EACH" לרשימת המרצים:
הגעת גולם למרצה א' לך בלולאה בכל שורות מרצה א' במיון לפי תאריך, כלומר "FOR EACH ROW" למרצה א'
שמור לרגע במשתנה (החלטתי לכנות אותו ש_התחלה) מסוג תאריך-שעה את תאריך ושעת ההתחלה מ2 התאים תאריך ושעת התחלה בשורה זו
ורגע אל תברח שמור גם את תאריך הסיום משתנה שייקרא ש_סיום

כל זה לקח לך מליונית השנייה, מצויין. כעת קפוץ לשורה הבאה של מרצה א'
השווה את תאריך ההתחלה
השווה את תאריך הסיום
מה יצא TRUE או FALSE ? אם צריך לעשות שגיאה אז CALL BEEP
אם התאריך שונה עדכן את המשתנים ש_התחלה וש_סיום לתאריכי שורה 2 של מרצה זה
וחוזר חלילה
גמרת יפה את השורות של מרצה א' ? מצויין, קדימה בלי להתעצל לשורות של מרצה ב'
אויה יש רק 2 מרצים? אל תדאג עוד מעט @נעמיתוש מוסיפה עוד מלא שורות לא משנה לך הסדר
אתה כבר תדע טוב מאוד לשלוף אותם בסדר שאמרתי לך (מרצה מרצה ואז שורה שורה לפי תאריך)
לא יהיה משעמם, מבטיח!
 
בשמחה, ננסה לפשט אבל זה לא יעזור לך לעשות את זה למעשה

כותבים פקודות למחשב בעורך הקוד של אקסל - VBA כך:

אדון מחשב צור לעצמך רשימה זמנית של מרצים

כעת בצע מחשבי היקר לולאת "FOR EACH" לרשימת המרצים:
הגעת גולם למרצה א' לך בלולאה בכל שורות מרצה א' במיון לפי תאריך, כלומר "FOR EACH ROW" למרצה א'
שמור לרגע במשתנה (החלטתי לכנות אותו ש_התחלה) מסוג תאריך-שעה את תאריך ושעת ההתחלה מ2 התאים תאריך ושעת התחלה בשורה זו
ורגע אל תברח שמור גם את תאריך הסיום משתנה שייקרא ש_סיום

כל זה לקח לך מליונית השנייה, מצויין. כעת קפוץ לשורה הבאה של מרצה א'
השווה את תאריך ההתחלה
השווה את תאריך הסיום
מה יצא TRUE או FALSE ? אם צריך לעשות שגיאה אז CALL BEEP
אם התאריך שונה עדכן את המשתנים ש_התחלה וש_סיום לתאריכי שורה 2 של מרצה זה
וחוזר חלילה
גמרת יפה את השורות של מרצה א' ? מצויין, קדימה בלי להתעצל לשורות של מרצה ב'
אויה יש רק 2 מרצים? אל תדאג עוד מעט @נעמיתוש מוסיפה עוד מלא שורות לא משנה לך הסדר
אתה כבר תדע טוב מאוד לשלוף אותם בסדר שאמרתי לך (מרצה מרצה ואז שורה שורה לפי תאריך)
לא יהיה משעמם, מבטיח!
וואוו
זו גאונות
אבל זה ענק עלי.
 
עדיין חסר לי בנוסחא משהו, עדין לא מביא לי את כל הכפילויות. מה חסר?

=IF(H2=H3,IF(C2=C3,IF(D3<E2,"כפול","תקין"),"תקין"),"תקין")

1651818714443.png

 
בשמחה, ננסה לפשט אבל זה לא יעזור לך לעשות את זה למעשה

כותבים פקודות למחשב בעורך הקוד של אקסל - VBA כך:

אדון מחשב צור לעצמך רשימה זמנית של מרצים

כעת בצע מחשבי היקר לולאת "FOR EACH" לרשימת המרצים:
הגעת גולם למרצה א' לך בלולאה בכל שורות מרצה א' במיון לפי תאריך, כלומר "FOR EACH ROW" למרצה א'
שמור לרגע במשתנה (החלטתי לכנות אותו ש_התחלה) מסוג תאריך-שעה את תאריך ושעת ההתחלה מ2 התאים תאריך ושעת התחלה בשורה זו
ורגע אל תברח שמור גם את תאריך הסיום משתנה שייקרא ש_סיום

כל זה לקח לך מליונית השנייה, מצויין. כעת קפוץ לשורה הבאה של מרצה א'
השווה את תאריך ההתחלה
השווה את תאריך הסיום
מה יצא TRUE או FALSE ? אם צריך לעשות שגיאה אז CALL BEEP
אם התאריך שונה עדכן את המשתנים ש_התחלה וש_סיום לתאריכי שורה 2 של מרצה זה
וחוזר חלילה
גמרת יפה את השורות של מרצה א' ? מצויין, קדימה בלי להתעצל לשורות של מרצה ב'
אויה יש רק 2 מרצים? אל תדאג עוד מעט @נעמיתוש מוסיפה עוד מלא שורות לא משנה לך הסדר
אתה כבר תדע טוב מאוד לשלוף אותם בסדר שאמרתי לך (מרצה מרצה ואז שורה שורה לפי תאריך)
לא יהיה משעמם, מבטיח!
אני פחות מבין בעורך הקוד,
אבל אני חשבתי טיפה אחרת:
(אדרבה תסביר אם אני טועה)

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

הלולאה מתחילה לעבוד: להתחיל מהכניסה של השורה העליונה, ולבדוק האם היא גם גדולה מההתחלה של שורה 2 וגם קטנה מהסיום של שורה 2? אם כן, תוציא הודעה שהכניסה בשורה 1 מתנגשת בתוך הזמן של שורה 2, ולהמשיך את הלולאה הלאה לשורה 3 עם אותה בדיקה, וכך 20 בדיקות להתחלה של השורה העליונה, ואותו דבר 20 בדיקות כאלו לסיום שלה,

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

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

הלולאה מתחילה לעבוד: להתחיל מהכניסה של השורה העליונה, ולבדוק האם היא גם גדולה מההתחלה של שורה 2 וגם קטנה מהסיום של שורה 2? אם כן, תוציא הודעה שהכניסה בשורה 1 מתנגשת בתוך הזמן של שורה 2, ולהמשיך את הלולאה הלאה לשורה 3 עם אותה בדיקה, וכך 20 בדיקות להתחלה של השורה העליונה, ואותו דבר 20 בדיקות כאלו לסיום שלה,

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

ואם יש לו 1000 שורות?
בכל לולאה הוא יבדוק את כל 999 שורות

לא בדקתי
אבל תבדוק שלא תגיע ללולאה אינסופית

תתחיל עם תנאי של שם המרצה
ותעשה ריקורסיה
לדעתי זה הכי קצר

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

פרוגבוט

תוכן שיווקי
פרסומת

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

מעכשיו, תהיו הראשונים לקבל את כל העדכונים, החדשות, ההפתעות בלעדיות, והתכנים הכי חמים שלנו בפרוג!

לוח מודעות

הפרק היומי

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


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה