Code:
Sub ChrWeights() ' https://www.excelfox.com/forum/showthread.php/2872-Appendix-Thread-App-Index-Rws()-Clms()-Majic-code-line-Codings-for-other-Threads-Tables-etc)-TEST-COPY?p=21746&viewfull=1#post21746
Rem 1 These arrays are according to the original question Available
Dim Weights() As Variant, Letters() As Variant
' A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
Let Weights() = Array(1, 5, 3, 1, 4, 3, 2, 1, 6, 4, 5, 3, 2, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 2)
Let Letters() = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
' 1b) test string example
Dim ZAC As String
Let ZAC = "ZAC" ' This is a demo example text string
Rem 2 String to array
Dim UniCrud As String: Let UniCrud = StrConv(ZAC, Conversion:=vbUnicode) ' "Z" & vbNullChar & "A" & vbNullChar & "C" & vbNullChar
Let UniCrud = Left(UniCrud, Len(UniCrud) - 1) ' "Z" & vbNullChar & "A" & vbNullChar & "C"
Dim Letas() As String: Let Letas() = Split(UniCrud, vbNullChar) ' { "Z" , "A" , "C" }
Rem 3 Match
Dim MtchRes() As Variant
Let MtchRes() = Application.Match(Letas(), Letters(), 0) ' { 26, 1, 3 }
Rem 4 Index
Dim arrOut() As Variant
Let arrOut() = Application.Index(Weights(), 1, MtchRes()) ' { 2, 1, 3 }
Rem 5
Dim Some As Long: Let Some = Application.Sum(arrOut()) ' 6
End Sub
Sub ChrWeights_()
Rem 1 These arrays are according to the original question Available
' '
Dim Weights() As Variant, Letters() As Variant
' A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
Let Weights() = Array(1, 5, 3, 1, 4, 3, 2, 1, 6, 4, 5, 3, 2, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 2)
Let Letters() = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
' 1b) test string example
Dim ZAC As String
Let ZAC = "ZAC" ' This is a demo example text string
Rem 2 String to array
'Dim UniCrud As String: Let UniCrud = StrConv(ZAC, Conversion:=vbUnicode) ' "Z" & vbNullChar & "A" & vbNullChar & "C" & vbNullChar
' Let UniCrud = Left(UniCrud, Len(UniCrud) - 1) ' "Z" & vbNullChar & "A" & vbNullChar & "C"
'Dim Letas() As String: Let Letas() = Split(UniCrud, vbNullChar) ' { "Z" , "A" , "C" }
Rem 3 Match
'Dim MtchRes() As Variant
' Let MtchRes() = Application.Match(Letas(), Letters(), 0) ' { 26, 1, 3 }
Rem 4 Index
'Dim arrOut() As Variant
' Let arrOut() = Application.Index(Weights(), 1, MtchRes()) ' { 2, 1, 3 }
Rem 5
Dim Some As Long: Let Some = Application.Sum(Application.Index(Weights(), 1, Application.Match(Split(Left(StrConv(ZAC, Conversion:=vbUnicode), Len(StrConv(ZAC, Conversion:=vbUnicode)) - 1), vbNullChar), Letters(), 0))) ' 6
End Sub
Sub ChrWeights_pressie1()
Rem 1 These arrays are according to the original question Available
Dim Weights() As Variant, Letters() As Variant
' A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z
Let Weights() = Array(1, 5, 3, 1, 4, 3, 2, 1, 6, 4, 5, 3, 2, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 2)
Let Letters() = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")
Dim ZAC As String ' 1b) test string example
Let ZAC = "ZAC" ' This is a demo example text string
Dim Some As Long: Let Some = Application.Sum(Application.Index(Weights(), 1, Application.Match(Split(Left(StrConv(ZAC, Conversion:=vbUnicode), Len(StrConv(ZAC, Conversion:=vbUnicode)) - 1), vbNullChar), Letters(), 0))) ' 6
End Sub
Sub ChrWeights_pressie2()
Dim Some As Long: Let Some = Application.Sum(Application.Index(Array(1, 5, 3, 1, 4, 3, 2, 1, 6, 4, 5, 3, 2, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 2), 1, Application.Match(Split(Left(StrConv(ZAC, Conversion:=vbUnicode), Len(StrConv("ZAC", Conversion:=vbUnicode)) - 1), vbNullChar), Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), 0))) ' 6
End Sub
Bookmarks