• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Excel Funktion erstellen

Hi,

ich habe mal eine ganz blöde Frage, deren Lösung wahrscheinlich zu einfach ist und ich deshalb nicht drauf komme.

Ich habe mir einige Excel-Tools gebastelt, um Koordinaten von Mysteries nach Eingabe der Variablen automatisch auszurechnen.

Gibt es eine Funktion, um mir die Alphabets-Position von Buchstaben automatisch auswerfen zu lassen? Ich komm grad nicht drauf :???:

Vorgestellt hatte ich mir das so:

In Spalte A stehen die Buchstaben von A-Z, in Spalte B die dazugehörigen Zahlen von 1-26.
In Spalte C oder in einer Reihe ab 27, stehen die Lösungsbuchstaben. In einer anderen Reihe werden mir dann die Zahlenwerte ausgespuckt. Ich habs schon mit =SVERWEIS() versucht, aber da gibt es Probleme, da ja in Spalte A Buchstaben und in Spalte B Zahlen stehen.
Die "wenn" Funktion ist mir zu aufwändig, oder?


Hat da jemand einen Tip?

Danke schon mal vorab

Dirk
 

Schnueffler

Geoguru
Nein, nicht, dass ich wüsste. Ich habe aber mal ein VBA-Makro geschrieben, welches das übernehmen kann. Damit hast Du dann eine eigene Funktion, die Du problemlos in Deinem Sheet verwenden kannst.
 
Weizenkeim1 schrieb:
In Spalte A stehen die Buchstaben von A-Z, in Spalte B die dazugehörigen Zahlen von 1-26.
In Spalte C oder in einer Reihe ab 27, stehen die Lösungsbuchstaben. In einer anderen Reihe werden mir dann die Zahlenwerte ausgespuckt. Ich habs schon mit =SVERWEIS() versucht, aber da gibt es Probleme, da ja in Spalte A Buchstaben und in Spalte B Zahlen stehen.

ich habs bei mir so aufgebaut:
Spalte A: A-Z
Spalte B: 1-52
Spalte C: 2x A-Z

so kann ich mir über Sverweis(Zelle mit dem Buchstabe;Suchbereich (Spalte A Buchstabe A bis Spalte B Zahl 26);2;Falsch) den Zahlenwert des Buschstaben ausgeben lassen.

Weiterhin kann ich über Angabe eines Zahlenwertes die Buchstaben im Alphabet verschieben und automatisch codieren lassen. Bei Zahl 13 ist das die ROT13 Verschlüsselung für den Hint
Sverweis(Zelle mit deZahl;Suchbereich (Spalte B Zahl 1 bis Spalte C Buchstabe 2. Z);2;Falsch)
Bei Bedarf kann ich die Datei gerne zuschicken. Kann zum Beispiel auch damit Peilungen berechnen oder Entfernung und Richtung zwischen 2 Punkten
 

NoPogo

Geomaster
Ein wenig Indirekt schon.
Man kann sich von einem Buchstaben den ASCII Code zurück geben lassen. davon noch 63 abziehen und man hat den gewünschten Wert.
Funktioniert erstmal nur bei Großbuchstaben. Bei Kleinbuchstaben müsste man 96 abziehen. Sollte sich aber mit einem IF THEN lösen lassen.
 

Schnueffler

Geoguru
Code:
Public Function BWW(szWort As String) As Integer

    Dim nWert As Integer
    

    If Len(szWort) = 0 Then
        BWW = 0
        Exit Function
    End If
    
    For n = 1 To Len(szWort)
        Buchstabenwert = Asc(Mid(szWort, n, 1))
        If (Buchstabenwert >= 65 And Buchstabenwert < 90) Or (Buchstabenwert >= 97 And Buchstabenwert < 122) Then
            If Buchstabenwert >= 65 And Buchstabenwert <= 90 Then
                Buchstabenwert = Buchstabenwert - 64
            Else
                Buchstabenwert = Buchstabenwert - 96
            End If
            BWW = BWW + Buchstabenwert
        Else
            Select Case Buchstabenwert
                Case 228
                    BWW = BWW + 27
            End Select
        End If
    Next n
End Function
 

larualis

Geocacher
Uralter Thread, ich weiß.
Schnueffler, vielen Dank für die Vorlage! So etwas habe ich lange gesucht. Ich habe Dein Script ein klein wenig entschlackt und für ö, ü, ß und die Ziffern ergänzt:

Code:
Function BWW(szWort As String) As Integer

    Dim nWert As Integer
    BWW = 0

    If Len(szWort) = 0 Then
        BWW = 0
        Exit Function
    End If
   
    For n = 1 To Len(szWort)
        Buchstabenwert = Asc(Lcase(Mid(szWort, n, 1)))
        If (Buchstabenwert >= 97 And Buchstabenwert < 122) Then
            Buchstabenwert = Buchstabenwert - 96
            BWW = BWW + Buchstabenwert
        Elseif (Buchstabenwert >= 48 And Buchstabenwert < 57) Then
       	    Buchstabenwert = Buchstabenwert - 48
            BWW = BWW + Buchstabenwert
        Else
            Select Case Buchstabenwert
                Case 228
                    BWW = BWW + 27
                Case 246
                    BWW = BWW + 28
                Case 252
                    BWW = BWW + 29
                Case 223
                    BWW = BWW + 30
            End Select
        End If
    Next n
End Function

Wenn man die Ziffern nicht berücksichtigen will, einfach den Elseif-Block (3 Zeilen) auskommentieren. Will man andere Sonderzeichen berücksichtigen oder ä, ö, ü, ß andere Werte zuweisen, dann den untersten Block editieren oder ergänzen.

Viele Grüße und sorry für's "Leichenfleddern". ;)
larualis
 

larualis

Geocacher
In meinem Script war leider ein Fehler, hier die korrigierte Fassung:

Code:
REM  *****  BASIC  *****

Function BWW(szWort As String) As Integer

    Dim nWert As Integer
    BWW = 0

    If Len(szWort) = 0 Then
        BWW = 0
        Exit Function
    End If
   
    For n = 1 To Len(szWort)
        Buchstabenwert = Asc(Lcase(Mid(szWort, n, 1)))
        If (Buchstabenwert > 96 And Buchstabenwert < 123) Then
            Buchstabenwert = Buchstabenwert - 96
            BWW = BWW + Buchstabenwert
        Elseif (Buchstabenwert > 47 And Buchstabenwert < 58) Then
        	Buchstabenwert = Buchstabenwert - 48
            BWW = BWW + Buchstabenwert
        Else
            Select Case Buchstabenwert
                Case 228
                    BWW = BWW + 27
                Case 246
                    BWW = BWW + 28
                Case 252
                    BWW = BWW + 29
                Case 223
                    BWW = BWW + 30
            End Select
        End If
    Next n
End Function
 
Oben