جستجو

ترفندهای کامپیوتری

حضرت علی (ع): «زَکوةُ العِلمِ نَشرُهُ؛ زکات علم نشر آن است».
وبلاگ "ترفندها" (سایت پی‌سی‌ترفند) برای عمل به این حدیث شریف و با هدف ارتقاء دانش و مهارت‌های مرتبط با رایانه در ۳۰ مهرماه ۱۳۹۱ ایجاد شده است. به امید آنکه مفید واقع شود.
ربات پی‌سی‌ترفند در تلگرام:
telegram.me/pctarfand_bot

خلاصه آمار

تبليغات

پربحث ترين ها

۲

معکوس کردن متن یا ترتیب کلمات موجود در یک سلول در اکسل

اکسل ماکرونویسی

معکوس کردن متن یا ترتیب کلمات موجود در یک سلول در اکسل

اگر در اکسل بخواهید ترتیب کلمات یک جمله یا عبارت را معکوس کنید چکار می‌کنید؟ مثلا عبارت "به سایت پی‌سی‌ترفند خوش آمدید" بصورت "آمدید خوش پی‌سی‌ترفند سایت به" مشاهده شود. همچنین ممکن است به دلیل خاصی نیاز داشته باشید که بخواهید یک متن را کاملا معکوس کنید و یا اینکه هنگام کپی اطلاعات از ورد یا صفحات وب به اکسل با مشکل معکوس شدن ناخواسته متون روربرو شده باشید مثلا عبارت "به سایت پی‌سی‌ترفند خوش آمدید" از آخر جمله به اول یعنی بصورت "دیدمآ شوخ دنفرت‌یس‌یپ تیاس هب" نمایش داده شود که در این حالت شما به روشی نیاز دارید که بتوانید عبارت فوق را به حالت اصلی برگردانید. در ادامه مطلب با پی‌سی‌ترفند همراه شوید تا با نحوه انجام این عملیات آشنا شوید.

با توجه به توضیحات و مثال‌های فوق‌الذکر معکوس کردن محتویات سلول‌ها در اکسل را در حالت (۱) معکوس کردن ترتیب کلمات یک عبارت (مثال اول در بالا) و حالت (۲) معکوس کردن کامل یک متن (مثال دوم در بالا) بصورت جداگانه در ادامه بررسی می‌کنیم.

حالت اول) معکوس کردن ترتیب کلمات یک عبارت

  • عبارت دو کلمه‌ای:

اگر تعداد کلمات محدود باشد مثلا نام و نام خانوادگی، می‌توان از توابع موجود در اکسل استفاده کرد و جای دو کلمه را تغییر داد. توابعی که باید از آن‌ها استفاده کرد توابع MID ،RIGHT ،LEFT ،FIND و LEN می‌باشد که نحوه استفاده از آن‌ها در اینجا و اینجا توضیح داده شده است. در واقع اینکار مشابه کاری است که قبلا در مطلبی با عنوان عوض کردن جای ارقام صحیح و اعشاری یک عدد در اکسل به آن اشاره کردم، تنها با این تفاوت که بجای نقطه جدا کننده ارقام صحیح و اعشاری، نام و نام خانوادگی با یک فاصله از هم جدا شده‌اند.

بنابراین برای معکوس کردن ترتیب کلمات در یک عبارت دو کلمه‌ای مانند نام و نام خانوادگی، می‌توان از یکی از فرمول‌های زیر استفاده کرد:

=MID(A1&" "&A1,FIND(" ",A1)+1,LEN(A1))
=RIGHT(A1,LEN(A1)-(FIND(" ",A1)))&" "&LEFT(A1,FIND(" ",A1)-1)
  • حالت کلی:

برای حالت کلی یعنی مستقل از تعداد کلمات عبارت (دو کلمه یا بیشتر) می‌توان از یکی از روش‌های زیر استفاده کنید:

روش ۱- ماکرونویسی

  

برای ایجاد ماکرو، کلیدهای Alt + F11 را فشار دهید یا از تب Developer قسمت code گزینه Visual Basic را انتخاب کنید. پنجره Microsoft Visual Basic ظاهر می‌شود. در این پنجره از تب Insert گزینه Module را انتخاب نمائید.

در پنجره جدید باز شده کدهای زیر را کپی کنید.

Sub ReverseWord()
'pctarfand.ir & tarfandha.blog.ir'
Dim Rng As Range
Dim WorkRng As Range
Dim Sigh As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Sigh = Application.InputBox("Symbol interval", xTitleId, ",", Type:=2)
For Each Rng In WorkRng
    strList = VBA.Split(Rng.Value, Sigh)
    xOut = ""
    For i = UBound(strList) To 0 Step -1
        xOut = xOut & strList(i) & Sigh
    Next
    Rng.Value = xOut
Next
End Sub

سپس روی دکمه doc-multiply-calculation-3 کلیک کنید یا کلید F5 را فشار دهید تا پنجره‌ی زیر ظاهر شود. ناحیه نوشته‌های اولیه (در تصویر زیر A1:A5) را انتخاب کنید.

