א' שואל:
אני רוצה לחלץ נתון של תקופה משדה הכולל אותיות ומספרים(זו התקופה) בלי חוקיות(למשל בלי רווח בין המלל לתקופה, כך שאי אפשר להשתמש בטקסט לעמודות, ולא בסוף או תחילת המשפט).
לדוגמא:"כיחלנע3.23עיחל" או "יעוחל 1-5.23 עכיי". ואני צריך את התקופה: 3.23 או 1-5.23. תודה רבה
תשובה:
ניתן לבצע זאת על ידי שימוש בנוסחת מערך באקסל Array Formula והפונקציות TextJoin, IsNumber, Find, Mid.
מצ"ב דוגמה:

בתא B4 נגדיר את הנוסחה הבאה כנוסחת מערך על ידי הקלדה של הנוסחה ולחיצה על Ctrl+Shift+Enter כך שיופיעו סוגריים מסולסלים בתחילת וסוף הנוסחה.
TEXTJOIN("",,IF(ISNUMBER(FIND(MID(A4,ROW($1:$100),1),"0123456789,.-")),MID(A4,ROW($1:$100),1),""))=
הסבר לנוסחה -
ROW($1:$100) - יוצר מערך בגודל 100 (אם נדרש לטפל בקלט ארוך מ-100 תווים יש לעדכן את הערך 100 בהתאם.
MID(A4,ROW($1:$100),1) - הפונקציה מחלצת תו אחד בכל פעם מהטקסט בתא A4 ושומרת אותו במערך לטובת עיבוד בהמשך.
FIND(...,"0123456789,.-") - הפונקציה מחפשת כל תו מהטקסט ברשימת התווים החוקיים 0123456789,.- ואם התו נמצא היא מחזירה את המיקום שלו.
ISNUMBER - הפונקציה בודקת את התוצאה שהוחזרה על ידי FIND היא מספר או לא.
IF(ISNUMBER(FIND(...)),MID(A4,ROW($1:$100),1),"") - בחלק הזה נבדק כל תו בקלט. רק אם התו הוא מספר, נקודה, מקף או פסיק אז הוא נכלל בתוצאה.
TEXTJOIN - הפונקציה מחברת את התווים שנמצאו ונשמרו במערך למחרוזת טקסט אחת ללא הפרדה בין התווים.
נעתיק את הנוסחה לתא B5.
התוצאה - בתאים B4 ו-B5 תוצג התקופה המבוקשת.

בברכה,
צוות אניפיט