Supportnet / Forum / Tabellenkalkulation
Indirekte WENN - Formel
Frage
Einen wunderschönen guten Morgen,
ich bräuchte mal kurz eine kleine Hilfe.
Meine Problem:
Ich habe eine Feld (C1) das mit 1 gefüllt werden soll, wenn z.B. A1>0. Mein Problem ist, dass ich die WENN-Formel nicht in C1 schreiben kann, da es auch sein kann, dass ich C1 noch manuell einen höheren Wert eintragen muss. Somit muss die Formel in einem anderen Feld stehen und sich nur auf die beiden Felder beziehen....habe ich mir gedacht... klappt aber nicht. Hier meine Versuch
In z.B. in D1 =WENN(A1>0;C1="1";C1="0")
Irgendwie füllt der das Feld nur nicht mit 1...kann Excel sowas nicht??? Oder nur mit VAB??
Hat jemand einen Tipp für mich??
Gruß
Tobi
Antwort 1 von Saarbauer
Hallo,
funktioniert nicht, auch nicht mit VBA.
in C1
=Wenn(A1>0;1,0)
Sonst werden zusätzliche Angaben benötigt
Gruß
Helmut
Zitat:
In z.B. in D1 =WENN(A1>0;C1="1";C1="0")
In z.B. in D1 =WENN(A1>0;C1="1";C1="0")
funktioniert nicht, auch nicht mit VBA.
in C1
=Wenn(A1>0;1,0)
Sonst werden zusätzliche Angaben benötigt
Gruß
Helmut
Antwort 2 von tobi80
Hallo Helmut,
danke für deine schnelle Antwort.
So hatte ich das auch schon.
Mein Problem ist, dass ich noch in C1 schreiben muss... sprich 1 ist nur der Mindestwert in C1, wenn A1 gefüllt ist bzw. >0 ist. Somit wäre auch ein höherer Wert in C1 möglich, der dann unabhängig von A1 manuell eintragen wird. Das geht nur leider nicht, wenn in C1 eine Formel steht....da diese dann gelöst werden würde.
Das muss doch irgendwie gehen... ich dachte Excel kann so ziemlich alles :-)
Gruß
tobi
danke für deine schnelle Antwort.
So hatte ich das auch schon.
Mein Problem ist, dass ich noch in C1 schreiben muss... sprich 1 ist nur der Mindestwert in C1, wenn A1 gefüllt ist bzw. >0 ist. Somit wäre auch ein höherer Wert in C1 möglich, der dann unabhängig von A1 manuell eintragen wird. Das geht nur leider nicht, wenn in C1 eine Formel steht....da diese dann gelöst werden würde.
Das muss doch irgendwie gehen... ich dachte Excel kann so ziemlich alles :-)
Gruß
tobi
Antwort 3 von Saarbauer
Hallo,
leider nicht verständlich, was du vorhast. Vielleicht ein Beispiel mal liefern
Gruß
Helmut
leider nicht verständlich, was du vorhast. Vielleicht ein Beispiel mal liefern
Gruß
Helmut
Antwort 4 von tobi80
Ok, ich versuche es Mal
Es soll eine Kalkulation werden:
A1= Anzahl Artikel 1
C1= Anzahl Zubehör für Artikel 1
Wenn ich nun Aritkel 1 bestelle, dann brauche ich auch das Zubehör also C1. Das bedeutet, wenn ich bei A1 was eintrage z.B 1 brauche ich mindestens 1 Zubehör (C1) ich kann aber optional auch 2x das Zubehör nehmen...., z.B. um ein Zubehör als reserve zu haben. Also muss ich auch optional in C1 einen anderen Wert eintragen können, wie hier 2....
Somit muss, wenn A1>0 immer C1=1 sein aber es kann vorkommen, dass ich in C1 noch 2 manuell eintippe, da der Kunde 2x das Zubehör haben möchte. Dann wäre meine Formel in C1 weg....
Ist nicht so leicht zu erklären...
Es soll eine Kalkulation werden:
A1= Anzahl Artikel 1
C1= Anzahl Zubehör für Artikel 1
Wenn ich nun Aritkel 1 bestelle, dann brauche ich auch das Zubehör also C1. Das bedeutet, wenn ich bei A1 was eintrage z.B 1 brauche ich mindestens 1 Zubehör (C1) ich kann aber optional auch 2x das Zubehör nehmen...., z.B. um ein Zubehör als reserve zu haben. Also muss ich auch optional in C1 einen anderen Wert eintragen können, wie hier 2....
Somit muss, wenn A1>0 immer C1=1 sein aber es kann vorkommen, dass ich in C1 noch 2 manuell eintippe, da der Kunde 2x das Zubehör haben möchte. Dann wäre meine Formel in C1 weg....
Ist nicht so leicht zu erklären...
Antwort 5 von Saarbauer
Hallo,
ist richtig und geht auch nur so. Mir ist keine Möglichkeit bekannt in einer Zelle Daten und Formel gleichzeitig zu haben.
Gruß
Helmut
ist richtig und geht auch nur so. Mir ist keine Möglichkeit bekannt in einer Zelle Daten und Formel gleichzeitig zu haben.
Gruß
Helmut
Antwort 6 von CaroS
Hallo tobi80,
etwas ausführlicher erklärt heißt das, dass Du Dich entscheiden musst, ob in einer Zelle eine Eingabe stattfinden soll oder eine Formel einen Wert berechnen soll. Zu einem bestimmten Zeitpunkt geht immer nur eins von beidem.
Das heißt aber auch, dass Du beides bewusst nacheinander tun könntest. Nämich das Tabellenblatt mit der Formel =WENN(A1 > 0; 1, 0) vorbereiten, dann irgendwann mal eine Zahl > 0 in A1 eintragen, dadurch in C1 automatisch (als Ergebnis der Formel) eine 1 bekommen, und schließlich bei Bedarf diese 1, d. h. in Wirklichkeit die Formel, die die 1 liefert, mit einer höheren Zahl überschreiben.
Dann ist die Formel eben weg. Na und? Wenn alle damit leben können? Können sie vielleicht, wenn später der Inhalt von A1 und anderer Zellen, die einen inhaltlichen Zusammenhang zu A1 und C1 haben, nicht mehr grundsätzlich geändert oder gar gelöscht wird. Denn die in C1 überschriebene Formel stellt sich nicht automatisch wieder her, weg ist weg!
Es gibt allerdings noch eine andere, relativ einfache Lösung des Problems mit VBA. Wenn Du daran Interesse hast, sag bescheid.
Gruß,
CaroS
etwas ausführlicher erklärt heißt das, dass Du Dich entscheiden musst, ob in einer Zelle eine Eingabe stattfinden soll oder eine Formel einen Wert berechnen soll. Zu einem bestimmten Zeitpunkt geht immer nur eins von beidem.
Das heißt aber auch, dass Du beides bewusst nacheinander tun könntest. Nämich das Tabellenblatt mit der Formel =WENN(A1 > 0; 1, 0) vorbereiten, dann irgendwann mal eine Zahl > 0 in A1 eintragen, dadurch in C1 automatisch (als Ergebnis der Formel) eine 1 bekommen, und schließlich bei Bedarf diese 1, d. h. in Wirklichkeit die Formel, die die 1 liefert, mit einer höheren Zahl überschreiben.
Dann ist die Formel eben weg. Na und? Wenn alle damit leben können? Können sie vielleicht, wenn später der Inhalt von A1 und anderer Zellen, die einen inhaltlichen Zusammenhang zu A1 und C1 haben, nicht mehr grundsätzlich geändert oder gar gelöscht wird. Denn die in C1 überschriebene Formel stellt sich nicht automatisch wieder her, weg ist weg!
Es gibt allerdings noch eine andere, relativ einfache Lösung des Problems mit VBA. Wenn Du daran Interesse hast, sag bescheid.
Gruß,
CaroS
Antwort 7 von tobi80
Hallo CaroS,
vielen Dank für deine Antwort. Das habe ich mir auch schon überlegt und ich habe das jetzt auch erstmal so umgesetzt.
Mir ging es nur darum, dass die Position nicht beim erstellen der Kalkulation vergessen wird.
VBA is leider net so mein Ding...habe ich noch nicht wirklich viel mit gemacht.
Dank Dir und wünsche noch einen schönen Tag.
Gruß
Tobi
vielen Dank für deine Antwort. Das habe ich mir auch schon überlegt und ich habe das jetzt auch erstmal so umgesetzt.
Mir ging es nur darum, dass die Position nicht beim erstellen der Kalkulation vergessen wird.
VBA is leider net so mein Ding...habe ich noch nicht wirklich viel mit gemacht.
Dank Dir und wünsche noch einen schönen Tag.
Gruß
Tobi
Antwort 8 von CaroS
Hallo!
Also hier ist aus Spaß an der Freude mal ein Vorschlag für eine VBA-Lösung. Kopiere den gesamten Code in den VBA-Bereich des Tabellenblatts, in dem das ganze stattfinden soll.
Option Explicit
Public ZelleA1 As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.EnableEvents = False
If ZelleA1 = "" Then ActiveSheet.Cells(1, 3).Value = IIf(IsNumeric(ActiveSheet.Cells(1, 1).Value) And (ActiveSheet.Cells(1, 1).Value > 0), 1, ActiveSheet.Cells(1, 1).Value)
ZelleA1 = ActiveSheet.Cells(1, 1).Value
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then ZelleA1 = ActiveSheet.Cells(1, 1).Value
End Sub
Gruß,
CaroS
Also hier ist aus Spaß an der Freude mal ein Vorschlag für eine VBA-Lösung. Kopiere den gesamten Code in den VBA-Bereich des Tabellenblatts, in dem das ganze stattfinden soll.
Option Explicit
Public ZelleA1 As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Application.EnableEvents = False
If ZelleA1 = "" Then ActiveSheet.Cells(1, 3).Value = IIf(IsNumeric(ActiveSheet.Cells(1, 1).Value) And (ActiveSheet.Cells(1, 1).Value > 0), 1, ActiveSheet.Cells(1, 1).Value)
ZelleA1 = ActiveSheet.Cells(1, 1).Value
Application.EnableEvents = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then ZelleA1 = ActiveSheet.Cells(1, 1).Value
End Sub
Gruß,
CaroS
Antwort 9 von Aliba
Hi,
du könntest natürlich auch eine weitere Zelle hinzuziehen, sagen wir mal D1.
=WENN(D1<>"";D1;WENN(A1>0;1;""))
CU Aliba
du könntest natürlich auch eine weitere Zelle hinzuziehen, sagen wir mal D1.
=WENN(D1<>"";D1;WENN(A1>0;1;""))
CU Aliba
Antwort 10 von CaroS
Hi Aliba,
ja klar könnte man das so oder so machen, aber die Zelle D1 ist natürlich dem Benutzer ausgesetzt und damit akut gefährdet. Andererseits ist es natürlich nur ein Vorschlag, d. h. Verbesserungen sind jederzeit willkommen.
Gruß,
CaroS
ja klar könnte man das so oder so machen, aber die Zelle D1 ist natürlich dem Benutzer ausgesetzt und damit akut gefährdet. Andererseits ist es natürlich nur ein Vorschlag, d. h. Verbesserungen sind jederzeit willkommen.
Gruß,
CaroS
Antwort 11 von nostalgiker6
Wie wäre es denn, die Formel in einem Feld zu haben (sagen wir C1),
daneben ein Eingabefeld (say C2), und als drittes ein Summenfeld (say C3), in dem Formelergebnis und Eingabefeld Summiert
UND ZUR WEITEREN VERARBEITUNG VERWENDET werden?
(C1 könnte sogar ausgeblendet sein.)
daneben ein Eingabefeld (say C2), und als drittes ein Summenfeld (say C3), in dem Formelergebnis und Eingabefeld Summiert
UND ZUR WEITEREN VERARBEITUNG VERWENDET werden?
(C1 könnte sogar ausgeblendet sein.)

