Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1600to1604
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte neben einer Wortliste addieren

Werte neben einer Wortliste addieren
07.01.2018 22:13:58
Peter
Hallo miteinander,
habe das folgende Set-up:
Wortliste - Punkte
Wort 1 - 1
Wort 2 - 2
Wort 3 - 3
Wort 4 - 4
Text-Zelle - Wörter aus Wortliste - Punkte aus Wortliste
Text mit mehreren Wörtern - CountWortListe - AddWordScore
So, ich möchte jetzt:
1. Zählen wie oft in dem Text Wörter aus der Wortliste vorkommen
2. Wie die gesamte Score wäre (also wenn 2x Wort 1 vorkommt und 1x Wort 2 --> 2x1+2 = 4
Für 1. verwende ich folgende Funktion:

Function CountWortListe(Satz As String, Wortliste As Range) As Integer
Dim c As Range
For Each c In Wortliste
If InStr(Satz, c) > 0 Then
CountWortListe = CountWortListe + 1
End If
Next
End Function

2)
Hatte mir für die Score folgendes ausgedacht (zusätzlich noch Score als Range über die _ Wortliste + Score):

Function AddWordScore(Satz As String, Wortliste As Range, Score As Range) As Integer
Dim c As Range
For Each c In Wortliste
If InStr(Satz, c) > 0 Then
AddWordScore = AddWordScore + Application.WorksheetFunction.Vlookup(c, Score, 2, False)
End If
Next
End Function

Das scheint allerdings so nicht zu funktionieren. Hätte jemand einen Vorschlag wie ich den zweiten Teil ändern könnte?
Vielen Dank schon einmal!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte neben einer Wortliste addieren
08.01.2018 00:00:29
snb

Function F_snb(Satz, Wortliste)
For Each it In split(Satz)
F_snb = F_snb - (iserror(application.match(it,Wortliste,0))= false)
Next
End Function

AW:meine Interpretation
08.01.2018 14:28:08
Fennek
Hallo Peter,
snb's Code sind immer interessant, da wollte ich ihn nachvollziehen.
Annahmen:
- Wortlist in A6:A7, die Scores in B6:B7
- F ist die Anzahl der Treffer
- S die Summe der Punkte

Function F_snb(rng As Range)
Set WL = Range("A6:A7")
For Each it In Split(rng.Value)
F = F - (VBA.IsError(Application.Match(it, WL, 0)) = False) * 1
If Not VBA.IsError(Application.Match(it, WL, 0)) Then
S = S + WL.Cells(Val(Application.Match(it, WL, 0))).Offset(, 1)
End If
Next it
F_snb = F & ", " & S
End Function
mfg
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige