Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Συναρτήσεις] Προσδιορισμός Χ συχνότερων τιμών.

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 04-04-13, 17:38
Eleniath
Guest
 
Μηνύματα: n/a
Προεπιλογή Προσδιορισμός Χ συχνότερων τιμών.

Γειά σας.
Θα μπορούσαμε, εκτός από την πρώτη συχνότερη τιμή, που μας δίνουν οι εκπληκτικοί τύποι του Τάσου σε αυτό το θέμα,

http://www.ms-office.gr/forum/statis...mia-stili.html

Να παίρνουμε και όσες ακόμα θέλουμε; Δηλ. την δεύτερη την Τρίτη την τέταρτη, ή όσες ακόμα θέλουμε συχνότερες τιμές;;
Απάντηση με παράθεση
  #2  
Παλιά 05-04-13, 10:44
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Ελένη, στο επισυναπτόμενο αρχείο μπορείς να δεις μια υλοποίηση του ζητούμενου.

Για τη λύση χρησιμοποιείται η βοηθητική στήλη B2:B21 και οι τύποι πίνακα:

=COUNTIF(A2:A21;A2:A21)*(COUNTIF(OFFSET($A$2;;;ROW (1:20));OFFSET($A$2;ROW(1:20)-1;;1))=1)-ROW(A2:A21)/10^7

=INDEX(A2:A21;MATCH(LARGE(B2:B21;ROW(INDIRECT("$A$ 1:$A$"&COUNTIF(B2:B21;">0"))));B2:B21;0))

Στους παραπάνω τύπους τα δεδομένα είναι στην περιοχή A2:A21.

Περισσότερα στο αρχείο.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: xls XValuesTopFrequency.xls (47,0 KB, 36 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 05-04-13, 11:46
Οδυσσέας
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλημέρα σας.

Ωραίο θέμα-Πολύ ενδιαφέρον, άνοιξες Ελένη.

Να αναλύσω λοιπόν τις προτάσεις μου.

Αρχικά να πώ(ελπίζω να μου επιτρέπει ο Τάσος), ότι για να βρούμε μόνον την (μία) συχνότερη τιμή, μπορούμε να χρησιμοποιήσουμε μία πολύ πιο απλή φόρμουλα και κανονική(Όχι τύπου πίνακα). Δηλ. αν έχουμε για παράδειγμα Ονόματα στην περιοχή Α2:Α30(Το Α1 είναι η επικεφαλίδα), Χρησιμοποιούμε αυτή την φόρμουλα.
Κώδικας:
=INDEX(A2:A1000; MODE(MATCH(A2:A30;A2:A1000;0)))
Έχουμε όμως ένα μειονέκτημα. Αν χρειαζόμαστε να προσθέσουμε ονόματα πέραν του Α30, τότε θα πρέπει κάθε φορά να αλλάζουμε αυτό το κομμάτι της φόρμουλας MATCH(A2:A30;A2:A1000;0))), ανάλογα σε Α31, Α32, Α33 ΚΛΠ. Δεν θα έλεγα ότι είναι και πολύ πρακτικό.

Για αυτό θα χρησιμοποιήσουμε Δυναμικές Ονομαζόμενες Περιοχές(Dynamic Named Ranges).

Πάμε λοιπόν.

Τύποι>>Διαχείριση Ονομάτων>>Δημιουργία.

Στο πλαίσιο Όνομα , ορίζουμε ένα Όνομα. Εγώ επέλεξα Names.

Στο πλαίσιο Αναφορά σε: πληκτρολογούμε αυτόν τον τύπο.

