2017-11-06 4 views
0

Ich habe eine Libreoffice Calc-Arbeitsmappe zum Verfolgen des Schreibens mit 3 Blättern darin. "Zeiterfassung", "Zusammenfassung der Zeit" und "Jährliche Statistiken". "Time Tracking" ist der Ort, an dem Nutzerdaten eingegeben werden, "Time Summary" ist eine Pivot-Tabelle für "Time Tracking"; und "Yearly Stats" zeigt langfristige Fortschritte.Libreoffice Calc MAX aus einer Teilmenge von Ergebnissen finden

Zeit Zusammenfassung (Lauf einige Testdaten aus) sieht ein bisschen wie folgt aus:

 |Column A (Weeks)  | ... |Column M (Total Words) 
-------+-----------------------+-----+---------------------- 
Row 7 |02/10/17 - 08/10/17 |  |3500 
Row 8 |13/11/17 - 19/11/17 |  |2300 
Row 9 |30/04/18 - 06/05/18 |  |1000 
Row 10 |30/10/17 - 05/11/17 |  |700 

Jahresstatistik sieht wie folgt aus:

 |A     |B  |C 
-------+--------------------+--------+---- 
Row 1 |     |2017 |2018 
Row 2 |Total Words   |6500 |1000 
... 
Row 7 |Max Words (Week) |3500 |3500 

Die Formel für ‚Jahres Stats'.B7: C7 ist derzeit =MAX($'Time Summary'.$M$7:$M$10), aber ich muss es ändern, um nach dem Jahr auf der Spaltenüberschrift zu filtern.
https://ask.libreoffice.org/en/question/62260/minif-and-maxif-function-in-calc/https://ask.libreoffice.org/en/question/62260/minif-and-maxif-function-in-calc/ schien nützlich zu sein, aber als ich es versuchte, gab der MAX aus der Formel den MAX der ROW - 10 - anstatt ROW die Position des MAX-Werts zurückgeben - obwohl es in der Beispieldatei zu funktionieren scheint von der Verbindung.

Das Beispiel Formel ist:

=IFERROR(INDEX($Sheet1.$J$2:$J$13,MAX(ROW($Sheet1.$J$2:$J$13)*($Sheet1.$A$2:$A$13=A2))-1,1),NA()) 

Meine Formel RIGHT() verwendet die letzten beiden Zeichen der Spalte zu vergleichen mit den beiden letzten Zeichen der Woche in $'Time Summary':$A$7:$A$10 Überschrift und ist:

=IFERROR(INDEX($'Time Summary'.$M$7:$M$10,MAX(ROW('Time Summary'.$M$7:$M$10)*(RIGHT($'Time Summary'.$A7:$A$10,2)=RIGHT(B1,2)))-6,1),NA()) 

Ich habe natürlich daran gedacht, STRG + UMSCHALT + EINGABE zu drücken, wie die Anweisungen sagen, damit das Array in der Formel funktioniert.

Das ist also die Erklärung meines Problems. Was ist es, dass ich falsch liege?

Antwort

0

Ok, das ist ein bisschen langatmig, aber ich habe es geschafft, das Problem zu lösen, indem Sie die folgende Formel:

=IF(MAX(IF(RIGHT(INDIRECT(CONCATENATE("$'Time Summary'.$A7:$A$",COUNTIF($'Time Summary'.$A:$A,"<>''")+2)),2)=RIGHT(B1,2),INDIRECT(CONCATENATE("$'Time Summary'.$Q$",ROW(INDIRECT(CONCATENATE("$'Time Summary'.$Q7:$Q$",COUNTIF($'Time Summary'.$Q:$Q,"<>''")+5))))),0))>0,MAX(IF(RIGHT(INDIRECT(CONCATENATE("$'Time Summary'.$A$7:$A$",COUNTIF($'Time Summary'.$A:$A,"<>''")+2)),2)=RIGHT(B1,2),INDIRECT(CONCATENATE("'Time Summary'.$Q",ROW(INDIRECT(CONCATENATE("$'Time Summary'.$Q$7:$Q$",COUNTIF($'Time Summary'.$Q:$Q,"<>''")+5))))),0)),NA()) 

Es in einem IF gewickelt ist, dass jedes 0 Ergebnis mit ‚# ersetzt NA '(nur für Ordentlichkeit der Ausgabe). Auch die rechte Hälfte der angegebenen Bereiche verwenden eine Berechnung, um herauszufinden, wo die untere Zeile ist, die Summe auslassen, so dass es ein weiterer Grund ist, dass es so riesig ist.

Verwandte Themen