Skip to main content



Formula:



IF(

LEN(TODO_REPLACE_WITH_IBAN) > 0,

IF(

REGEX_MATCH(

SUBSTITUTE(TODO_REPLACE_WITH_IBAN, ' ', ''),

'^(?:((?:IT|SM)\d{2}[A-Z]{1}\d{22})|(NL\d{2}[A-Z]{4}\d{10})|(LV\d{2}[A-Z]{4}\d{13})|((?:BG|GB|IE)\d{2}[A-Z]{4}\d{14})|(GI\d{2}[A-Z]{4}\d{15})|(RO\d{2}[A-Z]{4}\d{16})|(MT\d{2}[A-Z]{4}\d{23})|(NO\d{13})|((?:DK|FI)\d{16})|((?:SI)\d{17})|((?:AT|EE|LU|LT)\d{18})|((?:HR|LI|CH)\d{19})|((?:DE|VA)\d{20})|((?:AD|CZ|ES|MD|SK|SE)\d{22})|(PT\d{23})|((?:IS)\d{24})|((?:BE)\d{14})|((?:FR|MC|GR)\d{25})|((?:PL|HU|CY)\d{26}))$'

),

1,

-1

),

0

)





Documentation:



This formula checks if the structure of TODO_REPLACE_WITH_IBAN is correct (each country has its own specification).


It only considers countries that are within the SEPA area.





Specifications:







Outputs:





  • 1: Has a valid SEPA IBAN structure


  • 0: Is empty


  • -1: Has an invalid SEPA IBAN structure






Testing










Open sourced at airtable-utils/is-bank-SEPA-IBAN-structure-valid.txt at master · UnlyEd/airtable-utils · GitHub

Thanks for sharing! Because of the post topic (you’re sharing a solution, not asking a question), I moved it to the “Show and Tell” category.


Reply