Lieferantendaten liegen oft lange in einer Tabelle, bevor sie in einem Buchhaltungssystem ankommen: eine Liste, aus einem alten ERP exportiert, ein Formular, das neue Lieferanten ausfüllen, eine Datei, die ein Kollege aktuell hält. Vor einem Zahlungslauf lautet die nützliche Frage zu jeder Zeile nicht nur „Ist diese IBAN richtig aufgebaut?“, sondern „Zeigt sie auf eine Bank, die existiert, und auf welche?“.
Die IBANforge-Funktionen für Google Sheets beantworten das mit einer Formel. Sie tippen =IBAN_CHECK(A2:A200) neben eine Spalte mit IBANs, und fünf Spalten füllen sich: gültig, die Bank, der BIC, was das Register zum Bankcode sagt, und SEPA. Kein Code zu schreiben, kein Script zu pflegen.
Die vier Funktionen
| Formel | Gibt zurück |
|---|---|
=IBAN_VALID(A2:A200) | TRUE oder FALSE, eine Zeile pro Zelle |
=IBAN_BANK(A2:A200) | das Institut, das das nationale Register für den Bankcode nennt |
=IBAN_BIC(A2:A200) | den BIC, den das Register mit dem Bankcode paart, leer, wenn es keinen gibt |
=IBAN_CHECK(A2:A200) | fünf Spalten: gültig, Bank, BIC, Bankcode-Ergebnis, SEPA |
Französische und deutsche Aliase rufen denselben Code auf: IBAN_VALIDE, IBAN_BANQUE, IBAN_CONTROLE und IBAN_GUELTIG, IBAN_BANKNAME, IBAN_PRUEFUNG.
In fünf Minuten installiert
Die Funktionen sind ein Open-Source-Apps-Script und werden von Hand installiert. Im Google Workspace Marketplace stehen sie nicht, es gibt also keinen Store-Button.
- Laden Sie die drei Apps-Script-Dateien herunter und entpacken Sie sie. Öffnen Sie in Ihrer Tabelle Erweiterungen → Apps Script.
- Ersetzen Sie
Code.gs, legen Sie eine HTML-Datei namensSidebaran und fügen SieSidebar.htmlein. Blenden Sie in den Projekteinstellungenappsscript.jsonein und ersetzen Sie den Inhalt durch das mitgelieferte Manifest. Speichern Sie. - Führen Sie
ibfShowSidebareinmal im Editor aus und autorisieren Sie das Script. Zurück in der Tabelle fügen Sie Ihren Schlüssel in die Seitenleiste ein, niemals in eine Zelle. - Geben Sie
=IBAN_CHECK(A2:A200)neben Ihrer IBAN-Spalte ein und lassen Sie die fünf Spalten rechts davon leer.
Dieselben Schritte, mit zwei Test-IBANs zum Importieren, stehen in den Rezepten. Der Quellcode liegt auf GitHub.
Der Schlüssel
Die Funktionen senden Ihre IBANs an die Stapel-Route der API, und die braucht einen Schlüssel. Ein Schlüssel verlangt zum Start weder E-Mail noch Karte und gibt 200 Anfragen im Monat, sobald Sie ihn mit einer Adresse beanspruchen, die Sie auch lesen; die Schritte stehen unter API-Schlüssel. Eine IBAN zählt als eine Anfrage, egal wie groß der Stapel ist, in dem sie reist. Über das kostenlose Kontingent hinaus verfallen Prepaid-Guthaben nie, und der Pro-Plan deckt größere Dateien ab: siehe die Preisseite.
So sieht es an einer echten Liste aus
Sechs Zeilen: die Deutsche Bank in Berlin, eine Sparkasse, eine deutsche Bankleitzahl, die die Bundesbank stilllegt, ein deutscher Code, den sie nie vergeben hat, die erste IBAN mit vertauschten letzten zwei Ziffern und eine Schweizer IBAN der PostFinance.
| IBAN | Gültig | Bank | BIC | Bankcode-Ergebnis |
|---|---|---|---|---|
| DE65 1007 0000 0123 4567 89 | TRUE | Deutsche Bank | DEUTDEBBXXX | verified |
| DE94 1405 1000 0123 4567 89 | TRUE | Sparkasse Mecklenburg-Nordwest | NOLADE21WIS | verified |
| DE22 1306 1088 0123 4567 89 | TRUE | Raiffeisenbank Wismar -alt- | GENODEF1HWR | verified, retired |
| DE58 1234 5678 0123 4567 89 | TRUE | not_in_register (not_allocated) | ||
| DE65 1007 0000 0123 4567 98 | FALSE | checksum_failed | ||
| CH31 3000 0000 0000 0000 1 | TRUE | PostFinance AG | POFICHBEXXX | verified |
Das sind die ersten vier Spalten von =IBAN_CHECK, berechnet vom Code des Add-ons selbst (Code.gs, unverändert ausgeführt) aus den Antworten, die die API am 29. September 2026 gegeben hat. Die API lief lokal aus dem öffentlichen Repository, mit der Bundesbank-Datei vom September 2026 und dem BankMaster von SIX, gültig ab dem 1. September 2026. Die Kontonummern sind erfunden; das Urteil über den Bankcode hängt nicht an ihnen. Die fünfte Spalte, SEPA, ist hier weggelassen, denn sie listet die SEPA-Verfahren, über die die Bank erreichbar ist, und ein Teil davon stammt aus Registern, die dieser lokale Lauf nicht gelesen hat.
So lesen Sie die Ergebnisspalte
- verified: Das Register führt den Bankcode und nennt die Bank.
- verified, retired: Der Code existiert, aber die Bundesbank hat seine Löschung angekündigt. Die Zahlung kann heute noch durchgehen; bitten Sie den Lieferanten um neue Bankdaten, bevor das aufhört. Die vollständige Antwort der API nennt den Nachfolgecode (hier 13061078).
- not_in_register (not_allocated): Die Prüfziffern stimmen, und doch führt keine Bank diesen Code. Zahlen Sie nicht; die IBAN wurde irgendwo auf dem Weg erfunden oder falsch abgeschrieben.
- checksum_failed, mit FALSE in der ersten Spalte: ein Tippfehler. Fordern Sie die IBAN neu an.
Eine Nuance kann die Spalte nicht zeigen. In den Ländern, in denen die API das nationale Register vollständig liest (Deutschland, Österreich, Belgien, Slowakei, Tschechien, Bulgarien, Schweiz und Liechtenstein), sind „verified“ und „not_allocated“ das Wort des Registers. Anderswo wird die Bank aus einer zusammengesetzten Karte benannt, die aus BIC-Verzeichnissen gebaut ist, und ein Code, der darin fehlt, beweist nichts; das Feld authoritative der API sagt, welcher Fall vorliegt, und die API-Seite zeigt es.
Was es sendet und was es kostet
- Nichts verlässt das Tabellenblatt außer den IBAN-Zeichenketten, die die Funktionen erhalten. Der Schlüssel bleibt in den Eigenschaften Ihres eigenen Scripts, nie in der Tabelle.
- IBANs gehen in Stapeln zu 100 an
POST /v1/iban/batch, eine Anfrage pro IBAN. - Ergebnisse können sechs Stunden pro Nutzer zwischengespeichert werden, sodass ein Neuberechnen der Tabelle doppeltes Bezahlen vermeiden kann; dass dieser Cache hält, ist nicht garantiert.
Was es Ihnen nicht sagt
Ob ein Konto existiert und auf welchen Namen es lautet. Das Register kennt die Bank, nicht das Konto. Den Namen des Zahlungsempfängers prüfen die Banken beim Bezahlen (die Empfängerüberprüfung, Verification of Payee); die Funktionen behaupten das nie.
Weitere Wege ohne Code
Dieselbe Prüfung passt in andere Werkzeuge, die Sie vielleicht schon nutzen. In n8n ruft ein aus einer Datei importierter Workflow mit zwei Nodes die API auf, und ein Community-Node deckt selbst gehostetes n8n ab (n8n-Rezept). In Odoo 18 auf Ihrem eigenen Server oder auf Odoo.sh füllt ein Open-Source-Modul den BIC und den Banknamen der Bankverbindung eines Partners aus, wenn die API sie ermitteln kann (Odoo-Rezept). Und für eine einzelne IBAN liest die Seite Welche Bank gehört zu dieser IBAN? den Bankcode in Ihrem Browser, ganz ohne Schlüssel.