=OFFSET($A$1;0;0;MATCH("*";$A:$A;-1);1

Τώρα λοιπόν έχουμε μία δυναμικά αυτοεπεκτεινόμενη λίστα( μπορείτε να προσθέσετε όσα εσείς Ονόματα θέλετε) στην στήλη Α.

Έτσι λοιπόν χρησιμοποιούμε αυτόν τον τύπο για να πάρουμε το Όνομα που εμφανίζεται τις περισσότερες φορές στην λίστα μας..

=INDEX(Names;MODE(MATCH(Names;Names;0)))

Αυτή η φόρμουλα όμως μας δίνει μόνον το συχνότερο Όνομα. Όχι το 2ο,3ο κλπ…

Έτσι λοιπόν ξεκινώντας από την δεύτερη γραμμή(Η πρώτη γραμμή(Εγώ διάλεξα το κελί Ε2) μπορεί να είναι επικεφαλίδα, αλλιώς να είναι κενή), βάζουμε αυτήν την ARRAY φόρμουλα

Κώδικας:
=INDEX($A$1:$A$100; MODE(IF(($A$1:$A$100<>"") * ISNA(MATCH($A$1:$A$100;$E$1:$E1;0)); MATCH($A$1:$A$100;$A$1:$A$100;0))))
Τραβάμε προς τα κάτω όσο θέλουμε, παίρνοντας έτσι την 2η,3η,4η..κλπ , συχνότερη τιμή.
Όσοι χρησιμοποιούν EXCEL<= 2003, βάζουν την IF(ISERROR, μπροστά για να αποφύγουν τα λάθη όταν τραβάνε προς τα κάτω. Για Excel>2003, την IFERROR.

Κώδικας:
=IF(ISERROR(INDEX($A$1:$A$100; MODE(IF(($A$1:$A$100<>"") * ISNA(MATCH($A$1:$A$100;$E$1:$E6;0));
MATCH($A$1:$A$100;$A$1:$A$100;0))))); "";
INDEX($A$1:$A$100;MODE(IF(($A$1:$A$100<>"") * ISNA(MATCH($A$1:$A$100;$E$1:$E6;0)); MATCH($A$1:$A$100;$A$1:$A$100;0)))))
Κώδικας:
=IFERROR(INDEX($A$1:$A$100; MODE(IF(($A$1:$A$100<>"") * ISNA(MATCH($A$1:$A$100;$E$1:$E7;0));
MATCH($A$1:$A$100;$A$1:$A$100;0)))); "")
Βέβαια η πρότασή μου είναι πάλι, να χρησιμοποιήσουμε Δυναμικές Ονομαζόμενες Περιοχές(Dynamic Named Ranges). Ακολουθούμε τα βήματα που περιέγραψα πιο πάνω. Έτσι η φόρμουλά μας παρουσιάζεται πια ως εξής:

Κώδικας:
=INDEX(Names; MODE(IF((Names<>"") * ISNA(MATCH(Names;$Ε$1:$Ε1;0)); MATCH(Names;Names;0))))
IF(ISERROR ή IFERROR, μπροστά, για τα «λάθη», καθώς “σέρνουμε” προς τα κάτω.

Τι λέτε;


ΥΓ.Από το γραφείο δεν μπορώ να ανεβάσω αρχεία στο Διαδίκτυο. Αν ο Διαχειριστής-οι συντονιστές, κρίνουν ότι θέλουν να χρησιμοποιήσουν την πρότασή μου με κάποιο τρόπο, να ανεβάσω το Σαβ/κο το αρχείο από το σπίτι.

Τελευταία επεξεργασία από το χρήστη gr8styl : 11-04-13 στις 19:35. Αιτία: Διόρθωση πλάτους μηνύματος
Απάντηση με παράθεση
  #4  
Παλιά 06-04-13, 09:35
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Οδυσσέα Καλημέρα

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

Βρίσκω τη λύση σου πάρα πολύ καλή, αλλά κάνοντας δοκιμές διαπίστωσα ότι:
  1. Αν όλες οι τιμές της λίστας δεδομένων είναι μοναδικές (συχνότητα 1) δεν επιστρέφει αποτέλεσμα.
  2. Τα αποτελέσματα αναφέρονται σε τιμές με πολλαπλή εμφάνιση (όσες έχουν συχνότητα 1 αγνοούνται).
Οι παραπάνω περιορισμοί, ανάλογα και με το ζητούμενο, πιθανόν να μη αποτελούν πρόβλημα.

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #5  
Παλιά 06-04-13, 09:42
Eleniath
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλημέρα σας.

Κύριοι δεν έχω λόγια. Απλά υποκλίνομαι.

Και οι 2 λύσεις για μένα δουλεύουν άψογα με εκείνη του Οδυσσέα να δουλεύει σε 1 στήλη.

Οδυσσέα, Γιώργο. Σας ευχαριστώ πολύ για μιά ακόμα φορά.
Απάντηση με παράθεση
  #6  
Παλιά 06-04-13, 12:14
Οδυσσέας
Guest
 
Μηνύματα: n/a
Προεπιλογή

Καλημέρα και από εμένα.

Γιώργο, διακριτικός και ευγενικός, όπως πάντα.

Πράγματι, είναι παράλειψή μου ότι δεν είπα πως ο τύπος δεν δουλεύει για "τιμές" που εμφανίζονται μία και μοναδική φορά στην λίστα. Αν αυτό είναι σε κάποιες ίσως περιπτώσεις πρόβλημα-είδα ότι για την Ελένη δεν είναι, τότε πιστεύω ότι θα μπορούμε να το λύσουμε.

Η χρήση του F9, απομονώνοντας το κάθε μέρος του τύπου, μας δίνει εκπληκτικά σε ανάλυση το τι παράγει το κάθε μέρος, όπως ένας άριστος-σαν εσένα-Exceller γνωρίζει.

Έτσι λοιπόν κάθε μέλος του φόρουμ που επιθυμεί να αναλύσει περισσότερο τον τύπο, μπορεί να ψαχτεί με αυτόν ή άλλον(όπως ο καθένας συνηθίζει να το ψάχνει)τρόπο και να αναλύσει τον τύπο.

Εγώ τουλάχιστον χρησιμοποιώντας αυτόν τον τρόπο προσπαθώ να μάθω περισσότερα πράγματα για το Excel

Ανεβάζω ένα μικρό αρχείο σαν παράδειγμα.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx Λίστα πιο συχνών Ονομάτων..xlsx (13,4 KB, 32 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 07-04-13, 17:14
Το avatar του χρήστη gr8styl
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 19-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 758
Προεπιλογή

Καλησπέρα σας.
Αν και η Ελένη που έβαλε το ερώτημα είπε ότι καλύφθηκε πλήρως, εγώ νομίζω ότι υπάρχουν κάποια σημεία που χρειάζονται περισσότερη προσοχή και για αυτό καταθέτω 2 προτάσεις στο συνημμένο.
Η πρώτη πρόταση χρησιμοποιεί βοηθητική στήλη όπως η πρόταση του Γιώργου, αλλά με απλούς τύπους και όχι πίνακα (no array formula)
Η δεύτερη πρόταση υλοποιείται σε μια στήλη με τύπο πίνακα χωρίς βοηθητική στήλη (αν κατάλαβα καλά προτιμώμενη από την Ελένη). Τα πλεονεκτήματά της σε σχέση με την πρόταση του Οδυσσέα είναι δύο:
1) λαμβάνει υπόψη και τις τιμές που εμφανίζονται μια και μόνο φορά, κάτι που δεν μπορεί να γίνει με την MODE, και
2) λειτουργεί και με λίστες τιμών που μπορούν να περιλαμβάνουν και κενά κελιά.
Νομίζω ότι τα δύο αυτά ζητήματα είναι σημαντικά για να θεωρήσουμε την λύση σαν γενική, όπως οι συναρτήσεις του Τάσου στο θέμα “Προσδιορισμός συχνότερης εγγραφής σε μια στήλη.”
Θα ήθελα να σημειώσω εδώ ότι η πρόταση του Οδυσσέα για απλούστευση των τύπων του Τάσου, δεν καλύπτει την περίπτωση που η αρχική μας λίστα περιέχει κενά, γιατί μας επιστρέφει λάθος !!!

Αν συμφωνείται λοιπόν ότι οι προτάσεις του συνημμένου καλύπτουν πλήρως το θέμα “Προσδιορισμός συχνότερων τιμών” σε γενικότερο πλαίσιο, θα πρότεινα να τις ανεβάσουμε στις Στατιστικές Συναρτήσεις Excel μαζί με αυτές του Τάσου που είναι ήδη εκεί.

Θανάσης

ΥΓ. Τάσο θα μπορέσεις να επιληφθείς της κατάλληλης μορφοποίησης για την ενότητα Συναρτήσεις Excel
Συνημμένα Αρχεία
Τύπος Αρχείου: xls Freq_values_in_list_01.xls (52,0 KB, 29 εμφανίσεις)
Απάντηση με παράθεση
  #8  
Παλιά 08-04-13, 00:05
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

Στο επισυναπτόμενο αρχείο υπάρχει μια άλλη προσέγγιση του ζητούμενου.

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

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

Περισσότερες λεπτομέρειες στο αρχείο.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: xls ValuesTopFrequency2.xls (47,5 KB, 26 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη kapetang : 08-04-13 στις 08:05. Αιτία: αλλαγή συνημμένου λόγω βελτίωσης τύπου
Απάντηση με παράθεση
  #9  
Παλιά 08-04-13, 00:44
Eleniath
Guest
 
Μηνύματα: n/a
Προεπιλογή

Τι να πώ;;

Απλά είμαι περίεργη. Θα δώ και άλλα;
Απάντηση με παράθεση
  #10  
Παλιά 08-04-13, 13:47
Οδυσσέας
Guest
 
Μηνύματα: n/a
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από Eleniath Εμφάνιση μηνυμάτων
Τι να πώ;;

Απλά είμαι περίεργη. Θα δώ και άλλα;
Δεν πρέπει βρε Ελένη;

Γειά σας.

Να πω 2 πράγματα.

Το συγκεκριμένο θέμα-όπως και τα περισσότερα στο Excel, μπορεί να λυθεί με πολλούς συνδυασμούς συναρτήσεων που δημιουργούν με την σειρά τους(κατά κανόνα) περίπλοκους τύπους.Κατά κανόνα, τύπους Πίνακα(Array formula), όπως αυτοί που δώσαμε ο Γιώργος, ο Θανάσης και εγώ σε αυτό το θέμα. Όλοι τους με τα πλεονεκτήματά τους και τα μειονεκτήματά τους.

Ένας ακόμα, για να καλύψουμε και την περίπτωση των τιμών(ονομάτων) που εμφανίζονται μόνο μία φορά-θεωρώ ότι απο παραδρομή αναφέρθηκε ότι ο τύπος που πρότεινα δεν καλύπτει την περίπτωση κενών κελιών-είναι ο εξής: Σε ένα κελί(διάλεξα το G2) αυτός ο τύπος πίνακα, και κάτω

Κώδικας:
=INDEX($A$2:$A$100; SMALL(IF(FREQUENCY(IF($A$2:$A$100<>""; MATCH($A$2:$A$100;$A$2:$A$100;0)); ROW($A$2:$A$100)-ROW(A1)+1);
ROW($A$2:$A$100)-ROW(A1)+1); ROWS($G$2:G2)))
Μού αρέσει πολύ να ψάχνω-ψάχνομαι για-σε τέτοιες φόρμουλες. Σου δίνουν την ικανοποίηση της "δικιάς σου" δημιουργίας, όταν τις στήνεις ή αλλάζεις κάποια στοιχεία από κάποιες άλλες που έχεις βρεί και παράγεις έτσι διαφορετικά αποτελέσματα. Στο αρχείο μου έχω πάρα πάρα πολλές τέτοιες φόρμουλες. Τις περισσότερες από αυτές, ΔΕΝ τις έχω φτιάξει εγώ.Το διαδίκτυο είναι γεμάτο από αυτές. Εκατομμύρια....

Άν το είχα κάνει, μάλλον τώρα θα ήμουν πολύ μεγάλο στέλεχος της Microsoft και θα ήμουν αλλού. Μακριά από μένα λοιπόν ο τίτλος του ειδικού στο Excel.

Θεωρώ την εμπειρία και την μακρόχρονη τριβή με το αντικείμενο σαν τον καλύτερο Δάσκαλο. Προσωπικά ασχολιέμαι απο το 1997! Το παράτησα εντελώς για 5 χρόνια το 2007 και κανένα εξάμηνο τώρα, ξανακόλησα...

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

Κλείνοντας να πώ κάτι που πρίν χρόνια μου είπε ο τότε Πρωταθλητής Ελλαδας στο πρωτάθλημα Rally, με το οποίο φυσικά συμφωνώ απόλυτα.

"..Έχε υπόψιν σου φίλε μου, ότι οι καλύτεροι οδηγοί αγώνων δεν έχουν ιδέα για τι πως δουλεύει η μηχανη των αυτοκινήτων τους. Όμως οι εταιρείες τους πληρώνουν εκατομμύρια για να κάνουν καλά αυτό που ξέρουν. Να οδηγούν γρήγορα και να τους φέρνουν τα πρωταθλήματα.."

Καλή εβδομάδα.

Τελευταία επεξεργασία από το χρήστη gr8styl : 11-04-13 στις 19:38. Αιτία: Διόρθωση πλάτους μηνύματος
Απάντηση με παράθεση
Απάντηση στο θέμα

Ετικέτες
array formula, dynamic names, δυναμικά ονόματα, τύπος πίνακα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Εύρεση των X συχνότερων τιμών kapetang Excel - Tips & Tricks 0 12-04-13 10:13
Προσδιορισμός μελλοντικού χρόνου makisak Access - Ερωτήσεις / Απαντήσεις 8 14-06-12 20:04
Προσδιορισμός συχνότερης τιμής σε μια στήλη Tasos Στατιστικές 0 14-10-11 10:58
Προσδιορισμός τριμήνου με βάση μια ημερομηνία. Tasos Ημερομηνία & ώρα 0 30-09-11 12:51


Η ώρα είναι 05:44.