המילה האחרונה

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

הבה נסתכל על מספר דרכים מסורתיות לבחירה: נוסחאות, פקודות מאקרו ודרך Power Query.

שיטה 1. נוסחאות

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

המילה האחרונה

כעת אנו חותכים 20 תווים מסוף הטקסט שנוצר באמצעות הפונקציה ימינה (ימין):

המילה האחרונה

זה מתחמם, נכון? נותר להסיר רווחים נוספים באמצעות הפונקציה TRIM (מְטוּפָּח) והבעיה תיפתר:

המילה האחרונה

בגרסה האנגלית, הנוסחה שלנו תיראה כך:

=TRIM(RIGHT(SUBSTITUTE(A1;» «;REPT(» «;20));20))

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

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

המילה האחרונה

שיטה 2. פונקציית מאקרו

ניתן לפתור את המשימה של חילוץ המילה או הפרגמנט האחרון מהטקסט גם באמצעות פקודות מאקרו, דהיינו, כתיבת פונקציית חיפוש הפוך ב-Visual Basic שתעשה את מה שאנחנו צריכים – חיפוש תת-מחרוזת נתונה במחרוזת בכיוון ההפוך – מ- הסוף להתחלה.

לחץ על מקש הקיצור אחר+F11 או כפתור Visual Basic כרטיסייה מפתחים (מפתח)כדי לפתוח את עורך המאקרו. לאחר מכן הוסף מודול חדש דרך התפריט הכנס - מודול והעתק לשם את הקוד הבא:

 פונקציה LastWord(txt As String, Optional delim As String = " ", אופציונלי n As Integer = 1) As String arFragments = Split(txt, delim) LastWord = arFragments(UBound(arFragments) - n + 1) End Function  

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

=LastWord(txt ; delim ; n)

איפה

  • txt – תא עם טקסט מקור
  • תוחם - תו מפריד (ברירת מחדל - רווח)
  • n - איזו מילה יש לחלץ מהסוף (כברירת מחדל - הראשונה מהסוף)

המילה האחרונה

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

שיטה 3. Power Query

שאילתת כוח הוא תוסף חינמי מבית מיקרוסופט לייבוא ​​נתונים לאקסל כמעט מכל מקור ולאחר מכן הפיכת הנתונים שהורדת לכל צורה שהיא. העוצמה והקרירות של התוסף הזה כל כך גדולים שמיקרוסופט בנתה את כל התכונות שלה לתוך Excel 2016 כברירת מחדל. עבור Excel 2010-2013 Power Query ניתן להוריד בחינם מכאן.

המשימה שלנו להפריד את המילה האחרונה או הפרגמנט באמצעות מפריד נתון באמצעות Power Query נפתרת בקלות רבה.

ראשית, בואו נהפוך את טבלת הנתונים שלנו לטבלה חכמה באמצעות קיצורי מקלדת. Ctrl+T או פקודות בית - עיצוב כטבלה (בית - עיצוב כטבלה):

המילה האחרונה

לאחר מכן אנו טוענים את "הטבלה החכמה" שנוצרה לתוך Power Query באמצעות הפקודה משולחן/טווח (משולחן/טווח) כרטיסייה נתונים (אם יש לך Excel 2016) או בכרטיסייה שאילתת כוח (אם יש לך Excel 2010-2013):

המילה האחרונה

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

המילה האחרונה

לאחר לחיצה על OK המילה האחרונה תופרד לעמודה חדשה. ניתן להסיר את העמודה הראשונה המיותרת על ידי לחיצה ימנית על הכותרת שלה ובחירה להסיר (לִמְחוֹק). ניתן גם לשנות את שם העמודה הנותרת בכותרת הטבלה.

ניתן להעלות את התוצאות בחזרה לגיליון באמצעות הפקודה בית - סגור וטען - סגור וטען ל... (בית - סגור וטען - סגור וטען ל...):

המילה האחרונה

וכתוצאה מכך אנו מקבלים:

המילה האחרונה

ככה – זול ועליז, בלי נוסחאות ופקודות מאקרו, כמעט בלי לגעת במקלדת 🙂

אם הרשימה המקורית תשתנה בעתיד, יספיק ללחוץ לחיצה ימנית או להשתמש בקיצור מקלדת Ctrl+אחר+F5 לעדכן את הבקשה שלנו.


  • פיצול טקסט דביק לעמודות
  • ניתוח וניתוח טקסט עם ביטויים רגולריים
  • חילוץ המילים הראשונות מהטקסט עם הפונקציה SUBSTITUTE

השאירו תגובה