سپس روی دکمه Ok کلیک کنید. در پنجره جدید باز شده عامل جداکننده کلمات را وارد کنید که در تصویر زیر ویرگول (,) می‌باشد. این عامل می‌تواند فاصله (Space) یا هر مورد دیگری باشد.

در پایان روی دکمه Ok کلیک کنید تا ترتیب کلمات در تمام سلول‌ها معکوس شود:

منبع: extendoffice.com

 
البته می‌توان بجای استفاده از کد فوق از کد زیر استفاده کرد که یک تابع جدید به توابع اکسل اضافه می‌کند.
Function ReverseWords(cell As Range, sign)
'pctarfand.ir & tarfandha.blog.ir'
Dim InputStr As String
Dim InputArray() As String
Dim OutputArray As String
Dim WordsCount As Integer
InputStr = cell.Value
sign1 = ""
InputArray = Split(InputStr, sign)
WordsCount = UBound(InputArray)
    For i = WordsCount To 0 Step -1
        ReverseWords = ReverseWords & sign1 & InputArray(i)
        sign1 = sign
    Next
End Function

پس از ساختن این ماکرو، تابع جدید ReverseWords به اکسل اضافه می‌شود. این تابع دارای دو ورودی است. (۱) متنی که می‌خواهید ترتیب کلمات آنرا وارونه کنید، (۲) عامل جداکننده کلمات. این عامل می‌تواند فاصله (Space)، ویرگول (,) یا هر مورد دیگری باشد. در تصویر زیر نحوه عملکرد این تابع را مشاهده می‌کنید:

منبع با تغییر: learnexcelmacro.com

 

روش ۲- با استفاده از افزونه Kutools for Excel

نحوه دانلود و استفاده از این افزونه را می‌توانید در اینجا مشاهده کنید.


حالت دوم) معکوس کردن کامل یک متن

  • ماکرونویسی

مراحل ساخت و اجرای ماکرو مشابه حالت قبل است. با این تفاوت که بجای کد بالا از کد زیر استفاده کنید:

Sub ReverseText()
'pctarfand.ir & tarfandha.blog.ir'
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    xValue = Rng.Value
    xLen = VBA.Len(xValue)
    xOut = ""
    For i = 1 To xLen
        getChar = VBA.Right(xValue, 1)
        xValue = VBA.Left(xValue, xLen - i)
        xOut = xOut & getChar
    Next
    Rng.Value = xOut
Next
End Sub

سپس روی دکمه doc-multiply-calculation-3 کلیک کنید یا کلید F5 را فشار دهید تا پنجره‌ی زیر ظاهر شود. ناحیه نوشته‌های اولیه (در تصویر زیر A1:A7) را انتخاب کنید.

سپس روی دکمه Ok کلیک کنید تا محتویات تمام سلول‌ها معکوس شود:

 
البته می‌توان بجای استفاده از کد فوق از کد زیر استفاده کرد که یک تابع جدید به توابع اکسل اضافه می‌کند.
Function Reverse(Text As String) As String
'pctarfand.ir & tarfandha.blog.ir'
Dim i As Integer
Dim StrNew As String
Dim strOld As String
strOld = Trim(Text)
For i = 1 To Len(strOld)
StrNew = Mid(strOld, i, 1) & StrNew
Next i
Reverse = StrNew
End Function

پس از ساختن این ماکرو تابع جدید Reverse به اکسل اضافه می‌شود که در تصویر زیر نحوه عملکرد آن را مشاهده می‌کنید:

منبع: superuser.com

 

عضویت در خبرنامه:

نظرات (۲)

  1. سایت بسیار زیبا و پر محتوایی دارید
    ادامه بدید حتما موفق میشید.
    از مدیریت سایت هم تشکر میکنم بخاطر مطالب داغ
    خوشحالیم که با گروه شما آشناشدیم
    به ما هم سری بزنید...
    http://Agahi90.ir
    با تشکر آگهی90

ارسال نظر

قبل از ارسال نظر به نکات زیر توجه کنید:

۱- با توجه با اینکه نظرات خصوصی شما امکان نمایش در سایت را ندارد، بنابراین هنگام ارسال نظر، گزینه "" را انتخاب نکنید. چون تنها راه پاسخگویی به آن از طریق ایمیل شما است که با توجه به مشغله کاری فرصت ارسال پاسخ از طریق ایمیل وجود ندارد.

۲- قبل از مطرح کردن سوالتان، مطلب فوق را با دقت مطالعه کنید. اگر پاسخ سوالتان را پیدا نکردید در سایت جستجو کنید، ممکن است در مطلب دیگر پاسخ سوالتان را پیدا کنید.

۳- تنها به سوالاتی پاسخ داده می‌شود که از نحوه حل آن‌ها اطلاع داشته باشم.

۴- نظراتی با مضمون زیر، صرفا تایید و نمایش داده می‌شود و به آن‌ها پاسخی داده نمی‌شود.

الف) در مورد پاسخ سوال شما اطلاعی نداشته باشم،

ب) پاسخ سوال شما در مطلب فوق وجود داشته باشد.

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
X بستن