Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel / Code – Ergänzung - @Matthias G ?

Formel / Code – Ergänzung - @Matthias G ?
22.12.2005 14:03:48
Baro
Hallo Ihr freundlichen Helfer,
gesucht wird eine Ergänzungs-Formel für Excel die folgendes Problem löst:
Noch eine Ergänzungsfrage zu diesem Thread
11.12.2005 01:32:17 Baro - Zähle Anzahl der “+“ wenn vorher x,y,z mal “–“ t707198.htm
Das Ergebnis bzw. der Code von Matthias ist perfekt und funktioniert. Nochmals besten Dank!
Diese Abfrage soll auch so beibehalten werden!
Zusätzlich möchte ich jetzt noch zwei differenzierte Abfragen (Teilmengen) durchführen.
-------------------------------KOPIE---------------------------------------
Folgenden Code ins rechts erschienene Codefenster kopieren:

Function APlus(AnzMinus As Integer, Bereich As Range) As Long
Dim plus As Integer
Dim minus As Integer
Dim x As String
Dim z As Range
For Each z In Bereich
x = z.Value
If x = "-" Then
minus = minus + 1
ElseIf x = "+" Then
If minus = AnzMinus Then plus = plus + 1
minus = 0
End If
Next z
APlus = plus
End Function

Jetzt VB-Editor wieder schießen.
Nun kannst du die benutzerdefinierte Funktion einfach in einer Zelle verwenden:
=APlus(1;E21:E100)
Gruß Matthias
-------------------------------KOPIE-ENDE--------------------------------------
Mit dieser Formel [=APlus(1;E21:E100)] werden die unterschiedlichen “+“ Folgen in Beispielspalte “E“ abgefragt.
Die abgefragten “+“ beziehen sich u.a. auf a l l e Angaben in der Beispielspalte “D“.
In der Beispielspalte “D“ stehen in den Zellen Buchstaben (M, R, T) und Buchstaben-Zahlenkombinationen (K1,2 oder S4,5)
und Leerzellen.
So ergeben sich in Spalte “D“ zwei Gruppen
- 1x nur Groß-Buchstaben (6 verschiedene Stück)
- 1x Buchstaben-Zahlenkombinationen (ebenfalls 6 verschiedene Stück)
Dies nur zur Erklärung. Die beiden Gruppen sollen nun zusätzlich separat abgefragt werden.
1. Aufgabe:
[=APlus(1;E21:E100)] wenn in Spalte D2:D100 M oder R oder T
2. Aufgabe:
[=APlus(1;E21:E100)] wenn in Spalte D2:D100 K1,2 oder K4,5
Trotz vieler Versuche kann ich die Aufgabe nicht lösen.
Wenn eine VBA-Lösung in Frage kommt, bitte wie Matthias formulieren – für mich Anfänger – Danke!
Für Eure Gedanken und Bemühungen
vielen Dank im Voraus
Baro
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Einfacher formuliert ?
23.12.2005 15:35:53
Baro
https://www.herber.de/forum/archiv/708to712/t711979.htm
--------------------------------------------------------------------------------------
Einfacher formuliert?
Wie verbinde oder integriere ich
Den VBA Code =APlus(1;E21:E100)
aus:
----------------------------------------------------------------

Function APlus(AnzMinus As Integer, Bereich As Range) As Long
Dim plus As Integer
Dim minus As Integer
Dim x As String
Dim z As Range
For Each z In Bereich
x = z.Value
If x = "-" Then
minus = minus + 1
ElseIf x = "+" Then
If minus = AnzMinus Then plus = plus + 1
minus = 0
End If
Next z
APlus = plus
End Function

----------------------------------------------------------------
mit der Zusatzabzfrage:
nur WENN in Spalte “D“ ein M oder R oder T steht
(D2:D699={"M"."R"."T"})
Für Eure Gedanken und Bemühungen
vielen Dank im Voraus
Baro
Anzeige
AW: Einfacher formuliert ?
24.12.2005 03:06:22
Reinhard
Hi Baro,
meinst du so:
'Wie verbinde oder integriere ich
'Den VBA Code =APlus(1;E21:E100)
'aus:
Function APlus(AnzMinus As Integer, Bereich As Range) As Long
Dim plus As Integer
Dim minus As Integer
Dim x As String
Dim z As Range
For Each z In Bereich
x = z.Value
If InStr("MRT", z.Offset(0, -1)) > 0 Then
If x = "-" Then
minus = minus + 1
ElseIf x = "+" Then
If minus = AnzMinus Then plus = plus + 1
minus = 0
End If
End If
Next z
APlus = plus
End Function
'mit der Zusatzabzfrage:
'nur WENN in Spalte “D“ ein M oder R oder T steht
'(D2:D699={"M"."R"."T"})

Gruß
Reinhard
ps:Das Forum lebt auch von Rückmeldungen.
Anzeige
AW: Einfacher formuliert ?
24.12.2005 08:49:39
Baro
https://www.herber.de/forum/archiv/704to708/t707198.htm
---------------------------------------------------------------------------------------
Hallo Reinhard,
so war es leider nicht gemeint.
Deine Ergänzung zählt den Abstand der “MRT“ voneinander wenn in Spalte E ein “+“ steht.
Das ist nicht gewollt.
Es soll weiterhin der Abstand der “+“ gezählt werden (wie bisher) aber nur wenn gleichzeitig “MRT“ in Spalte D steht!
Außerdem soll die bisherige, erste (übergeordnete) Abfrage erhalten bleiben.
Dies ist mit dem Code so nicht möglich.
Ich bräuchte dafür eine weitere benutzerdefinierte Funktion. (Sonnst - Mehrdeutiger Name: APlus)
Danke und schöne Festtage
Baro
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige