Office Forum Q&A

Welcome to our Office forum

Technical questions can be asked about Excel, Access, Word, PowerPoint, Outlook, SharePoint and other Office applications without registration and free of charge

New Question

 

א' שואל:

אני רוצה לחלץ נתון של תקופה משדה הכולל אותיות ומספרים(זו התקופה) בלי חוקיות
(למשל בלי רווח בין המלל לתקופה, כך שאי אפשר להשתמש בטקסט לעמודות, ולא בסוף או תחילת המשפט).
לדוגמא:"כיחלנע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 תוצג התקופה המבוקשת.

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