Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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

ersten nicht zutreffenden Wert ermitteln

ersten nicht zutreffenden Wert ermitteln
28.08.2008 09:37:37
Wladimir
Hallo zusammen,
ich bin neu hier, aber bereits habe ein paar Eure Tipps geholt und jetzt hoffe, dass ich mit Eurer Hilfe mein Problem löse.ich habe im Excel eine Zeile mit den Werten z. B.:in A1 steht 6B1 - KC1 - KD1 - 5E1 - KF1 - UUsw.Also:6 K K 5 K U ...Mit der Formel:=Vergleich("K";a1:z1;0)bekomme ich die erste zutreffende Zelle, also, B1, aber ich brauche die Zelle, die nach dem zweiten "K" ist (in meinem Beispiel: Zelle D1). Also, brauche die erste nicht zutreffende Zelle. Was nach "K" steht, ist variabelund deshalb kann man diesen Wert nicht in der Formel festlegen.Kann man das ohne Makros realisieren?Hoffentlich habe ich mich verständlich ausgedrückt.Danke im VorausFreundliche GrüßeWladimir

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
=BEREICH.VERSCHIEBEN() owT
28.08.2008 09:43:09
David
AW: =BEREICH.VERSCHIEBEN() owT Ersten nicht zutref
28.08.2008 10:31:06
Wladimir
Hallo David,
vielen Dank für Deinen Tipp.
Ich habe diese Formel nachgeschaut und getestet.
nach meinem Vergleich wurde wirklich Wert von der Zelle daneben angezeigt, aber in dieser Zelle nicht "5", sonder wieder "K" steht, bringt dann dies mir nichts. Ich brauche den ersten nicht zutreffenden Wert. Da diese Werte alle variabel sind, weiß ich nicht, wie bereich.verschieben mir helfen kann.
Oder mache ich etwas falsch mit bereich.verschieben?
Freundliche Grüße
Wladimir
AW: =BEREICH.VERSCHIEBEN() owT Ersten nicht zutref
28.08.2008 10:45:00
David
Ok, hatte ich ein wenig zu flüchtig gelesen. Versuch's mal so:
{=INDEX(A1:AA1;1;MIN(WENN(BEREICH.VERSCHIEBEN(A1;;MIN(WENN(A1:AA1="K";SPALTE(A1:AA1);""))-1;; ANZAHL2(A1:AA1))"K";SPALTE(BEREICH.VERSCHIEBEN(A1;;MIN(WENN(A1:AA1="K";SPALTE(A1:AA1);""))-1;; ANZAHL2(A1:AA1)));""))) }
Gruß
David
Anzeige
AW: =BEREICH.VERSCHIEBEN() owT Ersten nicht zutref
28.08.2008 11:27:50
Wladimir
Hallo David,
vielen Dank für Deine Formel. Sie zeigt leider #Wert! an. Ich versuche gerade die Ursache zu finden.
Freundliche Grüße
Wladimir
AW: =BEREICH.VERSCHIEBEN() owT Ersten nicht zutref
28.08.2008 11:31:23
David
Das ist eine Matrixformel, d.h. die {} nicht mit eingeben und die Formel mit STRG-SHIFT-ENTER abschließen!
Sorry, hatte gedacht, das brauche ich bei Level 'Excel gut' nicht zu erwähnen.
Gruß
David
AW: =BEREICH.VERSCHIEBEN() owT Ersten nicht zutref
28.08.2008 11:39:51
Wladimir
Hallo David,
vielen Dank! Es hat geklappt!
Du hast recht. Vielleicht habe ich mich doch überschätzt. :-)
Nochmals vielen Dank.
Freundliche Grüße
Wladimir
AW: ersten nicht zutreffenden Wert ermitteln
28.08.2008 10:36:00
Klaus
Hallo Wladimir,
die Zahl direkt unter dem zweiten "K" ermittelts du mit dieser Formel:
=INDIREKT("A"&VERGLEICH("K";BEREICH.VERSCHIEBEN(A1;VERGLEICH("K";A:A;);0;65536-VERGLEICH("K";A:A;);); )+VERGLEICH("K";A:A;)+1)
Grüße,
Klaus M.vdT.
Anzeige
nimm davids lösung....
28.08.2008 10:54:00
Klaus
... meine geht nur wenn die werte in A1, A2, A3 stehen.
Grüße,
Klaus M.vdT.
... oder doch meine :-)
28.08.2008 10:56:27
Klaus
So sollte es in Spalten funktionieren:
=INDIREKT("A"&VERGLEICH("K";BEREICH.VERSCHIEBEN(A1;VERGLEICH("K";1:1;);0;265-VERGLEICH("K";1:1;);); ) +VERGLEICH("K";1:1;)+1)
Grüße,
Klaus M.vdT.
AW: ... oder doch meine :-)
28.08.2008 11:31:00
Wladimir
Hallo Klaus,
vielen Dank für Deine Formel. Sie zeigt leider immer noch #nv an. Ich versuche gerade die Ursache zu finden.
Freundliche Grüße
Wladimir
AW: ... oder doch meine :-)
28.08.2008 11:35:00
Klaus
Hallo Wladimir,
es wird Zeit für dich, eine Beispieltabelle hochzuladen :-)
Grüße,
Klaus M.vdT.
AW: ... oder doch meine :-)
28.08.2008 11:43:00
Wladimir
Hallo Klaus,
ich bedanke mich für Deine Hilfe. Davids Lösung hat mir geholfen.
Freundliche Grüße
Wladimir
Anzeige
AW: ... oder doch meine :-)
28.08.2008 11:50:00
David
Aufbauend auf deine Formel ginge es auch so:
{=INDEX(A1:N1;1;MIN(WENN(INDIREKT(ADRESSE(1;VERGLEICH("K";1:1;0))&":"&ADRESSE(1;256-VERGLEICH("K"; 1:1;0)))"K";SPALTE(INDIREKT(ADRESSE(1;VERGLEICH("K";1:1;0))&":"&ADRESSE(1;256-VERGLEICH("K";1:1;0)) ));""))) }
Meiner Meinung nach ist das nur durch eine Matrixformel zu lösen, da laut Vorgabe der Bereich nicht in Spalte A beginnt. Du musst somit erst ermitteln, in welcher Spalte das erste K steht. Beginnend mit dieser Spalte musst du nacheinander alle Spalten prüfen, ob sie ungleich "K" ist. Und dieses 'nacheinander prüfen' geht nur mit einer Matrixformel.
Gruß
David
Anzeige
AW: ... oder doch meine :-)
28.08.2008 12:42:33
Klaus
Hallo David,
laut Vorgabe beginnt der Bereich in Spalte A, ich zitiere:

