Forum

Αναζήτηση στο ms-office.gr

Πάμε!
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Συναρτήσεις] Φιλτράρισμα και επιστροφή δεδομένων

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 15-11-19, 15:07
Όνομα: Κώστας
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 76
Προεπιλογή Φιλτράρισμα και επιστροφή δεδομένων

Την καλησπέρα μου σε όλους,
προσπαθώ να φτιάξω ένα αρχείο Excel για την δουλειά, αλλά δεν γνωρίζω πως να εφαρμόσω συνάρτηση.
Συγκεκριμένα έχω δυο φύλλα στο βιβλίο εργασίας. Στο πρώτο φύλλο έχω τα στοιχεία, ας πούμε π.χ. ΑΦΜ, ΕΠΙΘΕΤΟ, ΟΝΟΜΑ, ΠΕΡΙΟΧΗ. Στο δεύτερο φύλλο θέλω με την συνάρτηση FILTER (για την οποία έμαθα τυχαία ψάχνοντας στο internet), να εμφανίζονται τα ίδια πεδία φιλτραρισμένα ως προς την περιοχή.
Επειδή όπως είπα δεν γνωρίζω από συναρτήσεις, θα εκτιμούσα πολύ κάποιο παράδειγμα όπου εγώ θα αντικαταστήσω τα ονόματα των πεδίων απλά.
Ευχαριστώ για τον χρόνο σας.
Απάντηση με παράθεση
  #2  
Παλιά 15-11-19, 23:51
Όνομα: Κώστας
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 76
Προεπιλογή

Καλησπέρα και πάλι,
για να βοηθήσω να γίνει πιο κατανοητό αυτό που θέλω, επισυνάπτω ένα excel όπως αυτό που θέλω να ετοιμάσω. Εκείνο που ζητάω είναι, διαλέγοντας τμήμα στο Φύλλο2, να εμφανίζονται από κάτω εκείνες οι εγγραφές του Φύλλου1 που αντιστοιχούν στο συγκεκριμένο τμήμα.
Ελπίζω στη βοήθειά σας. Θα με γλυτώσει από πολύ χρόνο.
Ευχαριστώ.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx ΚΑΤΑΣΤΑΣΗ ΒΑΘΜΟΛΟΓΙΑΣ - Αντιγραφή.xlsx (36,4 KB, 13 εμφανίσεις)
Απάντηση με παράθεση
  #3  
Παλιά 16-11-19, 18:08
Όνομα: Κώστας
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 76
Προεπιλογή

Καλησπέρα σε όλο το forum,
συνεχίζοντας το ψάξιμο στο internet, μήπως καταφέρω να φτιάξω το excel μου όπως το θέλω, βρήκα τον παρακάτω κώδικα:
Παράθεση:
'In a Standard Module

Option Explicit
Function FilterAndCopy(rng As Range, Choice As String)

Dim FiltRng As Range
'Clear Contents to show just new search data
Worksheets("Sheet2").Cells.ClearContents
'Set the column to filter (In This Case 1 or A)
'Change as required
rng.AutoFilter Field:=1, Criteria1:=Choice
On Error Resume Next
Set FiltRng = rng.SpecialCells(xlCellTypeVisible).EntireRow
On Error GoTo 0

'Copy Data across to sheet 2
FiltRng.Copy Worksheets("Sheet2").Range("A1")
'Display Data
Worksheets("Sheet2").Select
Range("A1").Select
Set FiltRng = Nothing
End Function

Sub formshow()
'Show Search Form
UserForm1.Show
End Sub

'************************************************* ****************
'In a userform

Option Explicit

Private Sub CommandButton1_Click()
Dim rng As Range

'Set Error Handling
On Error GoTo ws_exit:
Application.EnableEvents = False
'Set Range
Set rng = ActiveSheet.UsedRange
'Cancel if no value entered in textbox
If TextBox1.Value = "" Then GoTo ws_exit:
'Call function Filterandcopy
FilterAndCopy rng, TextBox1.Value
rng.AutoFilter
'Exit sub
ws_exit:
Set rng = Nothing
Application.EnableEvents = True
Unload Me
End Sub

Private Sub CommandButton2_Click()
'Cancel Button
Unload Me
End Sub
Βέβαια πιστεύω πως χρειάζεται διορθώσεις για να ταιριάξει με το αρχείο μου, τις οποίες όμως δεν γνωρίζω.
Εδώ έρχεται η δική σας βοήθεια, εφόσον θέλει κάποιος να ασχοληθεί.
Το ίδιο ισχύει για ένα έτοιμο αρχείο Excel που βρήκα πάλι στο internet. Έχει ένα κουμπί αναζήτησης, αλλά πάλι χρειάζεται προσαρμογή στο δικό μου αρχείο ο κώδικάς του. Άρα ξαναγυρνάω στη δίκη σας βοήθεια.
Ευχαριστώ, θα περιμένω νέα σας.
Συνημμένα Αρχεία
Τύπος Αρχείου: xls copy and paste using filter.xls (172,5 KB, 7 εμφανίσεις)

Τελευταία επεξεργασία από το χρήστη caudillo : 16-11-19 στις 18:36.
Απάντηση με παράθεση
  #4  
