Φόρμουλα πρόκληση - διαφορά από την τελευταία καταχώρηση - Παζλ

Πίνακας περιεχομένων

Το περιεχόμενο

Πριν από μερικές εβδομάδες, είχα μια ενδιαφέρουσα ερώτηση από έναν αναγνώστη σχετικά με την παρακολούθηση της αύξησης βάρους ή της απώλειας σε έναν απλό πίνακα.

Η ιδέα είναι να εισάγετε ένα νέο βάρος κάθε μέρα και να υπολογίζετε τη διαφορά από την προηγούμενη ημέρα. Όταν κάθε μέρα έχει μια καταχώριση, ο τύπος είναι απλός:

Η διαφορά υπολογίζεται με έναν τύπο όπως αυτό, καταχωρείται στο D6 και αντιγράφεται στον πίνακα:

=IF(C6"",C6-C5,"")

Ωστόσο, όταν χάσετε μία ή περισσότερες ημέρες, τα πράγματα πάνε στραβά και το υπολογισμένο αποτέλεσμα δεν έχει νόημα:

Όχι, δεν κερδίσατε 157 κιλά σε μια μέρα

Το πρόβλημα είναι ότι ο τύπος χρησιμοποιεί το κενό κελί στον υπολογισμό, ο οποίος αξιολογείται στο μηδέν. Αυτό που χρειαζόμαστε είναι ένας τρόπος εντοπισμού και χρήσης του τελευταίου βάρους που καταγράφεται στη στήλη Γ.

Η πρόκληση

Ποιος τύπος θα υπολογίσει μια διαφορά από την τελευταία καταχώρηση, ακόμη και όταν οι ημέρες έχουν παραλειφθεί;

Επιθυμητό αποτέλεσμα - διαφορά χρησιμοποιώντας την προηγούμενη προηγούμενη καταχώριση

Υποθέσεις

  1. Ένας μοναδικός τύπος εισάγεται στο D6 και αντιγράφεται προς τα κάτω (δηλ. Ίδιος τύπος σε όλα τα κελιά)
  2. Ο τύπος πρέπει να χειρίζεται μία ή πολλές προηγούμενες κενές καταχωρήσεις
  3. Δεν επιτρέπεται η αφαίρεση κενών καταχωρήσεων (σειρών)
  4. Δεν επιτρέπονται στήλες βοηθού

Σημείωση: μια προφανής διαδρομή είναι να χρησιμοποιήσετε έναν τύπο Nested IF. Θα το αποθαρρύνω, καθώς δεν θα είναι καλό να χειριστεί έναν άγνωστο αριθμό διαδοχικών κενών καταχωρήσεων.

Έχετε λύση; Αφήστε ένα σχόλιο με τον προτεινόμενο τύπο παρακάτω.

Έκανα χάκερ μαζί έναν τύπο και θα μοιραστώ τη λύση μου αφού δώσω στους έξυπνους αναγνώστες κάποιου χρόνου να υποβάλουν τις δικές τους φόρμουλες.

Επιπλέον πίστωση

Ψάχνετε για περισσότερη πρόκληση; Εδώ είναι το ίδιο αποτέλεσμα, με εφαρμογή προσαρμοσμένης μορφής αριθμού. Ποια είναι η μορφή αριθμού; Συμβουλή: Το σάρωσα από τον Mike Alexander στο blog του Bacon Bits.

Απάντηση (κάντε κλικ για επέκταση)

Υπάρχουν πραγματικά καλές προτεινόμενες λύσεις παρακάτω, συμπεριλαμβανομένης μιας πολύ συμπαγούς και κομψής λύσης από τον Παναγιώτη Σταθόπουλο. Για το δίσκο, πήγα με ένα LOOKUP και ένα επεκτεινόμενο εύρος:

=IF(C6"",C6-LOOKUP(2,1/($C$5:C5""),$C$5:C5),"")

Οι μηχανικοί του LOOKUP για αυτό το είδος προβλήματος εξηγούνται σε αυτό το παράδειγμα.

ενδιαφέροντα άρθρα...