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

Forumthread: Vorzeichenwechsel finden

Vorzeichenwechsel finden
30.01.2017 12:04:06
Kliewe
Hallo zusammen,
ich habe eine Reihe von Zahlungen in einer Zeile.
Die Zahlungen starten negativ, drehen sich dann ins positive um, variabel!
Was ich suche: Die erste SPALTE (Spaltennummer) mit einem positiven Wert.
Bis zu dieser Spaltennummer soll nämlich später mein Diagramm laufen.
Kann man mit "find" nach dem Vorzeichenwechsel suchen?!
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ohne {} mit Strg-Umschalt-Eingabe eingeben
30.01.2017 12:44:05
lupo1
{=MIN(WENN(A2:F2>0;SPALTE(A2:F2)))}
AW: ohne {} mit Strg-Umschalt-Eingabe eingeben
30.01.2017 12:54:30
Kliewe
Hallo lupo 1,
diese Matrixfunktion kenne ich.
Allerdings möchte ich das Auslesen gerne mit VBA machen.
Also eine variable Deklarieren, die als Wert eben die Spaltennummer enthält, wo der Wert positiv ist.
Diese Variable dient dann als Endpunkt meines Diagramms
Anzeige
evtl. mit Zählenwenn ...
30.01.2017 12:46:08
Matthias
Hallo
Tabelle1

 ABCDEFGHIJK
1-5-4-3-2-1012345
2      x    


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
und nun willst Du Spalte(7) haben ?
Was soll mit 0 passieren.
Kommen negative und positive Werte auch durcheinander vor,
oder gehen sie immer von (-) ins (+) ?
Gruß Matthias
Anzeige
AW: evtl. mit Zählenwenn ...
30.01.2017 12:56:07
Kliewe
Genau, jetzt will ich Spalte 7 haben!
Am besten als Variable. "ersteSpalte = 7" und diese 7 geht dann auf die xAchse meines Diagramms
-0 kommt nicht vor, nur plus und minus
-Zahlungen sind sortiert. von - nach +
dann mit VBA ...
30.01.2017 13:05:35
Matthias
Hallo
Option Explicit Public x Sub test() For x = 1 To 255 If Cells(1, x) > 0 Then Exit For End If Next MsgBox x End Sub Gruß Matthias
Anzeige
AW: dann mit VBA ...
30.01.2017 13:20:05
Kliewe
Funktioniert wunderbar. Und das so einfach...
Irgendwie habe ich heute ein Brett vorm Kopf, tausend dank!!!!
AW: Vorzeichenwechsel finden
30.01.2017 12:53:23
Daniel
Hi
wenn die Liste aufsteigend sortiert ist, dann als Formel mit
=Vergleich(0;1:1;1)+1
das gibt dir die Spaltennummer mit dem ersten Wert größer 0.
in VBA dann mit Worksheetfunction.Match(0, Rows(1), 1) + 1

aber wie gesagt, dass nur wenn die Liste aufsteigend sortiert ist.
Gruß Daniel
Anzeige
AW: Vorzeichenwechsel finden
30.01.2017 13:21:08
Kliewe
Die Worksheetfunction.Match hat etwas Probleme gemacht, habe es mit der Version von Matthias gelöst, trotzdem tausend dank :-)
;
Anzeige
Anzeige

Infobox / Tutorial

Vorzeichenwechsel in Excel finden


Schritt-für-Schritt-Anleitung

Um den ersten Vorzeichenwechsel in einer Zeile zu finden und die entsprechende Spaltennummer zu erhalten, kannst Du folgende Methoden anwenden.

  1. Mit einer Excel-Formel:

    • Verwende die folgende Formel in einer Zelle:
      =MIN(WENN(A2:F2>0;SPALTE(A2:F2)))
    • Diese Formel sucht nach dem ersten positiven Wert in den Zellen A2 bis F2 und gibt die Spaltennummer zurück. Um die Formel korrekt auszuführen, musst Du sie als Matrixformel eingeben, indem Du nach der Eingabe Strg + Umschalt + Eingabetaste drückst.
  2. Mit VBA:

    • Du kannst auch ein einfaches VBA-Skript verwenden, um den Vorzeichenwechsel zu identifizieren. Hier ist ein Beispiel:
      Option Explicit
      Public x
      Sub test()
       For x = 1 To 255
           If Cells(1, x) > 0 Then
               Exit For
           End If
       Next
       MsgBox x
      End Sub
    • Dieses Skript durchläuft die Zellen in der ersten Zeile und gibt die Spaltennummer des ersten positiven Wertes in einer Nachricht aus.

Häufige Fehler und Lösungen

  • Fehler: Die Formel gibt einen Fehler zurück oder zeigt eine falsche Spaltennummer an.

    • Lösung: Stelle sicher, dass die Daten in der Zeile korrekt formatiert sind und keine leeren Zellen zwischen den Zahlen stehen.
  • Fehler: Das VBA-Skript funktioniert nicht.

    • Lösung: Vergewissere Dich, dass Du die Makros in Excel aktiviert hast. Manchmal kann es auch hilfreich sein, den VBA-Editor zu überprüfen, ob es Fehler im Code gibt.

Alternative Methoden

Eine weitere Möglichkeit, den Vorzeichenwechsel zu finden, ist die Verwendung der VERGLEICH-Funktion, insbesondere wenn die Liste aufsteigend sortiert ist. Verwende die folgende Formel:

=VERGLEICH(0;A1:F1;1) + 1

Diese Formel gibt die Spaltennummer des ersten Wertes, der größer als 0 ist, zurück.


Praktische Beispiele

Angenommen, Du hast folgende Werte in Zeile 1:

-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5
  • Mit der Formel =MIN(WENN(A1:K1>0;SPALTE(A1:K1))) erhältst Du 7, was die Spaltennummer des ersten positiven Wertes ist.
  • Mit dem VBA-Skript wird ebenfalls 7 als Ergebnis angezeigt, wenn Du die Funktion ausführst.

Tipps für Profis

  • Wenn Du häufig mit Vorzeichenwechseln arbeitest, kann es hilfreich sein, eine benutzerdefinierte Funktion in VBA zu erstellen, die diese Berechnung automatisiert.
  • Achte darauf, die Eingabewerte zu validieren, um sicherzustellen, dass sie das erwartete Format haben, bevor Du die Berechnungen durchführst.

FAQ: Häufige Fragen

1. Wie kann ich den Vorzeichenwechsel in einer gesamten Tabelle finden? Du kannst die oben genannten Formeln in einer Schleife oder in mehreren Zellen anwenden, um alle Zeilen gleichzeitig zu überprüfen.

2. Funktioniert das auch in älteren Excel-Versionen? Ja, die meisten der genannten Funktionen sind in Excel 2007 und späteren Versionen verfügbar. VBA ist ebenfalls in diesen Versionen unterstützt.

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