![]() |
Μέγιστο σύνολο συνεχόμενων κελιών. Καλημέρα σας. Αυτή την φορά, θα ήθελα την βοήθειά σας στο εξής: Στην στήλη Α, υπάρχουν σε όλα(Α1:Α100-Με προοπτική επέκτασης) τα κελιά, αριθμοί. Τα ζητούμενα είναι: 1) Ποιο είναι το μεγαλύτερο(MAX) σύνολο "X" συνεχόμενων κελιών στην στήλη Α.(Ας πούμε 10 συνεχόμενων) 2) Σε ποια γραμμή ξεκινάει η παραπάνω άθροιση. |
Ελένη δεν είναι σαφές το ζητούμενο (τουλάχιστον για μένα) Ανέβασε ένα παράδειγμα με δεδομένα και αναμενόμενο αποτέλεσμα για να το κατανοήσουμε. Θανάσης |
1 Συνημμένο(α) Εδώ είναι Θανάση. |
Μια πρόταση είναι: b1=SUM(a1:a10) και αντιγραφή μέχρι το τέλος της λίστας που έχεις στην στήλη Α Έτσι 1ο αναμενόμενο αποτέλεσμα =Max(b:b) 2ο αναμενόμενο αποτέλεσμα =MATCH(MAX(b:b);b:b;0) αν θέλεις το 10 κελιά σαν παράμετρο βάλε στο b1=SUM(OFFSET(a1;;;παράμετρος;1)) Μήπως δεν έχω καταλάβει κάτι; |
Καλημέρα σας. Κώδικας: ...Μήπως δεν έχω καταλάβει κάτι;Θα μπορούσε να γίνει και χωρίς βοηθητική στήλη(Β); |
1 Συνημμένο(α) Καλησπέρα Ελένη, στο επισυναπτόμενο αρχείο υπάρχει μία υλοποίηση του ζητούμενου, χωρίς βοηθητική στήλη, αλλά με VBA. Επιχείρησα επίσης, χρησιμοποιώντας τη λογική της μεθόδου που παρουσίασε ο Θανάσης, να δημιουργήσω τύπους, οι οποίοι να δίνουν το ζητούμενο, αλλά κόλλησα. Στο αρχείο περιγράφω αναλυτικά το πρόβλημα και θα παρακαλούσα τα μέλη του φόρουμ και ιδίως τους ειδικούς, για μια εξήγηση. Φιλικά/Γιώργος |
Γιώργο το πρόβλημα με την {=SUM(OFFSET(A1:A50;ROW(1:41)-1;;10;1))} είναι ότι ναι μεν δίνει τα σωστά αποτελέσματα όχι όμως σε μορφή πίνακα {375,425,475,...} για να μπορέσεις να εφαρμόσεις max ή large(..;1) Θα το παλέψω και εγώ αλλά δεν μου φαίνεται υγροποιήσιμο με τύπο πίνακα :confused1: Τα λέμε Θανάσης |
Θανάση, ευχαριστώ. |
Καλημέρα και από εμένα. Η δική μου προσέγγιση στο θέμα με Array Formulas. 1) Κώδικας: =MAX(SUBTOTAL(9;OFFSET(A1;ROW(A1:A1000)-1;0;10;1)))Κώδικας: ="Γραμμή"&" "&MAX(IF(INDEX(SUBTOTAL(9;OFFSET(A1;ROW(A1:A1000)-1;0;10;1));)=MAX(SUBTOTAL(9;OFFSET(A1;ROW(A1:A1000)-1;0;10;1)));ROW($1:$1000);""))Κώδικας: =MAX(SUBTOTAL(9;OFFSET(A1;ROW(A1:A1000)-1;0;D1;1)))Τι λέτε; |
Καλησπέρα στην παρέα Οδυσσέα, συγχαρητήρια. Χαίρομαι για την ενεργή συμμετοχή σου στο φόρουμ και εύχομαι να τη συνεχίσεις. Στο Profile σου αυτοχαρακτηρίζεσαι αρχάριος, γεγονός που δε συμφωνεί με τις γνώσεις σου. Θα πρότεινα να το αναβαθμίσεις. Φαίνεται ότι η συνάρτηση Sum και Subtotal(9), λειτουργούν διαφορετικά. Για τα συγκεκριμένα δεδομένα (Α1:Α50 σε ομάδες 10 κελιών) θα πρότεινα: 1) Για το μέγιστο άθροισμα: =MAX(SUBTOTAL(9;OFFSET(A1;ROW(1:41)-1;0;10;1))) 2)Για τη γραμμή: =ROW(INDEX(A1:A41;MATCH(M4;(SUBTOTAL(9;OFFSET(A1;R OW(1:41)-1;0;10;1)));0))). Μ4 είναι το κελί στο οποίο βρίσκεται ο πρώτος τύπος που δίνει το μέγιστο άθροισμα. Φιλικά/Γιώργος |
Γιώργο σε ευχαριστώ πολύ και ειλικρινά για τα καλά σου λόγια. Θα ήθελα να συμμετάσχω ενεργά στα θέματα που μου κινούν το ενδιαφέρον και φυσικά για ανθρώπους(όπως η Ελένη) που με την άψογη συμπεριφορά τους, δείχνουν ότι εκτιμούν αυτό που τους παρέχεται,σεβόμενοι τον χρόνο και τον κόπο των ανθρώπων που παρέχουν την βοήθειά τους. Πιστεύω ότι όταν αυτοχαρακτηρίζεσαι, πρέπει να "βαστάς μικρό καλάθι " που λένε και στα χωριά μας. Αν κοιτάξεις στα Profile των χρηστών στο φόρουμ, θα βρείς πάρα πολλά μέλη με αυτοχαρακτηρισμό "Καλός", "Πολύ Καλός" κλπ. Ένας ακόμα;; Εν κατακλείδι, πιστεύω ότι το πόσο καλός είσαι, είναι κάτι που το κερδίζεις από την γνώμη των άλλων και δεν είναι κάτι που το προσδιορίζεις μόνος σου. Στο θέμα μας τώρα. Θα μας πεί βέβαια η Ελένη τι ακριβώς θέλει. Το λέω αυτό γιατί άν χρειάζεται η δεύτερη φόρμουλα να είναι συνδεδεμένη με την πρώτη, τότε η δεύτερη φόρμουλα που πρότεινες είναι σαφέστατα συντομότερη και ταχύτερη απο την δεύτερη δική μου, που όμως προσφέρει "ανεξαρτησία" αν κάποιος χρειάζεται να δεί το 2ο ζητούμενο σαν ανεξάρτητο θέμα. |
Καλησπέρα σας. Παράθεση:
Γιώργο σε ευχαριστώ πάρα πολύ για τις προτάσεις σου.Όπως πάντα πολύ χρήσιμες. Ομολογώ πως όταν ρώτησα.. Παράθεση:
Όσον αφορά το "αρχάριος", δηλαδή με αυτή την λογική, μέλη σαν και εμένα τι πρέπει να πούμε; "Αρχάριος" -1000;; Και όσον αφορά το ερώτημα γιά το 2ο ζητούμενο, ο τύπος πρέπει να δουλεύει ανεξάρτητα ψάχνοντας σε ποιό κελί ξεκινάει η μάξιμουμ 10αδα. Σας ευχαριστ'ω και πάλι πολύ και τους τρείς σας. |
1 Συνημμένο(α) Παράθεση:
Αγαπητέ Οδυσσέα θα ήθελα αν είναι δυνατόν να μου λύσεις μια απορία που διατυπώνω στο συνημμένο. Είναι κάτι που δεν κατανοώ και θα με ενδιέφερε πραγματικά το πως σκέφτηκες και κατέληξες στη λύση που πρότεινες. Ευχαριστώ εκ των προτέρων για το χρόνο σου. Θανάσης |
1 Συνημμένο(α) Καλημέρα σε όλους Μια λύση με τα δεδομένα σε οριζόντια γραμμή |
1 Συνημμένο(α) Γειά σας. Ειλικρινά αισθάνομαι λίγο αμήχανα,να δίνω εξετάσεις-επειδή έχω πάρα πολύ καιρό να το κάνω-αλλά ειλικρινά είναι απολυτα κατανοητό και φυσικά αποδεκτό, να υπάρχουν οι απορίες για το άν ξέρω τι κάνουν αυτά που προτείνω. Την SUBTOTAL(Το πολυεργαλείο του EXCEL),την χρησιμοποιούμε ευρέως(άρα δεν το ανακάλυψα εγώ) σε συνδυασμό με την OFFSET, για να πέρνουμε "ειδικά" αποτελέσματα βασικά σε περιπτώσεις περιοχών με αυτόματο φίλτρο. Συνδυάζεται άψογα κα με την SUMPRODUCT. Αν θέλετε μπορώ να σας παρουσιάσω μια σειρά από τέτοιες περιπτώσεις που μπορεί να χρησημοποιηθούνε και στην ενότητα "Χρήσιμα παραδείγματα" ή στα Tricks Στο θέμα μας τώρα, προσπαθώ να το κάνω όσο πιό κατανοητό γίνεται. Αυτό που χρειάζεται να γίνει, είναι να προστίθεται η Α1:Α3, Α2:Α4 ΚΛΠ. Αυτό το κάνει η ΟFFSET. #ΤΙΜΗ!.#ΤΙΜΗ!.#ΤΙΜΗ!.#ΤΙΜΗ!.#ΤΙ Η!.#ΤΙΜΗ!.#ΤΙΜΗ!.#ΤΙΜΗ!.0.0} =Είναι το κομμάτι αυτής της φόρμουλας OFFSET(A1;ROW(A1:A10)-1;0;3;1) OFFSET(A1;{1.2.3.4.5.6.7.8.9.10}-10;3;1) = Το ROW(A1:A10), κομμάτι της φόρμουλας.. Έτσι λοιπόν η πρώτη περιοχή ξεκινάει στο Α1, "μετακινείται" 0 γραμμές και έχει "ύψος" που το ορίζουμε σε 3 ή C1 στο παράδειγμά σου. Αυτό θα μας "γυρίσει" το αποτέλεσμα για την περιοχή Α1:Α3. Η 2η περιοχή ξεκινάει από το Α1, "μετακινείται" 1 γραμμή και έχει "ύψος" που το ορίζουμε σε 3 ή C1 στο παράδειγμά σου.κλπ… Βασικά η SUBTOTAL, απλά προσθέτει ομάδες κελιών ανά 3(στην περίπτωσή μας) {6.9.12.15.18.21.24.27.19.10} =Αυτό το κομμάτι της φόρμουλας….SUBTOTAL(9,OFFSET(A1;ROW(A1: A10)-1;0;3;1)) Μετά η MAX, απλά μας δίνει το μάχιμουμ αυτής της περιοχής. Ελπίζω να βοήθησα. |
Οδυσσέα, κακώς ένιωσες αμήχανα και κακώς το εξέλαβες σαν εξετάσεις Η απορία μου απλά είναι πώς το max(#value!;#value!) γίνεται max(6;9;12) Προσωπικά δεν θα μπορούσα να φανταστώ ότι ένα αποτέλεσμα "Λάθους" μπορεί να μετατραπεί σε διάφορες αριθμητικές τιμές. Ελπίζω να με κατανοείς. Ισως μια μέρα βρούμε την απάντηση |
1 Συνημμένο(α) Καλημέρα σε όλους Μια λύση σε συνέχεια προηγούμενης, με τα δεδομένα σε οριζόντια γραμμή και σε στήλη, με διαφορετική προσέγγιση, με καθυστέρηση Θανάσης |
| Η ώρα είναι 23:43. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.