CVR-opslag i Google Sheets

Med et lille Apps Script får du en =CVR()-formel i Google Sheets, der henter navn, by, branche og meget mere direkte fra CVR-registret.

Opret formlen

  1. Åbn dit regneark, og vælg Udvidelser > Apps Script.
  2. Slet indholdet i Code.gs, og indsæt scriptet nedenfor.
  3. Gem projektet. Formlen er nu klar i regnearket.
javascript
/**
 * Henter et felt fra CVR-registret.
 * Eksempel: =CVR(A2; "name")
 *
 * @param {number} cvr CVR-nummer (8 cifre)
 * @param {string} field Feltnavn, fx "name", "city" eller "industrydesc"
 * @customfunction
 */
function CVR(cvr, field) {
  const cache = CacheService.getScriptCache();
  const key = "cvr_" + cvr;
  let json = cache.get(key);

  if (!json) {
    const res = UrlFetchApp.fetch("https://apicvr.dk/api/v1/" + cvr, { muteHttpExceptions: true });
    if (res.getResponseCode() === 404) return "Ikke fundet";
    if (res.getResponseCode() !== 200) return "Fejl " + res.getResponseCode();
    json = res.getContentText();
    cache.put(key, json, 21600); // 6 timer
  }

  const company = JSON.parse(json);
  const value = company[field || "name"];
  return Array.isArray(value) ? value.map(v => v.name).join(", ") : value;
}

Brug formlen

Står CVR-nummeret i A2, kan du skrive:

Bruger dit regneark engelske indstillinger, skal du adskille argumenterne med komma: =CVR(A2, "name").

Scriptet gemmer svar i 6 timer med CacheService, så flere kolonner med samme CVR-nummer kun giver ét kald.

Søg på navn

Tilføj denne funktion for at få en liste over hits med CVR-nummer, navn og branche. Resultatet fylder flere rækker og kolonner.

javascript
/**
 * Søger virksomheder på navn og returnerer CVR-nummer og navn.
 * Eksempel: =CVRSOEG("novo nordisk")
 * @customfunction
 */
function CVRSOEG(name) {
  const url = "https://apicvr.dk/api/v1/search/fuzzy/" + encodeURIComponent(name);
  const hits = JSON.parse(UrlFetchApp.fetch(url).getContentText());
  return hits.slice(0, 10).map(h => [h.cvr_number, h.name, h.industrytext]);
}
Tjek altid protected, før du bruger data til markedsføring. Er feltet true, har virksomheden frabedt sig reklamehenvendelser.

Ofte stillede spørgsmål

Hvorfor viser cellen "Ikke fundet"?

CVR-nummeret findes ikke i registret. Tjek at det har 8 cifre og ikke er formateret som et tal med tusindtalsseparator.

Er der en grænse for, hvor mange rækker jeg kan slå op?

Google begrænser, hvor mange URL-kald et script må lave pr. dag. Cachen hjælper, men del store lister op over flere dage.