Παλιά 17-11-19, 10:23
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

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

Η συνάρτηση =Filter(), ισχύει για Excel 365.
Αν έχεις τέτοια έκδοση
(παρακαλώ ενημέρωσε το profile σου για να μπορούμε να απαντάμε με τα σωστά εργαλεία)
τότε:
Κώδικας:
=FILTER(Φύλλο1!A3:D15;Φύλλο1!C3:C15=Φύλλο2!E8,"")
στο πρώτο κελί,, που θέλεις να δεις την φιλτραρισμένη λίστα σου,
με κριτήριο που βρίσκεται στο κελί Ε8 (drop down) του 2ου φύλλου.

*Μπορείς επιπλέον, να βάλεις την =Filter(), ένθετη σε μια =Sort(),
για να πάρεις τα αποτελέσματα ταξινομημένα (προαιρετικό).


Για τις άλλες εκδόσεις του Excel, που δεν υποστηρίζουν την =Filter():
Κώδικας:
=INDEX(Φύλλο1!$B$3:$B$15;SMALL(IF(Φύλλο1!$D$3:$D$15=Φύλλο2!$E$8;
ROW(Φύλλο1!$B$3:$B$15)-ROW(Φύλλο1!$B$3)+1);ROWS(Φύλλο1!$B$3:$B3)))
Ο τύπος είναι Array, και πρέπει να εισαχθεί με Ctrl+Shift+Enter.

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

Τέλος...
λύσεις, μπορούν να δοθούν και με:
1. Pivot Table
2. Σύνθετο φίλτρο (στο ίδιο φύλλο με τα δεδομένα)
3. Με κώδικα VBA...
Απάντηση με παράθεση
  #5  
Παλιά 17-11-19, 16:01
Όνομα: Κώστας
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 76
Προεπιλογή

Καλησπέρα Σπύρο και σ' ευχαριστώ για τον χρόνο, τον κόπο και την διάθεσή σου να ασχοληθείς με το θέμα μου.
Η έκδοση του Office που χρησιμοποιώ είναι το 2016, οπότε δοκίμασα την δεύτερη συνάρτηση που προτείνεις και δουλεύει εν μέρει. Δηλαδή μου βγάζει μόνο το πρώτο επίθετο από τους μαθητές του τμήματος που διαλέγω, ενώ εγώ θέλω όλους τους μαθητές του συγκεκριμένου τμήματος και όλα τα στοιχεία τους (αριθμό μητρώου, επίθετο, όνομα).
Αν δεν σου κάνει κόπο θα ήθελα να με καθοδηγήσεις ως προς το αν έκανα κάτι λάθος ή θέλει κάποιο διόρθωμα η συνάρτηση.
Και πάλι σ' ευχαριστώ.
Απάντηση με παράθεση
  #6  
Παλιά 17-11-19, 16:16
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.402
Προεπιλογή

Λογικό είναι να δίνει αυτό το αποτέλεσμα,
αφού η περιοχή που ελέγχει η συνάρτηση, είναι η: «Φύλλο1!$B$3:$B$15»

Η συνάρτηση, είναι «μπούσουλας» για να φέρουμε «κάτι» στο δεύτερο φύλλο.

Τώρα, τι θα έκανα εγώ:
Σίγουρα έναν πίνακα με φίλτρο, χωρίς καμία συνάρτηση...
Αλλά,
αν θέλεις οπωσδήποτε λύση με τύπο,
γράψε την ίδια συνάρτηση, με περιοχή την στήλη Α
(μητρώο, μιας και είναι και μοναδικός αριθμός)
και μετά, δίπλα στο κάθε μητρώο, φέρε με συνδυασμό =Index() & =Match() ό, τι άλλο θέλεις...
Απάντηση με παράθεση
  #7  
Παλιά 17-11-19, 18:06
Όνομα: Κώστας
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 16-03-2015
Μηνύματα: 76
Προεπιλογή

Σπύρο σ' ευχαριστώ για όλα.
Θα το δουλέψω να δω τι θα καταφέρω. Καλή συνέχεια.
Απάντηση με παράθεση
Απάντηση στο θέμα

Εργαλεία Θεμάτων
Τρόποι εμφάνισης

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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[Γενικά] καταμετρηση δεδομενων μετα απο φιλτραρισμα GreekPowers Excel - Ερωτήσεις / Απαντήσεις 2 15-10-15 23:04
Επιστροφή από τα παλιά για να τα πούμε kon73 Off topic - Εκτός θέματος 0 13-03-14 06:04
[Συναρτήσεις] Πολλαπλό φιλτράρισμα και διαγραφή δεδομένων pm4698 Excel - Ερωτήσεις / Απαντήσεις 6 28-02-14 14:30
[ Ερωτήματα ] Επιστροφή κενών πεδιών dmarop Access - Ερωτήσεις / Απαντήσεις 2 16-03-13 02:53
[ Φόρμες ] ΕΠΙΣΤΡΟΦΗ ΚΕΡΣΟΡΑ ΣΕ ΠΕΔΙΟ artchrist73 Access - Ερωτήσεις / Απαντήσεις 3 27-11-11 17:55


Η ώρα είναι 06:54.