bin auf der Suche nach einer benutzerdefinierten Funktion
"Ergbnis(S,E)", die aus der Zahlenreihe 2,3,4,5,6,7,1
als Ergebnis ein String ergibt, s. Datei:
https://www.herber.de/bbs/user/112787.xlsx
Danke
Gruß Erwin
Function Ergebnis2(ByVal S As String, ByVal E As String) As String
Dim GBlock As String
Dim Block As String
GBlock = "S1,2,3,4,5,6,7S2,3,4,5,6,7,1S3,4,5,6,7,1,2S4,5,6,7,1,2,3S5,6,7,1,2,3,4S6,7,1,2,3, _
4,5S7,1,2,3,4,5,6"
Block = Mid(GBlock, InStr(1, GBlock, "S" & S) + 1, 13)
Ergebnis2 = Mid(Block, 1, InStr(1, Block, E))
End Function
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
1 | mit Function | ohne Hilsspalten | mit Hilfspalten | Hilfs | -Werte | ||||||||||
2 | Beispiel | 2 | 3 | 4 | 5 | 6 | 7 | 1 | Ergebnis | Ergebnis | Ergebnis | Ergebnis | Pos-S | Pos-E | 2,3,4,5,6,7,1, |
3 | 1 | S | E | "3,4,5,6,7" | "3,4,5,6,7" | "3,4,5,6,7" | "3,4,5,6,7" | 4 | 12 |
Formeln der Tabelle | ||||||||||||||
|
Option Explicit
Public Function fncTextSpezial(rngWerte As Range, rngSuche As Range, _
Optional sStart As String = "S", Optional sEnde As String = "E") As String
Dim Ergebnis As String, Vergleich As String, Vergleich_SE As String
Dim PosS As Integer, PosE As Integer
Dim Spalte As Integer
On Error GoTo Fehler
For Spalte = 1 To rngWerte.Columns.Count
Vergleich = Vergleich & rngWerte.Cells(1, Spalte) & ","
Vergleich_SE = rngSuche.Cells(1, Spalte).Text
If InStr(1, Vergleich_SE, sStart) > 0 Then
PosS = Spalte * 2
End If
If InStr(1, Vergleich_SE, sEnde) > 0 Then
PosE = Spalte * 2
End If
Next
If PosE >= PosS Then
Ergebnis = """" & Mid(Vergleich, PosS - 1, PosE - PosS + 1) & """"
Else
Ergebnis = """" & Mid(Vergleich, PosS - 1)
Ergebnis = Ergebnis & Left(Vergleich, PosE - 1) & """"
End If
fncTextSpezial = Ergebnis
Exit Function
Fehler:
fncTextSpezial = "#!Fehler#"
End Function
A | B | C | D | E | F | G | H | I | J | K | L | M | N | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2 |
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 |
Function Folge(Texte As Range, Kennung As Range, Optional TrKz As String = ",") As String
Dim i As Long, j As Long
Dim VerkettenEin As Boolean
For j = 1 To Kennung.Cells.Count * 2
i = ((j - 1) Mod Kennung.Cells.Count) + 1
Select Case Kennung(i)
Case "SE", "ES"
Folge = Texte(i)
Exit Function
Case "S"
Folge = Texte(i)
VerkettenEin = True
Case "E"
If VerkettenEin Then
Folge = Folge & TrKz & Texte(i)
Exit Function
End If
Case Else
If VerkettenEin Then
Folge = Folge & TrKz & Texte(i)
End If
End Select
Next
End Function
die Formel in der Zelle I3 lautet dann:
=folge($B$2:$H$2;B3:H3,",")