@האדם-השלישי
ניתן לבצע זאת באקסל באמצעות שילוב של הפונקציות IF (לבדיקת התנאים), DATE (לבניית התאריך), YEAR, MONTH, ו-DAY (לפירוק התאריך המקורי).
להלן הנוסחה שיש להדביק בתא ב' (בהנחה שהתאריך נמצא בתא A1 והמספר 1 או 2 נמצא בתא C1):
Excel
=IF(C1=1, DATE(YEAR(A1), MONTH(A1), 15), IF(C1=2, IF(DAY(A1)<10, DATE(YEAR(A1), MONTH(A1), 10), DATE(YEAR(A1), MONTH(A1)+1, 10)), ""))
הסבר לוגיקת הנוסחה:
החלק הראשון (C1=1): הנוסחה בודקת האם בתא C1 כתוב 1. אם כן, היא לוקחת את השנה והחודש מתא A1 ופשוט קובעת את היום ל-15. זה תואם לדוגמאות שלך (14/12 ו-1/12 שניהם הופכים ל-15/12).
החלק השני (C1=2): אם בתא C1 לא כתוב 1, הנוסחה בודקת אם כתוב 2. במידה וכן, מתבצעת בדיקה נוספת על היום בחודש (פונקציית DAY):
אם היום קטן מ-10 (למשל 1/12): התאריך שייקבע הוא ה-10 לאותו חודש נוכחי.
אם היום הוא 10 ומעלה (למשל 14/12): התאריך שייקבע הוא ה-10 לחודש הבא (MONTH(A1)+1).
הערה חשובה לגבי המעבר בין שנים: פונקציית DATE באקסל היא חכמה. אם הנוסחה מוסיפה 1 לחודש דצמבר (חודש 12 + 1 = 13), אקסל ידע אוטומטית להעביר זאת לחודש ינואר של השנה הבאה. כך שבדוגמה שלך, ה-14/12 אכן יהפוך ל-10/1 בשנה החדשה ללא צורך בתיקון נוסף.
טיפ: אם האקסל שלך מוגדר בעברית/ישראל, ייתכן שתצטרך להשתמש בנקודה-פסיק (;) במקום פסיק (,) בין חלקי הנוסחה. במקרה כזה הנוסחה תיראה כך: =IF(C1=1; DATE(YEAR(A1); MONTH(A1); 15); IF(C1=2; IF(DAY(A1)<10; DATE(YEAR(A1); MONTH(A1); 10); DATE(YEAR(A1); MONTH(A1)+1; 10)); ""))