EXCEL - Formel gesucht

Bora

Lt. Junior Grade
Registriert
Juni 2005
Beiträge
467
ich habe folgendes Problem,

únd zwar habe ich eine Tabelle aus 3 Spalten


Spalte A (Minuend) ; Spalte B (Subtrahend) ; Spalte C (Wert der Differenz)

"Minuend − Subtrahend = Wert der Differenz"


Gegeben ist IMMER der Wert der "Spalte A",
sowie 1 Wert der "Spalte B" ODER "Spalte C
"


Gesucht wird der Wert der jeweils anderen Spalte ("B" oder "C")



zum Beispiel:

1. 30 - 20 = X

2. 30 - 10 = X

3. 30 - X = 10

Excel soll erkennen welche Spalte keinen Wert (Zelle=Leer) enthält und dort den entsprechenden (rechnerischen) Wert eintragen!

zu 1. in "Spalte C" sollte dann die 10 erscheinen

zu 2. in "Spalte C" sollte dann die 20 erscheinen

zu 3. in "Spalte B" sollte dann die 20 erscheinen

Kann mir da jemand von euch helfen?

Danke im Voraus!
 
Zuletzt bearbeitet:
Häh?

Kannst du die Tabelle vllt mal hochladen, so versteh ich leider nicht, was du willst :confused_alt:
 
nehmen wir an, das ganze fängt bei a1 an. dann sähe es so aus:
1)=A1-B1 ->in der Zelle C1 eintippen
2)=A2-B2 ->in der Zelle C2 eintippen
3)=A3-C3 ->>in der Zelle B3 eintippen

ne andere möglichkeit sehe ich da nicht. aber in eine zelle kannst du nur einen wert oder eine formel eingeben. beides zusammen geht nicht.
 
Mit Formeln ist das in den 3 Spalten nicht lösbar.



Macro schreiben, recht easy.
So ungefähr. :)

Sub Makro1()

Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim mem As Integer
Dim mem2 As Integer
Dim counter As Integer
Dim puffer As String


mem = InputBox("Startzeile eingeben")
mem2 = InputBox("Endzeile eingeben")
counter = mem

Do
puffer = ""

Range("A" & counter).Select
puffer = ActiveCell

If puffer = "" Then
Range("B" & mem).Select
b = ActiveCell
Range("c" & mem).Select
c = ActiveCell
Range("A" & mem).Select
ActiveCell = c + b
End If

If puffer <> "" Then
Range("B" & mem).Select
puffer = ActiveCell

If puffer = "" Then
Range("a" & mem).Select
a = ActiveCell
Range("c" & mem).Select
c = ActiveCell
Range("b" & mem).Select
ActiveCell = a - c
Else
Range("a" & mem).Select
a = ActiveCell
Range("b" & mem).Select
b = ActiveCell
Range("c" & mem).Select
ActiveCell = a + b
End If
End If

counter = counter + 1
mem = mem + 1
Loop Until counter = mem2

End Sub
 
Zuletzt bearbeitet:
@blackraven: Bei dir wird bei Spalte C aber addiert ;)

Hab hier mal ein etwas kürzeres Makro.

Code:
Option Explicit

Sub test()
     Dim rZelle As Range
     Dim i As Integer
     
     On Error GoTo ex1t
     Set rZelle = Application.InputBox("Bitte wähle die erste Zelle im Bereich aus." & Chr(10) & "(Links oben)", "Zelle auswählen", Type:=8)
     i = Evaluate("SUM(ISNUMBER(" & rZelle.Address & ":" & rZelle.Offset(0, 2).Address & ")*1)")
     
     Application.ScreenUpdating = False
     Do While i > 0
          If i = 2 Then
               With rZelle
                    Select Case ""
                         Case Trim(.Value)
                              .Value = .Offset(0, 2) + .Offset(0, 1)
                         Case Trim(.Offset(0, 1))
                              .Offset(0, 1) = .Value - .Offset(0, 2)
                         Case Trim(.Offset(0, 2))
                              .Offset(0, 2) = .Value - .Offset(0, 1)
                    End Select
               End With
          End If
          Set rZelle = rZelle.Offset(1, 0)
          i = Evaluate("SUM(ISNUMBER(" & rZelle.Address & ":" & rZelle.Offset(0, 2).Address & ")*1)")
     Loop
     Application.ScreenUpdating = True
ex1t:
End Sub
 
Zuletzt bearbeitet:
Zurück
Oben