Clever-Excel-Forum

Normale Version: Formel für einmaliges Übertragen von Werten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Leute,

für meine Excel-Stromverbrauchstabelle suche ich nach einer Formel bzw. einer Kombination von Formeln, die es zustande bringt/bringen, zwei Werte von einem Tabellenblatt in ein anderes zu übertragen. Das Knifflige dabei ist, dass drei Bedingungen erfüllt sein müssen, damit es mir weiterhilft:

1. die beiden Werte dürfen nur übertragen werden, wenn einer der beiden Werte ein Enddatum eines Monats ist (also müsste ja in irgendeiner Form eine WENN-Funktion involviert sein)
2. beim Übertragen soll nur der jeweilige Wert übernommen werden (also keine Formeln, d.h. sowas wie "= Tabellenblatt 1!$B$4" dürfte dann nicht mehr da stehen)
3. nach dem Übertragen sollen diese beiden Werte festgefroren werden, sodass sie sich nicht mehr ändern, selbst wenn die "Quellwerte" geändert werden

Ich hänge eine Beispieldatei an, wo es denke ich klarer wird, wofür das Ganze gut sein soll.
Ich gehe mal stark davon aus, dass es in der gewünschten Form nicht möglich ist, aber man will ja nichts unprobiert lassen  :19:

Vielen Dank für alle Hilfe und Tipps! Blush
Hallo,

mache das so:

Strom

ABCDEFGHIJKLMNOPQ
1Stromverbrauch ab 2010
2DatumaltneuVerbrauchPreis / KWhArbeitsbetragGrundpreisfür TageSummeNettobetragStromsteuerBetragUst (%)SummeBruttobetragAbschlagDifferenz
331.12.2009186149
431.01.2010186149186207580,177          10,27 €      60,00 € 30  5,00 €       15,27 € 0,02051,18919  2,90 €        18,17 € 162,00 € 143,83 €
528.02.20101862071866734660,177          82,48 €      60,00 € 30  5,00 €       87,48 € 0,02059,55319 16,62 €      104,10 € 162,00 €   57,90 €
Formeln der Tabelle
ZelleFormel
B4=C3
D4=WENN(C4>0;C4-B4;"")
F4=WENN(C4>0;D4*E4;"")
I4=G4/360*H4
J4=WENN(C4>0;F4+I4;"")
L4=WENN(C4>0;D4*K4;"")
N4=WENN(C4>0;J4*M4/100;"")
O4=WENN(C4>0;N4+J4;"")
Q4=P4-O4

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Hallo Pascal,

nicht sehr schlau, eine leere Beispieltabelle zu posten. Soll ich mir selber Werte ausdenken?
Moin

Ich weiß gar nicht wo ich anfangen soll.
Aber für zwölf Ablesungen scheint mir die gewünschte Vorgehensweise relativ aufwendig.
Vielen Dank erstmal für alle Antworten   Thumps_up


@Klaus-Dieter: vielen Dank für diesen Vorschlag. Sieht gut aus, deine Tabelle.
Aber das alles automatisiert berechnen zu lassen ist gar nicht mein Problem. Das habe ich in meiner "echten" Tabelle auch alles genau so. Es geht um die einmalige, automatisierte Übertragung der Monatsendstände inklusive Einfrieren  :19: (cool ausgedrückt, ne?). Siehe zweites Tabellenblatt meiner Beispieldatei.

@WillWissen: ich habe jetzt mal Beispielwerte eingefügt, der Vollständigkeit halber Sleepy 

@shift-del: du hast Recht. Es ist - erstmal - sehr aufwändig und es ist auch absolut kein Problem, wenn ich es weiterhin manuell machen muss. Es geht mir mehr darum, meine Kompetenzen in Excel zu erweitern und mehr und mehr automatisieren zu können  Blush Im Übrigen ist es dann ja für mehr als 12 Ablesungen, wenn man es jedes Jahr dann so macht und auch in anderen Tabellen mit ganz anderer Thematik und Werten den Spaß anwenden kann. Ich kann mir weitere Szenarien vorstellen, in denen man so etwas gut gebrauchen könnte.