in A1 steht


macht aber nichts, ich freue mich das Wladimir geholfen wurde - und deine Formel schau ich mir nachher nochmal in Ruhe an, dan lerne ich auch noch was ^^
Grüße,
Klaus M.vdT.

AW: ... oder doch meine :-)
28.08.2008 13:06:00
David
Mmh, hab ich mich blöd ausgedrück. Ich meinte mit "Bereich" den Bereich ab dem ersten "K" und das war nicht Spalte A.
Gruß
David
AW: ... oder doch meine :-)
28.08.2008 13:29:26
Klaus
Hallo David,
nur durch eine Matrixformel zu lösen
Wladimir wird zwar nicht mehr mitlesen, aber nochmal für die Ehre und fürs Archiv eine Lösung OHNE Matrix:
=BEREICH.VERSCHIEBEN(A1;0;1+VERGLEICH("K";1:1;)+VERGLEICH("K";BEREICH.VERSCHIEBEN(A1;0;VERGLEICH("K"; 1:1;)+1;1;255-VERGLEICH("K";1:1;));))
getestet:
https://www.herber.de/bbs/user/54995.xls
sonnige Grüße,
Klaus M.vdT.
Anzeige
AW: ... oder doch meine :-)
28.08.2008 13:36:00
David
Sorry, aber für MEINE Ehre muss ich doch wieder widersprechen. :-)
Deine Formel geht nicht, sobald irgendwo zweimal "K" hintereinander steht (siehe auch Vorgabe von Wladimir = 6KK5KU). Wenn ich diese Folge in deiner Test-Tabelle eingebe, liefert er Zelle F1 zurück und nicht wie gefordert D1.
Gruß
David
AW: ... oder doch meine :-)
28.08.2008 13:41:27
David
Deine Formel würde so funzen:
=BEREICH.VERSCHIEBEN(A1;0;VERGLEICH("K";1:1;)+VERGLEICH("K";BEREICH.VERSCHIEBEN(A1;0;VERGLEICH("K"; 1:1;);1;255-VERGLEICH("K";1:1;));))
Allerdings mit Einschränkungen:
1. kommt im Bereich nur ein einziges "K" vor, gibt's einen #NV-Fehler
2. kommt im Bereich das "K" drei- oder mehrmal hintereinander vor, gibt er "K" als Ergebnis.
Die Idee an sich ist nicht schlecht, allerdings recht unflexibel. Sobald die Datenbasis anders aussieht, ist's leider vorbei.
Gruß
David
Anzeige
AW: ... oder doch meine :-)
28.08.2008 15:21:17
Klaus
Hallo David,
du hast leider recht.
Konsequenterweise hättest du in deiner Verbesserung die 255 gegen eine 256 austauschen müssen, sonst gibt es einen Fehler wenn der gesuchte Wert in IV steht ^^
Trotzdem ohne Matrixformel:
In die Zelle
=BEREICH.VERSCHIEBEN(A1;0;-1+nachxy(1:1;"K";2))
und in ein Modul:

Function nachXY(MyRng As Range, mySearch As String, myAmm As Long) As Integer
Dim r As Range
Dim tick As Integer
Dim tack As Integer
tick = 0
For Each r In MyRng
If r = mySearch Then tack = tack + 1
tick = tick + 1
If tack >= myAmm Then
If r  mySearch Then Exit For
End If
Next 'r
nachXY = tick
End Function


OK, geschummelt, VBA .....
Grüße,
Klaus M.vdT.

Anzeige
AW: ... oder doch meine :-)
28.08.2008 14:02:00
Wladimir
Hallo Klaus und David,
ich lese immer noch mit. Ich lerne gerne stets was dazu.
Freundliche Grüße
Wladimir
@Klaus
28.08.2008 11:38:47
David
Ich glaube nicht, dass das auf diese Art und Weise geht. Wenn ich mit der Formelauswertung deine Formel analysiere, wird dort die Teil-Formel
VERGLEICH("K";$A$3:$A$265;) ausgeführt. Da du dort nur in der Spalte A suchst, kann das nicht funktionieren!
Gruß
David
AW: ersten nicht zutreffenden Wert ermitteln
28.08.2008 10:58:00
Wladimir
Hallo Klaus,
vielen Dank für Deine Formel, aber sie zeigt leider #nv an.
Freundliche Grüße
Wladimir

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige