بررسی صحت شماره کارت های بانکی از ۱۶ رقم تشکیل شده اند که شامل ۴ بخش می باشد و هر بخش برای منظوری در نظر گرفته شده که در ادامه به آن خواهیم پرداخت و بررسی می کنیم که آیا شماره کارت ۱۶ رقمی در اکسل درست وارد شده است یا خیر؟ کارت بانکی هم مانند کارت ملی از الگوریتمی خاص ایجاد شده است.
- 6 رقم اول: نشان دهنده بانک صادر کننده کارت (BIN) هستند.
- 2 رقم بعدی: نشان دهنده نوع کارت است (مانند کارت هدیه و...).
- 7 رقم بعدی: شناسه منحصر به فرد برای هر کارت می باشد.
- رقم آخر: کنترل کننده کارت بانکی است.
با توجه به این بخشها، میتوانید با بررسی صحت هر بخش، صحت کارت بانکی را بررسی کنید. در واقع، رقم آخر به صورت الگوریتمی به سایر رقمها وصل شده و با استفاده از یک فرمول ریاضی، تشخیص صحت کارت بانکی را میدهد. در صورتی که شماره کارت ۱۶ رقمی درست وارد شده باشد، الگوریتم کارت بانکی باید بررسی کند که آیا این شماره کارت معتبر است یا خیر.
الگوریتم موجود در کارت بانکی و نحوه تشخیص:
اگر قبل از اینکه بخواهیم تراکنش انجام دهیم بتوانیم صحت شماره کارت بانکی وارد شده را تشخیص دهیم بسیار مفید خواهد بود ، خب برای اینکه بفهمیم کارت وارد شده در سیستم بانکی وجود دارد یا نه باید از الگروریتمی که در ادامه وجود دارد بهره ببریم.
- ابتدا باید اعدادی که موقعیت مکانی فرد دارند ( عدد اول و سوم و … تا پانزدهم ) را تک به تک در ۲ ضرب کنیم.
- اگر حاصل ضرب بزرگتر از عدد ۹ شد باید عدد ۹ را از آن کم کنیم .
- حاصل محاسبات فوق را با اعدادی که در موقیعت زوج قرار دارند ( عدد دوم و چهارم و ششم و…تا شانزدهم ) جمع کنیم .
- اگر عدد به دست آمده قابل تقسیم به ۱۰ بود و باقیمانده نداشت ، کارت وارد شده صحیح است.
کارت بانکی در اکسل
فرمول استفاده شده در اکسل به صورت زیر است:
این فرمول با استفاده از تابع IF و تابع MOD شماره کارت وارد شده را بررسی می کند. ابتدا 16 رقم اول شماره کارت را در یک رشته قرار می دهد، سپس این رشته را با 2 توان ردیف های مختلف آرایه در ضرب می کند و مجموع حاصل را محاسبه می کند. سپس با استفاده از تابع MOD اعداد حاصل را بر 10 تقسیم می کند و با رقم آخر شماره کارت مقایسه می کند. اگر برابر بودند، پیغام "شماره کارت معتبر است" نمایش داده می شود، در غیر این صورت پیغام "شماره کارت نامعتبر است" نمایش داده می شود
=IF(MOD(10-LEFT(D2&"0000000000000000",16)*{1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768},10)=RIGHT(D2), "شماره کارت معتبر است", "شماره کارت نامعتبر است") |
این مطلب را هم بخوانید: بررسی درست بودن کد ملی در اکسل
رنگی کردن شماره کارتهای اشتباه:
- ستونی که در آن شماره کارت ملی وارد شده را انتخاب کنید
- به کاندیشنال فرمتینگ Conditional Formatting بروید.
- روی Manage Rules کلیک کرده و New Rule را انتخاب کنید.
- در پنجره باز شده گزینه Use a formula … را انتخاب کنید.
- فرمول زیر را در آنجا قرار دهید.
MOD( |