יום שני, 14 בפברואר 2022

Absence Management

Absence Management


Suppose you are the owner of a small business. You have several employees. Each one of them has a “standard” amount of hours for each working day.

At the end of the day you want to know:

*which employees worked less than the “standard”

*which employees exceeded the “standard”

*which employees worked the exact amount of “standard” hours.

So, the most obvious function you’d think of, off the top of your head, would be the IF function:

 

                   Pic. No 1: The IF solution (not so good..)

 

However, a much simpler solution would be this one, without IF:

                  Pic. No 2: A better solution

 

 




 



יום חמישי, 3 בפברואר 2022

שיטה חדשה לבדיקת ספרת בקורת של תעודת זהות

 

שיטה חדשה לבדיקת ספרת בקורת של תעודת זהות

תעודת זהות ישראלית מורכבת מתשע (9) ספרות, כאשר הספרה התשיעית היא ספרת הבקורת.

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

על השיטה הישנה אפשר לקרוא כאן:

https://www.excelmaster.co.il/2018/08/06/check_id_excel/

 

השיטה שלי הרבה יותר קצרה (יותר מפי שנַים)  וגם הרבה יותר קריאה.
היא משתמשת בשתי פונקציות חדשות באקסל 365:
 SEQUENCE ו- LET

ראשית אציג את הנוסחא, ואז אסביר את האלגוריתם של חישוב ספרת הבקורת.

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

אם המספר מוגדר בתא
B1, אז הנוסחא היא כמו בתמונה:

                                                תמונה מס. 1: הנוסחא המלאה



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

לאחר מכן, אסביר את הנוסחא כולה (כפי שהיא מופיעה בתמונה לעיל)

 

א. האלגוריתם

1.      כל ספרה במקום אי-זוגי (כלומר הספרות במקום: 1,3,5,7,9) מוכפלת ב- 1

2.      כל ספרה במקום זוגי (כלומר הספרות במקום: 2,4,6,8) מוכפלת ב-2

3.      אם המכפלה גדולה מ-9 (וזה יכול, כמובן, לקרות רק לספרה זוגית ורק לספרה זוגית שערכה > 4) אזי יש לסכום את ספרות המכפלה.
לדוגמא:
אם הספרה הרביעית היא 5, תוצאת המכפלה: 5*2 = 10. במקרה כזה, אנו סוכמים את ספרות המכפלה ומקבלים: 1 (1+0=1)

4.      כעת סוכמים את כל המכפלות (כולל המכפלות שעברו "תקון" כמו בסעיף 3) ובודקים אם הסכום מתחלק ב-10 בלי שארית.

אם כן – ספרת הבקורת תקינה, אחרת – הספרה שגויה

 

בדוגמא הראשונה, נשתמש במספר: 924593221


                        תמונה מס. 2: אלגוריתם לחישוב ספרת בקורת למס. 924593221

 

כפי שאפשר לראות בתמונה, פצלנו את המספר לתאים C3:K3

כאשר הספרות האי-זוגיות יושבות בתאים: C3, E3, G3, I3, K3

והספרות הזוגיות יושבות בתאים: D3, F3, H3, J3

תאים C4:K4 מכילים את תוצאות המכפלות של הספרות בתאים C3:K3 ב-1 או ב-2.

הספרה בתא  F3 (5), מוכפלת ב-2 והתוצאה: 10 (בתא  F4). לכן, יש לעשות על תוצאת המכפלה "מניפולציה" ולשנות את ערכה ל-1  (בתא F5)

כעת אנו סוכמים את התאים C5:K5 (התוצאה: 40) ומחלקים ב-10 ובודקים מהי התוצאה:

=MOD(SUM(C5:K5),10)=0

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

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

 

דוגמא נוספת: המספר 051651636


            תמונה מס. 3: אלגוריתם לחישוב ספרת בקורת למס. 051651636

 

 

במספר זוגי ישנן שתי ספרות במקום זוגי (D3, F3), שמכפלתן ב-2 נותנת תוצאה גדולה מ-9

לכן את המספר 10 ב- D4 (10=5*2) נהפוך ב-D5  ל: 1+0=1

ואת המספר 12 בתא F4 (12=6*2)  נהפוך ב- F5 ל:  1+2=3

כעת אנו סוכמים את התאים C5:K5 (התוצאה: 30) ומחלקים ב-10 ובודקים מהי התוצאה:

=MOD(SUM(C5:K5),10)=0

התשובה חיובית (TRUE) אין שארית בחלוקה ל-10. ולכן, ספרת הבקורת של המספר שבדקנו היא תקינה, והמספר כולו הוא מספר ת.ז. תקין.

  

 

ב.  הנוסחא

 

הנוסחא מורכבת מ-4 שורות:
בשלוש השורות הראשונות אנו משתמשים בפונקציה
LET
אשר מאפשרת לנו להגדיר קטע נוסחא כדי לחסוך כפילויות מיותרות.
כך, למשל, אנו מגדירים את:
sq במקום: SEQUENCE(9)

את: ev במקום: MID(B1,FILTER(sq,MOD(sq,2)=0),1)

ואת: od במקום: MID(B1,FILTER(sq,MOD(sq,2)=1),1)

ev הוא משתנה המגדיר את הספרות הזוגיות במספר (even)

ו- od הוא משתנה המגדיר את הספרות האי-זוגיות במספר (odd)

בשורה האחרונה, אנו סוכמים את המכפלות (כפי שהסברתי לעיל):

SUM(IF(ev>"4",1+MOD(ev*2,10),ev*2))+SUM(--od))

 

הספרות הזוגיות:

אם הספרה הזוגית גדולה מ-4, אז מכפלתה ב-2 תתן תוצאה של 10 (או יותר) ולכן יש לסכום את הספרות לאחר המכפלה. אחרת – רק לסכום את המכפלות ב-2.

הספרות האי-זוגיות:

סכימה בלבד (כי מספר *1 שווה למספר).

הסכום שהתקבל מצרוף מכפלות המספרים הזוגיים והאי-זוגיים – אנו מחלקים ב-10

(כפי שהסברתי באלגוריתם) ותוצאת החלוקה יכולה להיות, כאמור:

TRUE המספר תקין  J

FALSE המספר אינו תקין L

 

      ג.    חישוב ספרת הבקורת למספר 924593221


                         תמונה מס. 4: חישוב ספרת בקורת למס. 924593221

 

 

 

     ד.  חישוב ספרת הבקורת למספר 051651636

 

                  תמונה מס. 5: חישוב ספרת בקורת למס. 051651636

 

 

 

     ה. חישוב ספרת הבקורת למספר 001234350


                 תמונה מס. 6: חישוב ספרת בקורת למס. 001234350









יום רביעי, 2 בפברואר 2022

The Word-Enhancing Game

 

The Word-Enhancing Game


Here’s another game I’ve invented:

You take a two-letter word in English, and you add one letter at a time to create a new word. 
You need to create at least 5 new words (5 enhancements).

In my examples there are even 6(!) new words.

 

                   * * *

There are only 2 rules:
1) No “s-plural” words allowed. 
i.e. “books”, “chairs”, “pens” are illegal but “men”, “oxen”, “mice” are allowed.
2) No conjugation of verbs: “wanted”, “tries”, “washes” are illegal but “want”, “try”, “wash” are OK.

Enjoy
Meni Porat