Ik zou dit oplossen met een custom functie in VBA die een regular expression gebruikt om de getallen uit de string te halen.
Om dit te doen moet je:
1.) In Excel in de "Developer" menu optie het "Visual Basic" icoon selecteren.
2.) In de VBA editor kan je dan rechts klikken op het VBAProject en insert "Module" selecteren.
3.) Selecteer de Module en plak daar de volgende code in:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
| Public Function GetLowestValue(strInputText As String) As Integer
Dim objRegEx As Object
Dim objRegExMatches As Object
Dim intCounter As Integer
Dim intReturnValue As Integer
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.pattern = "\d+"
objRegEx.Global = True
objRegEx.MultiLine = True
objRegEx.ignorecase = True
Set objRegExMatches = objRegEx.Execute(strInputText)
If objRegExMatches.Count > 0 Then
For intCounter = 0 To objRegExMatches.Count - 1
If intCounter = 0 Then
intReturnValue = objRegExMatches.Item(intCounter)
Else
If objRegExMatches.Item(intCounter) < intReturnValue Then
intReturnValue = objRegExMatches.Item(intCounter)
End If
End If
Next
End If
GetLowestValue = intReturnValue
Set objRegExMatches = Nothing
Set objRegEx = Nothing
End Function |
4.) In excel zelf kan je nu de custom functie "GetLowestValue" aanroepen (=GetLowestValue(E2)), met als argument de text uit jouw voorbeeld. Je krijgt als uitkomst van de formule het laagste getal.