جستجو

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

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

خلاصه آمار

تبليغات

پربحث ترين ها

۷

تبدیل اعداد انگلیسی به فارسی و بالعکس در اکسل

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

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

  • تبدیل اعداد انگلیسی به فارسی:

نحوه فارسی کردن اعداد در نمودارهای اکسل قبلا در مطلبی تحت عنوان "فارسی کردن اعداد در نمودارهای اکسل Excel" شرح داده شده است.

اما برای فارسی کردن اعداد در جداول یا همان صفحه گسترده اکسل، راحت‌ترین راه تغییر فونت اعداد از انگلیسی به فونت فارسی است. اما اگر با انجام این کار تغییری صورت نگرفت از یکی از دو روش زیر استفاده کنید:

۱- با استفاده از کد تغییر فرمت

سلول یا سلول‌هایی که می‌خواهید اعداد درون آن‌ها فارسی شود را انتخاب کنید و سپس راست کلیک کرده و گزینه Format Cells را انتخاب کنید تا پنجره Format Cells باز شود. در قسمت Custom، یکی از کدهای زیر را وارد کنید و روی Ok کلیک کنید.

[$-3010000]0.00
[$-3000401]0.00

[$-2000401]0.00
[$-2000000]0.00

۲- با استفاده ماکرو

با تشکر از کاربری با نام کاربری morema که کد زیر از کدی که ایشان برای من ارسال کردند استخراج شده است.

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

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

Sub En2Fa()
'pctarfand.ir & tarfandha.blog.ir'
Dim WorkRng As Range
Dim s As String
Dim ch As String
Dim s1 As String
xTitleId = "Tarfandha-En2Fa"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each C In WorkRng
    s1 = ""
    s = C.Value
        For i = 1 To Len(s)
        ch = Mid(s, i, 1)
        If 48 <= AscW(ch) And AscW(ch) <= 57 Then
        ch = ChrW(AscW(ch) + 1728)
        End If
        s1 = s1 + ch
        Next i
    C.Value = s1
    Next C
End Sub

سپس دکمه  یا کلید F5 را فشار دهید. پس از این کار پنجره Tarfandha-En2Fa ظاهر می‌شود.

محدوده مورد نظرتان را انتخاب کنید و روی Ok کلیک کنید تا نتیجه زیر حاصل شود.

 

توجه: اعداد درون کد ماکرو که با رنگ زرد مشخص شده‌اند در واقع کد یونیکد اعداد ۰ (صفر) و ۹ در زبان انگلیسی هستند (منبع).


  • تبدیل اعداد فارسی به انگلیسی:

اعداد در اکسل در حالت پیش فرض بصورت انگلیسی هستند اما گاها پیش می‌آید که اعداد درون جداول یا نمودار اکسل به هر دلیلی مثلا کپی گرفتن از جای دیگری، به زبان فارسی هستند. مشابه حالت قبل راحت‌ترین راه تغییر فونت اعداد به یک فونت انگلیسی است. اما اگر با انجام این کار تغییری صورت نگرفت از یکی از دو روش زیر استفاده کنید:

۱- با استفاده از کد تغییر فرمت

سلول یا سلول‌هایی که می‌خواهید اعداد درون آن‌ها انگلیسی شود را انتخاب کنید و سپس راست کلیک کرده و گزینه Format Cells را انتخاب کنید تا پنجره Format Cells باز شود. در قسمت Custom، ابتدا بررسی کنید که هیچ کدی مشابه کدهای حالت قبل قرار نداشته باشد. اگر قرار دارد آن را پاک کنید و یا حالت General را انتخاب کنید. اگر پس از پاک کردن اعداد همچنان فارسی هستند در قسمت Custom، کد زیر را وارد کنید و روی Ok کلیک کنید.

[$-1000409]0.00

۲- با استفاده ماکرو

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

Sub Fa2En()
'pctarfand.ir & tarfandha.blog.ir'
Dim WorkRng As Range
Dim s As String
Dim ch As String
Dim s1 As String
xTitleId = "Tarfandha-Fa2En"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each C In WorkRng
    s1 = ""
    s = C.Value
        For i = 1 To Len(s)
        ch = Mid(s, i, 1)
        If 1776 <= AscW(ch) And AscW(ch) <= 1785 Then
        ch = ChrW(AscW(ch) - 1728)
        End If
        s1 = s1 + ch
        Next i
    C.Value = s1
    Next C
End Sub

سپس دکمه  یا کلید F5 را فشار دهید تا پنجره Tarfandha-Fa2En ظاهر شود. مشابه حالت قبل محدوده مورد نظرتان را انتخاب کنید و روی Ok کلیک کنید تا تغییرات انجام شود.

توجه: اعداد درون کد ماکرو که با رنگ زرد مشخص شده‌اند در واقع کد یونیکد اعداد ۰ (صفر) و ۹ فارسی هستند (منبع).

