LAMBDA להפיכת טקסט
קרה לכם שקיבלתם טקסט שכתוב הפוך? כלומר םולש במקום שלום?
הבעיה הזאת מתרחשת בעיקר בקבלת מידע מתוכנות חיצוניות.
במאמר הזה אראה לכם כיצד לבנות פונקציית LAMBDA להיפוך הטקסט.
אם זו הפעם הראשונה שאתם נתקלים ב LAMBDA, כדאי שתתחילו עם המאמר הזה:
מבוא ל LAMBDA
שלב ראשון – כתיבת הפונקציה
אם להודות על האמת, לא טרחתי לפצח את הנוסחה בעצמי, והעדפתי למצוא באינטרנט נוסחאות שעובדות.
חיפשתי בגוגל excel 365 text reverse וזו הנוסחה הראשונה שמצאתי:
=TEXTJOIN("",TRUE,MID(A1,SEQUENCE(LEN(A1),1,LEN(A1),-1),1))
אם תחפשו היטב, תוכלו למצוא עוד כמה נוסחאות שעושות את אותה העבודה. תוכלו לבחור בנוסחה שנוחה לכם.
בסוף המאמר תמצאו הסבר לדרך הפעולה של הפונקציה.
שלב שני – הפיכה ל LAMBDA
כשאני בוחנת את הפונקציה, אני רואה שיש בה משתנה אחד בלבד – A1, לכן ה LAMBDA שאצור תכיל משתנה אחד בלבד.
למשתנה הזה אקרא txt, כי מה שאמור להכנס אליו זה מחרוזת טקסט:
=LAMBDA(txt,TEXTJOIN("",,MID(txt,SEQUENCE(LEN(txt),,LEN(txt),-1),1)))
אני מזכירה לכם שכדי לבדוק את הפונקציה בגיליון לפני שאנחנו שומרים אותה במנהל השמות, נוסיף מיד לאחר הפונקציה סוגריים ובתוכם הערך או ההפניה, באופן הבא:
בתא A1 מופיע הערך, ובתא A2 הצגתי את הפונקציה שכתובה בתא A1, בעזרת הפונקציה FORMULATEXT.
אחרי שראינו שהכל עובד כראוי, אפשר לשמור את הפונקציה במנהל השמות:
נתתי לה את השם המשמעותי TextRev (אין משמעות לגודל האות. אני מעדיפה להשתמש באותיות גדולות וקטנות לנוחות הקריאה)
ותחת 'מפנה אל' הדבקתי את הפונקציה:
בדיקה בגיליון
במקום הפונקציה הארוכה שכתבתנו קודם, נכתוב את הפונקציה החדשה שיצרנו:
אני מזכירה לכם שהפונקציה תהיה תקפה רק לקובץ הנוכחי. אם תרצו שהיא תהיה זמינה בקובץ אחר,
כל מה שצריך לעשות זה להעתיק גיליון כלשהו מהקובץ שבו כתובה הפונקציה לקובץ החדש, ואז למחוק אותו.
הדרך להעתיק את הגיליון היא בלחיצה ימנית ובחירה ב'העברה או העתקה'
אם תרצו שהפונקציה תהיה זמינה בכל הקבצים, שמרו אותה בתבנית.
הערה חשובה – הפונקציה תהפוך את כל תכולת התא, כולל מספרים ואותיות לועזיות
הסבר לפונקציה
=TEXTJOIN("",TRUE,MID(A1,SEQUENCE(LEN(A1),1,LEN(A1),-1),1))
הדרך הנוחה לכתוב פונקציות היא מבפנים החוצה. זוהי גם הדרך שבה אקסל מחשב נוסחאות או פונקציות.
לכן נתחיל את כתיבת הפונקציה מ SEQUENCE שיוצר רצף של מספרים.
כדי לדעת מהו אורך המחרוזת, נשתמש בפונקציה LEN, שתחזיר לנו את מספר התווים שיש בתא.
במקרה של המילה 'םולש' הפונקציה LEN תחזיר לנו 4, כי יש במחרוזת 4 תווים (אותיות).
התחביר המלא של הפונקציה SEQUENCE הוא:
=SEQUENCE(Rows, Columns, Start, Step)
ובעצם מה שביקשנו מהאקסל זה ליצור רצף מספרים בן 4 שורות (אותו חישבנו בעזרת הפונקציה LEN),
עמודה אחת, כשהערך ההתחלתי הוא 4 (כלומר, מספר התווים במחרוזת), בצעדים של 1- (מינוס אחד), וזו התוצאה:
שימו לב שכדי לפשט את ההסבר השתמשתי בקבוע (מספר) 4, אולם בפונקציה עצמה המספר 4 נגזר מהחישוב של הפונקציה LEN.
בשלב השני השתמשנו בפונקציה MID שלוקחת תווים מאמצע המחרוזת.
אחרי שעטפנו את הפונקציה SEQUENCE בפונקציה MID, קיבלנו את המחרוזת הבאה:
וכל שנותר לנו לעשות זה לאחד את התאים הנפרדים לתא אחד, באמצעות הפונקציה TEXTJOIN: