2016-06-21 3 views
-1

Diese Frage zu meinem anderen Thread verwandt zu halten: Formula to divide data from one cell equally into multiple cellsFormel Autowechsel all Kalender Stunden, wenn ich 1 ändern, um die gleichen Gesamt Stunden

Das ist, was ich zu erreichen versuchen: es möglich wäre, Die Werte im Kalender ändern sich automatisch, wenn ich eine der gleich verteilten Zahlen manuell ändere.

Ex.

  • Gesamtstunden 400
  • Anfang Woche 1630
  • Ende Woche 1630

36 Unterteilt in jedem I ändern 1 der 36er in 100 und die anderen 36s automatisch auf 30, so ändern, dass die Gesamtaufenthalt 400. Dies ist, wie meine Excel-Tabelle wie folgt aussieht: http://imgur.com/9RUNTGV die drei Spalten links sind

AQ4 = COUNTIF (L 4: AP4; $ I4/($ K4- $ J4 + 1)) ## Dies ist die Anzahl der Zellen mit der geteilten Summe

AR4 = SUMME (L4: AP4) ## Dies ist der Gesamtwert, den ich Verwendung mit den Gesamtstunden vergleichen es dauern sollte, bevor ich Werte

AS4 = COUNTIF manuell geändert (L4: AP4; "<>" & $ I4/($ K4- $ J4 + 1)) - COUNTIF (L4: AP4; "") ## Dies ist die Anzahl der Zellen, die nicht $ I4/($ K4- $ J4 + 1) oder leer sind.

Das ist, was ich mit so weit habe kommen, aber es funktioniert nicht:

=IF(AND(AC$2>=$J4;AC$2<=$K4);$I4/($K4-$J4+1);AND($AS4>0;(2*$I4-$AR$4)/($AQ4-$AS4);($K4-$J4+1);$I4/($K4-$J4+1))) 
+0

Die einzige Möglichkeit, die jemand herausfinden könnte wäre, es in Excel einzufügen und damit zu spielen, bis sie herausfinden, welcher Teil fehl am Platz ist. Was genau Sie tun sollten. – durbnpoisn

+1

Ihr externer 'IF() 'Funktionsaufruf hat 4 Parameter. Es sollte nur 3. – Phylogenesis

+0

Die IF-Funktion hat drei Argumente, Sie haben 4. Ich vermute, Sie müssen die erste ""; " – Graham

Antwort

0

von this answer in Ihrer vorherigen Frage, haben wir diese Formel in L7, die auf andere Zellen kopiert werden können:

=IF(AND(L$2>=$J7; L$2<=$K7); $I7/($K7-$J7+1); "") 

Nun ist die Herausforderung, die Formel kennen die anderen Werte in der gleichen Zeile zu machen ist , da sie möglicherweise manuell geändert wurden. Dies führt zu einem Problem der zirkulären Verweis: Zelle L7 Berücksichtigung der Änderungen erfolgen müssen gemacht M7, zu der Zelle, sondern auch M7 sollte L7 der Zelle berücksichtigt Änderungen nehmen. Wenn in einer dieser beiden Zellen (zunächst) keine manuell codierten Werte vorhanden sind, haben wir einen Zirkelverweis. Das ist also nicht möglich.

Allerdings, was kann getan werden, ist es, die Formel in jeder Zelle nur auf der linken Seite zu sehen und die Berechnung darauf basierend machen. Auf diese Weise wird es keine Zirkelverweise geben.

Dies führt zu der folgenden Formel für L7:

=IF(L$2=$J7; 
    $I7/($K7-$J7+1); 
    IF(AND(L$2>$J7; L$2<=$K7); 
     ($I7-SUM(OFFSET(L7;0;$J7-L$2;1;L$2-$J7)))/($K7-L$2+1); 
     "")) 

Das bedeutet:

Wenn diese Zelle der erste ist die Periode (L$2=$J7) dann wie bisher tun, und berechnet die gleichmäßig verteilter Wert ($I7/($K7-$J7+1)). Wenn diese Zelle eine andere Zelle innerhalb der Periode ist, dann nimm die Summe der vorherigen Zellen (SUM(OFFSET(L7;0;$J7-L$2;1;L$2-$J7))), subtrahiere diese von der gesamten erforderlichen Summe ($I7-SUM(...)) und dividiere diese durch die Anzahl der Zellen, die rechts bleiben, zähle diese Zelle als gut (.../($K7-L$2+1)). In allen anderen Fällen geben Sie die leere Zeichenfolge aus.

Kopieren Sie diese Formel um.

Sobald Sie einen Wert mit einer festen Zahl überschreiben, zerstören Sie offensichtlich die Formel, die dort war. Aber sehen Sie, wie es die Zellen rechts davon neu berechnet. Die Summe bleibt konstant. Beachten Sie, dass Änderungen in Zellen außerhalb des Zeitraums nicht berücksichtigt werden.

Schließlich, stellen Sie sicher, manuelle Änderungen von links nach rechts vorzunehmen. Wenn Sie eine Zelle auf der linken Seite einer anderen Zelle ändern, die bereits geändert wurde, werden sich die Dinge nicht mehr gut ergänzen. In diesem Fall müssen Sie zuerst die Formel in den Zellen mit der höheren Dichte wiederherstellen, dann die Änderung in der linken Zelle vornehmen und dann die Änderungen erneut in der Reihenfolge von links nach rechts vornehmen.

+0

Danke! Ich kam auch zu dieser Schlussfolgerung. Ich dachte daran, es auf deine Art zu tun, aber ich konnte nicht herausfinden, wie ich es machen sollte. Ich mag auch, dass Sie Erklärungen zu Ihren Antworten hinzufügen, damit ich nicht nur es kopiere, sondern auch daraus lerne. –

+0

Ich habe gerade etwas bemerkt, wenn ich nur das Enddatum hinzufüge, zeigen die Zellen #REF !, Warum ist das? –

+0

und wenn Startdatum ist niedriger als der Kalender unterstützt bekomme ich Fehler: Ungültige Zellreferenz. –

0
""; IF(aq4<>as4; (2*I4-AR4)/(AS4-AQ4; $I4/($K4-$J4+1)))) 

Das "" das If Not ist, danach eine vierte Argument ist ...

3

versuchen Sie dies:

=IF(AND(Y$2>=$J4,Y$2<=$K4),$I4/($K4-$J4+1),IF(AQ4<>AS4,(2*I4-AR4)/(AS4-AQ4),$I4/($K4-$J4+1))) 

ich weiß nicht, was Sie aber diese Funktion zu erreichen versuchten, erzeugen keinen Fehler

Ihre Funktion hatte eine falsche Platzierung von Argumenten, so dass es wie 2 separate war, wenn Funktionen in einer Zelle gelesen werden sollen. Wenn Sie die Leitlinie Excel-Anzeigen unter der Funktion während der Eingabe befolgen, kann dies in Zukunft verhindert werden

Verwandte Themen