چنانچه پس از اجرای کد فوق هیچ تغییری مشاهده نکردید احتمالا اعداد شما عربی هستند بنابراین بجای کدهای یونیکد اعداد فارسی در کد بالا از کد یونیکد اعداد عربی استفاده کنید. عدد ۱۶۳۲ بجای ۱۷۷۶ و ۱۶۴۱ بجای ۱۷۸۵. عدد ۱۷۲۸ را نیز با ۱۵۹۳ جایگزین کنید.

 

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

نظرات (۷)

  1. با سلام.
    یک سوال خیلی تخصصی امیدوارم کسی بلد باشه در مورد data validation.
    فرض کنید ما در یک ستون اطلاعت کد ملی رو وارد میکنیم . حالا میخواهیم در کاستوم دیتا ولیدشن با وارد کردن کد countif(f:f;f1)=1 بگیم که در این ستون کد ملی تکراریی نباشه چون کد ملی منحصر به فرد هست و در صورت وارد شدن کد ملی تکراری خب ارور میده و ما متوجه اشتباه میشیم.حالا ما به یک کد دیگه هم احتیاج داریم که بگیم کد ملی ده رقم داره' ولی ما از کد اول استفاده کردیم و کد دومی رو نمیشه وارد کرد.
    سوال من: ایا راهی وجود داره برای یک ستون دوبار از دیتا ولیدشن استفاده کرد؟ چگونه؟
    اگر راهی ندارد .میشه دو کد را تو یک فرمول نوشت تا با یک دیتا ولیدشن دو کار را انجام داد؟؟
    با تشکر
    • پاسخ:

      سلام
      از کد زیر برای ستون A استفاده کنید:

      =AND(ISNUMBER(A1),LEN(A1)=10,COUNTIF(A:A,A1)<=1)

      منبع: contextures.com
      موفق باشید.
  2. با سلام جوابی که به من در ایمیل دادیم رو خودم میدونستم.
    من منظورم این بود که راهی باشه که نخوام تعداد صفر اول اعداد رو دستی وارد کنم.
    و اینکه معقول نیست من برای ده هزار سلول این تنظیمات رو انجام بدم و دونه دونه چک کنم که اول این سلول یه صفر باشه و اول سلول دیگه دو صفر باشه. ممکنه یه سلول اولش صفر نداشته باشه باید رو این سلول تنظیمات کد رو ویرایش کنم خیلی زمان بره. راه حلی دارید؟؟
    • پاسخ:

      سلام
      در حالت عدد انگلیسی هم باید برای هر سلول تعداد صفرها را جداگانه تایپ کنید.
      اگر دلیل انجام این کار را همراه با مثال توضیح دهید شاید بتوانم راه دیگری پیشنهاد کنم.
      موفق باشید.
  3. سلام. من مشکلم اینه که وقتی نمودار Tredline رو رسم میکنم معادله بصورت فارسی میاد چطوری میتونم انگلیسیش کنم تو اکسل؟؟؟؟
    • پاسخ:

      سلام
      در این مطلب توضیح داده شده است چگونه اعداد معادله خط را فارسی کنیم. مشکل شما برعکس حالت فوق یعنی انگلیسی کردن اعداد فارسی است. بررسی کنید در مسیر گفته شده کدی وارد نشده باشد یا از کدی که در مطلب بالا برای انگلیسی کردن اعداد فارسی گفته شده است استفاده کنید.
      موفق باشید.
  4. سلام
    ممنون از این پست خیلی خوب، یه روش دیگه هم هست، استفاده از فونتهای IPT مثل، IPT.Nazanin و ...
    فقط مشکل این روش اینه که با تغییر سیستم، فونت هم باید همراه باشه، البته فونت رو هم میشه به فایل اتچ کرد.
  5. سلام
    بسیار بسیار سپاسگزارم استاد عزیز
    کاراکتر decimal symbol را تغییر دادم درست شد .
    پاینده باشید
  6. با سلام و عرض ادب
    ممنون به خاطر مطلبی که گذاشتید ، آموزش هاتون قابل تقدیر است .
    یه سؤال در مورد نرم افزار ورد
    در جمع اعداد در جداول وقتی می خام چند تا عدد را باهم جمع می کنم یعنی از طریق گزینه ی فرمول در تب Layout یه خطایی را نشون می ده خطای !Invalid Character Setting
    لطفاً بنده را راهنمایی بفرمایید
    • پاسخ:

      سلام
      با توجه به سایت‌های زیر علت این مشکل این است که کاراکتر درنظر گرفته شده برای decimal symbol و list separator یکسان است. ترجیحا کاراکتر list separator را تغییر دهید (آموزش).
      موفق باشید.
      answers.microsoft.com
      https://support.microsoft.com/en-us/kb/284921
  7. اوو .. مطلب مفیدی بود! ممنون
    گرچه ما ربات ها نیازی به همچین ترفندایی نداریم ..
    منظورم اینه که تبدیل اعداد واسه ما بسادگی گرفتن جزر تعداد کلمات استفاده شده توی این پسته :دی
    به منم سر میزنید؟
    خوشحال میشم

ارسال نظر

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

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

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

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

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

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

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

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