Øh, kan det ikke lige lade sig gøre, at lave Excel-arket med kørselsregnskabet, så det automatisk indsætter kilometerafstand mellem de to felter med fra-adressen og til-adressen?
Jo, naturligvis. Altid til tjeneste.
1. Få en Google Maps API Key
Gå til Google Cloud Platform . Hvis du ikke har en konto, kan du enten oprette en eller lade festen stoppe her. Du skal opgive kreditkort ved tilmelding, men vil man holdes helt risiko- og skadefri, så er det i opsætningen muligt at sætte en beløbsgrænse, der kan være 0 kr., så servicen blot stopper, hvis den månedlige gratis kvote bliver opbrugt. Et ganske pænt forbrug er gratis. Så vidt jeg husker kan du lave 2000 afstandsmålinger om dagen på den frie konto. – Men tjek selv priser og vilkår.
2. Aktiver Distance Matrix API
Når du er tilmeldt, skal du aktivere brug af Distance Matrix API .
Vælg Library i menuen i venstre side af dit dashboard:

Fra Filtermenuen vælg Maps:

Og nu kan du endelig aktivere Distance Matrix API’en.

Kopier til sidst din API-Nøgle til klippebordet ved at klikke på det lille ikon til højre for nøglen. Du finder den under menupunktet Credentials:

3. Åben Excel-arket
Find en afsidesliggende Celle og indtast følgende formel (du kan efterfølgende bruge Excels funktioner til at skjule og beskytte feltet):
=WEBTJENESTE(UDSKIFT(UDSKIFT("https://maps.googleapis.com/maps/api/distancematrix/xml?origins=$1&destinations=$2&mode=drive&key=[DIN_GOOGLE_API_KEY]&language=da";"$1";[FRA_ADRESSE_CELLE]);"$2";[TIL_ADRESSE_CELLE])))
Der er altså tre variabler, som skal indsættes i formlen:
- Din API-Nøgle
- Den celle hvor dit Fra-adresse er ( f.eks. B4)
- Den celle hvor din Til-adresse er (f.eks. C4)
Det vil være nogenlunde som:
=WEBTJENESTE(UDSKIFT(UDSKIFT("https://maps.googleapis.com/maps/api/distancematrix/xml?origins=$1&destinations=$2&mode=drive&key=xxxx-xxxxxxxxx-xxxxxxxx-xxxxxx&language=da";"$1";B4);"$2";C4)))
Har du allerede adresser stående i til- og fra-felterne, vil du se Feltet med Webtjenesten bliver erstattet med noget i retning af:
<?xml version=""1.0"" encoding=""UTF-8""?>
<DistanceMatrixResponse>
<status>OK</status>
<origin_address>Otte Ruds Gade, 8200 Aarhus, Danmark</origin_address>
<destination_address>Kastrupvej, 2300 København S, Danmark</destination_address>
<row>
<element>
<status>OK</status>
<duration>
<value>10751</value>
<text>2 timer 59 min.</text>
</duration>
<distance>
<value>192852</value>
<text>193 km</text>
</distance>
</element>
</row>
</DistanceMatrixResponse>
Vi har nu de nødvendige oplysninger, der bliver opdateret hver gang du skifter en adresse. Vi kan nu bruge funktionen FiltrerXML til at udtrække det ønskede. I det felt, hvor kilometerafstand skal gøres synligt indtastes derfor formlen
=FILTRERXML([CELLE_MED_WEBTJENESTEN];"//distance[1]/text")
Hvor du skal indsætte angivelse for det felt, hvor du har Webtjeneste-formlen indsat (f.ex C15):
=FILTRERXML(C15;"//distance[1]/text")
Ønsker du på tilsvarende vis et felt med anslået køretid mellem de to adresser, så anvend den tilsvarende formel:
=FILTRERXML(C15;"//duration[1]/text")
Slutresultatet ser f.eks. således ud:

Den korteste afstand mellem to punkter er som bekendt en lige linje, men den mest farbare og realistiske måles med Googles Distance Matrix API. God tur.