Aber wie schon im ersten Post erwähnt, ich gehe nicht davon aus, dass es in der Form möglich ist. Mir wäre auch schon weitergeholfen, wenn mir jemand eine Formel nennen könnte, mit der ich eine beliebige Zelle dazu bringen kann, nur noch den Wert (das Ergebnis) anzuzeigen und nicht mehr nur die Formel (z.B.: es soll danach in einer Zelle, in der ich "=(2*3)+9" eingegeben habe, nicht mehr das stehen, sondern eben nur das Ergebnis, nämlich 15). Damit wäre Element Nr. 2 in meinem ersten Post schon mal erledigt und man könnte das nutzen, um es mit anderen Formeln zu kombinieren  :24: mir ist bewusst, dass es die Möglichkeit gibt, zu kopieren und dann beim Einfügen die entsprechende Variante "nur Werte" anzuklicken, aber ich suche nach einer Formel...
Hallöchen,


Zitat:nicht sehr schlau, eine leere Beispieltabelle zu posten. Soll ich mir selber Werte ausdenken?

ja, der letzte des Monats ist meist der 30. oder der 31. Und wenn man sparsam mit Energie umgeht reichet ein niedriger Wert :15:

Aus dem Aufbau und 2. ergibt sich übrigens die Notwendigkeit einer VBA-Lösung.
Vorher hätte ich da aber mal noch eine Frage. Du hast nur zwei Zellen für eine Eingabe vorgesehen, davon eine Datumseingabe.
Du schreibst
Zitat:wenn einer der beiden Werte ein Enddatum

Wenn Du nicht versehentlich in die "Leistungszelle" auch ein Datum schreibst, sollte nur ein Datum drin stehen. Wenn das nicht das Monatsende ist, frage ich mich, was Du damit machen willst? Einfach nur bis zum nächsten Eintrag dort stehenlassen? Übernommen werden soll ja nur der Wert vom Monatsende.


Das Makro kommt in das Codemodul vom Tabellenblatt mit den Eingabezellen

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn D4 oder F4 geaendert wurde und D4 ein Datum ist, dann
If (Target.Address = "$D$4" Or Target.Address = "$F$4") And IsDate([d4]) Then
  'Wenn es der MOnatsletzte ist, dann
  If Month([d4]) + 1 = Month([d4] + 1) Then
    'Wert aus F4 uebernehmen
    Sheets("Monatsendst?nde").Cells(4, Month([d4]) + 1) = [f4]
  'Wenn es der MOnatsletzte ist, dann
  End If
'Ende Wenn D4 oder F4 geaendert wurde und D4 ein Datum ist, dann
End If
End Sub
Vielen Dank, das hört sich doch mal nach Kompetenz an =)

Genau, wenn ein anderes Datum eingegeben wird (z.B. 13.07. oder was auch immer), soll es einfach so stehen bleiben, genauso der dazugehörige Wert. Hintergrund ist, dass ich auch manchmal ne Ablesung mitten im Monat mache, die aber nur für mich zur Orientierung dient und nicht weiter "dokumentiert werden muss". Excel soll quasi nur bei einem Enddatum "feuern" (feuern = in diesem Fall: die Zellen "Datum" und "Ableswert" ins zweite Tabellenblatt an die passende Stelle übertragen und diese dort "festschreiben")

Danke nochmal!
(15.07.2019, 19:28)schauan schrieb: [ -> ]Das Makro kommt in das Codemodul vom Tabellenblatt mit den Eingabezellen

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn D4 oder F4 geaendert wurde und D4 ein Datum ist, dann
If (Target.Address = "$D$4" Or Target.Address = "$F$4") And IsDate([d4]) Then
 'Wenn es der MOnatsletzte ist, dann
 If Month([d4]) + 1 = Month([d4] + 1) Then
   'Wert aus F4 uebernehmen
   Sheets("Monatsendst?nde").Cells(4, Month([d4]) + 1) = [f4]
 'Wenn es der MOnatsletzte ist, dann
 End If
'Ende Wenn D4 oder F4 geaendert wurde und D4 ein Datum ist, dann
End If
End Sub

Habe es mal gemacht und es funktioniert wirklich  Thumps_up Smile Der Tipp mit VBA / Makros war echt goldrichtig - damit scheint man ja wirklich sehr viel Cooles anstellen zu können :21: 
Danke nochmals, Problem ist damit für mich gelöst :18:
EDIT: Kleine Einschränkung - für Dezember funktioniert es nicht  Undecided . Nehme an, dass es damit zu tun hat, dass es der letzte Monat im Jahr ist. Was muss ich am Code ändern damit auch die Eingabe vom 31.12. zum gewünschten Resultat führt?  Huh