התקשרו אלינו: 052-2928949
ימים א'-ה' בין השעות 9:00-17:00

התקשרו אלינו: 052-2928949 א-ה 9:00-17:00

מדריך לבניית REGEX באקסל 365 – אבני בניין ודוגמאות

אקסל 365

מדריך לבניית REGEX באקסל 365 – אבני בניין ודוגמאות

אקסל 365

איך כותבים REGEX באקסל

תקציר המאמר:

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

למד לבנות ביטויים רגולריים (REGEX) באקסל 365 שלב-אחר-שלב: אבני בניין בסיסיות, חזרות, עוגנים, קיצורים ודוגמאות מעשיות לחלץ ולנקות נתונים בקלות.

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

אז איך בונים REGEX – צעד אחרי צעד

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

"אבני הלגו"

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

אבני הלגו הנפוצות

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

סימן: [0-9]
משמעות: ספרה אחת בין אפס לתשע. נשתמש בו כאשר אנחנו רוצים לוודא שקיימת ספרה בודדת בתוך הטקסט שלנו במקום כלשהו, לדוגמה – תו ביקורת, גרסת משנה, קוד קטגוריה וכד'.
אפשר כמובן גם להגביל את הטווח לדוגמה, [0-5] ואז המשמעות היא ספרה אחת בין אפס לחמש.
דוגמה:

=REGEXTEST("7","[0-9]")

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

=REGEXTEST("A7B","[0-9]")

ואילו כאן נקבל ערך FALSE, מכיוון שהטקסט לא מכיל ספרה:

=REGEXTEST("ABC","[0-9]")

סימן: [A-Z]
משמעות: אות גדולה אחת באנגלית
דוגמה: בדיקה שהטקסט מכיל לפחות אות אחת גדולה
במקרה הזה נקבל TRUE, מכיוון שקיימת אות גדולה באנגלית:

=REGEXTEST("P@ssw0rd","[A-Z]")

ואילו במקרה הזה נקבל FALSE, מכיוון שאין אף אות גדולה באנגלית:

=REGEXTEST("secure1","[A-Z]")

סימן: [a-z]
משמעות: אות קטנה אחת באנגלית
דוגמה: בדיקה שהטקסט מכיל לפחות אות אחת קטנה
במקרה הזה נקבל TRUE, מכיוון שקיימת אות קטנה באנגלית:

=REGEXTEST("secure1","[a-z]")

ואילו במקרה הזה נקבל FALSE , מכיוון שלא קיימת אף אות גדולה באנגלית:

=REGEXTEST("p@ssword","[A-Z]")

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

=REGEXTEST("bat","b.t")

תוצאות שיקבלו את הערך TRUE הן לדוגמה bat, bit, bot, אך boat יחזיר ערך false מכיוון שישנם שני תווים בין ה-b ל-t.

סימן: ^
משמעות: הכל חוץ מ… כלומר – כל תו שאינו אחד מהתווים המצוינים.
[0-5^] לדוגמה, משמעותו שאסור שאף אחד מהתווים 0-5 יופיעו במחרוזת. התו יופיע לפני התווים שבהם אסור להשתמש
דוגמה:
אם אנחנו רוצים לוודא שהטקסט שונה מאפס, נשתמש בתחביר הזה ונקבל את הערך TRUE:

=REGEXTEST("7","[^0]")

ובמקרה הזה אנחנו רוצים לוודא שאף אחת מהספרות 0-5 לא מופיעה בטקסט, וגם כאן, נקבל TRUE:

=REGEXTEST("A8B","[^0-5]")

ובמקרה הזה נקבל FALSE, משום שאנחנו מבקשים ערך ששונה מאפס, בעוד שבמחרוזת מופיע אפס:

=REGEXTEST)"0","[^0]")

מספר החזרות

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

=REGEXTEST("123","[0-9]+")

ואילו הפונקציה הזו תחזיר FALSE, כי לא קיים כאן רצף ספרות:

=REGEXTEST("ABC","[0-9]+")

סימנים נוספים:

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

=REGEXTEST("colour","colou?r")

האות u היא אופציונלית, ותלויה בדרך שבה אתם כותבים את המילה color
* (כוכבית) – רצף תווים אופציונלי
{n} – התו צריך לחזור n פעמים בדיוק
דוגמה:
אנחנו מעוניינים לחזור על 4 ספרות ברצף

REGEXTEST("2025","[0-9]{4}")

{,n} – התו צריך לחזור n פעמים או יותר
{n,m} – התו צריך לחזור בין n ל m פעמים
| – או. לפחות אחת מהאפשרויות חייבת להופיע

קיצורים

השימוש בסוגריים המרובעים מאפשר לנו לכתוב טווחים, לדוגמה [0-9] מציין את כל הטווח שבין 0 ל-9, אבל גם מאפשר להגביל אותו, לדוגמה [3-5], כלומר- הטווח שבין 3 ל-5.
אם אנחנו מעוניינים בטווח השלם, אפשר להשתמש בקיצור d\ שמשמעותו 0-9

קיצורים נוספים:

D\ – כל מה שהוא לא ספרה
w\ – אותיות גדולות, קטנות והספרות 0-9
W\ – כל מה שהוא לא w\
s\ – תו לבן (רווח, טאב)
הערה חשובה
אם רוצים לחפש סימנים שה REGEX משתמש בהם, צריך לכתוב לפניהם \ כדי לסמן לתוכנה שמדובר בסימן עצמו, ולא בתו שמשמש את ה-REGEX.
לדוגמה, אם נרצה לוודא שקיימת נקודה עשרונית, אך הנקודה היא סימן שמשמש את ה REGEX כ"ג'וקר", נכתוב זאת כך:

=REGEXTEST("1.75","\.")

הלוכסן ההפוך אומר שמדובר בנקודה אמיתית, ולא בסימן הג'וקר

ולסיכום

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

שאלות ותשובות בנושא אבני הבניין של REGEX

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

שאלה:
כיצד ניתן להגדיר בתוך התבנית חיפוש של תו שאינו אחד מהתווים המצוינים?
תשובה:
כדי לבצע שלילה של תווים מסוימים, משתמשים ב[^] לפני התווים שאותם רוצים להוציא מהכלל. לדוגמה [0^]

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

דילוג לתוכן