Μετάβαση στο κύριο περιεχόμενο

Πώς να εξαγάγετε μοναδικές τιμές από πολλές στήλες στο Excel;

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


Εξαγωγή μοναδικών τιμών από πολλές στήλες με τύπους

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

Εξαγωγή μοναδικών τιμών από πολλές στήλες με τον τύπο Array για όλες τις εκδόσεις του Excel

Για χρήστες με οποιαδήποτε έκδοση του Excel, οι τύποι πίνακα μπορεί να είναι ένα ισχυρό εργαλείο για την εξαγωγή μοναδικών τιμών σε πολλές στήλες. Δείτε πώς μπορείτε να το κάνετε:

1. Υποθέτοντας τις τιμές σας στο εύρος Α2: Γ9, εισαγάγετε τον ακόλουθο τύπο στο κελί E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""
Note: Στον παραπάνω τύπο, Α2: Γ9 υποδεικνύει το εύρος των κελιών που θέλετε να εξαγάγετε τις μοναδικές τιμές, E1: E1 είναι το πρώτο κελί της στήλης που θέλετε να τοποθετήσετε το αποτέλεσμα, $ 2: $ 9 στέκεται μπροστά από τις σειρές περιέχει τα κελιά που θέλετε να χρησιμοποιήσετε και $ A: $ C υποδεικνύει ότι οι στήλες περιέχουν τα κελιά που θέλετε να χρησιμοποιήσετε. Αλλάξτε τα στο δικό σας.

2. Στη συνέχεια πατήστε Shift + Ctrl + Enter πλήκτρα μαζί και, στη συνέχεια, σύρετε τη λαβή πλήρωσης για να εξαγάγετε τις μοναδικές τιμές έως ότου εμφανιστούν κενά κελιά. Δείτε το στιγμιότυπο οθόνης:

Επεξήγηση αυτού του τύπου:
  1. $ A $ 2: $ C $ 9: Αυτό καθορίζει το εύρος δεδομένων που θα ελεγχθεί, το οποίο είναι τα κελιά από A2 έως C9.
  2. IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0), ROW($2:$9)*100+COLUMN($A:$C), 7^8):
    • $A$2:$C$9<>"" ελέγχει εάν τα κελιά της περιοχής δεν είναι άδεια.
    • COUNTIF($E$1:E1,$A$2:$C$9)=0 καθορίζει εάν οι τιμές αυτών των κελιών δεν έχουν ακόμη καταχωρηθεί στην περιοχή των κελιών από Ε1 έως Ε1.
    • Εάν πληρούνται και οι δύο προϋποθέσεις (δηλαδή, η τιμή δεν είναι κενή και δεν αναφέρεται ακόμη στη στήλη Ε), η συνάρτηση IF υπολογίζει έναν μοναδικό αριθμό με βάση τη σειρά και τη στήλη της (ROW($2:$9)*100+COLUMN($A: $C)).
    • Εάν δεν πληρούνται οι προϋποθέσεις, η συνάρτηση επιστρέφει έναν μεγάλο αριθμό (7^8), ο οποίος χρησιμεύει ως σύμβολο κράτησης θέσης.
  3. MIN (...): Βρίσκει τον μικρότερο αριθμό που επιστρέφεται από τη συνάρτηση IF παραπάνω, που αντιστοιχεί στη θέση της επόμενης μοναδικής τιμής.
  4. ΚΕΙΜΕΝΟ (..."R0C00"): Μετατρέπει αυτόν τον ελάχιστο αριθμό σε διεύθυνση στυλ R1C1. Ο κωδικός μορφής R0C00 υποδεικνύει τη μετατροπή του αριθμού σε μορφή αναφοράς κελιού Excel.
  5. ΕΜΜΕΣΟΣ(...): Χρησιμοποιεί τη συνάρτηση INDIRECT για να μετατρέψει τη διεύθυνση στυλ R1C1 που δημιουργήθηκε στο προηγούμενο βήμα πίσω σε μια κανονική αναφορά κελιού στυλ A1. Η συνάρτηση INDIRECT επιτρέπει την αναφορά κελιών με βάση το περιεχόμενο μιας συμβολοσειράς κειμένου.
  6. &"": Η προσθήκη &"" στο τέλος του τύπου διασφαλίζει ότι η τελική έξοδος αντιμετωπίζεται ως κείμενο, επομένως οι ζυγοί αριθμοί θα εμφανίζονται ως κείμενο.
 
Εξαγωγή μοναδικών τιμών από πολλές στήλες με τύπο για το Excel 365

Το Excel 365 υποστηρίζει δυναμικούς πίνακες, καθιστώντας πολύ πιο εύκολη την εξαγωγή μοναδικών τιμών από πολλές στήλες:

Εισαγάγετε ή αντιγράψτε τον ακόλουθο τύπο σε ένα κενό κελί όπου θέλετε να τοποθετήσετε το αποτέλεσμα και, στη συνέχεια, κάντε κλικ εισάγετε κλειδί για να λάβετε όλες τις μοναδικές τιμές ταυτόχρονα. Δείτε στιγμιότυπο οθόνης:

=UNIQUE(TOCOL(A2:C9,1))


Εξάγετε μοναδικές τιμές από πολλές στήλες με το Kutools AI Aide

Απελευθερώστε τη δύναμη της Kutools AI Aide για την απρόσκοπτη εξαγωγή μοναδικών τιμών από πολλές στήλες στο Excel. Με λίγα μόνο κλικ, αυτό το έξυπνο εργαλείο περιηγείται στα δεδομένα σας, εντοπίζοντας και παραθέτοντας μοναδικές καταχωρήσεις σε οποιοδήποτε επιλεγμένο εύρος. Ξεχάστε την ταλαιπωρία των πολύπλοκων τύπων ή του κώδικα vba. Αγκαλιάστε την αποτελεσματικότητα του Kutools AI Aide και μετατρέψτε τη ροή εργασίας σας στο Excel σε μια πιο παραγωγική και χωρίς σφάλματα εμπειρία.

Note: Για να το χρησιμοποιήσετε Kutools AI Aide of Kutools για Excel, σας παρακαλούμε κατεβάστε και εγκαταστήστε το Kutools για Excel πρώτη.

Μετά την εγκατάσταση του Kutools για Excel, κάντε κλικ Kutools AI > Βοηθός AI για να ανοίξετε το Kutools AI Aide τζάμι:

  1. Πληκτρολογήστε την απαίτησή σας στο πλαίσιο συνομιλίας και κάντε κλικ Αποστολή πατήστε το κουμπί εισάγετε κλειδί για να στείλετε την ερώτηση?
    "Εξαγωγή μοναδικών τιμών από το εύρος A2:C9, αγνοώντας τα κενά κελιά, και τοποθετήστε τα αποτελέσματα ξεκινώντας από το E2:"
  2. Μετά την ανάλυση, κάντε κλικ Εκτέλεση κουμπί για εκτέλεση. Το Kutools AI Aide θα επεξεργαστεί το αίτημά σας χρησιμοποιώντας AI και θα επιστρέψει τα αποτελέσματα στο καθορισμένο κελί απευθείας στο Excel.


Εξαγάγετε μοναδικές τιμές από πολλές στήλες με συγκεντρωτικό πίνακα

Εάν είστε εξοικειωμένοι με τον συγκεντρωτικό πίνακα, μπορείτε εύκολα να εξαγάγετε τις μοναδικές τιμές από πολλές στήλες με τα ακόλουθα βήματα:

1. Αρχικά, εισαγάγετε μια νέα κενή στήλη στα αριστερά των δεδομένων σας, σε αυτό το παράδειγμα, θα εισαγάγω τη στήλη Α δίπλα στα αρχικά δεδομένα.

2. Κάντε κλικ σε ένα κελί στα δεδομένα σας και πατήστε Alt + D και μετά πατήστε P κλειδί αμέσως για να ανοίξετε το PivotTable και PivotChart Wizard, επιλέξτε Πολλαπλά εύρη ενοποίησης στο βήμα 1 του οδηγού, δείτε το στιγμιότυπο οθόνης:

3. Στη συνέχεια κάντε κλικ στο κουμπί Επόμενο κουμπί, ελέγξτε Δημιουργήστε ένα πεδίο μιας σελίδας για μένα επιλογή στον οδηγό βήμα 2, δείτε το στιγμιότυπο οθόνης:

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

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

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

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


Εξαγάγετε μοναδικές τιμές από πολλές στήλες με κώδικα VBA

Με τον ακόλουθο κώδικα VBA, μπορείτε επίσης να εξαγάγετε τις μοναδικές τιμές από πολλές στήλες.

1. Κρατήστε πατημένο το ALT + F11 και ανοίγει το Παράθυρο Microsoft Visual Basic for Applications.

2. Κλίκ Κύριο θέμα > Μονάδα μέτρησηςκαι επικολλήστε τον ακόλουθο κώδικα στο παράθυρο της ενότητας.

VBA: Εξαγωγή μοναδικών τιμών από πολλές στήλες

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. Στη συνέχεια πατήστε F5 για να εκτελέσετε αυτόν τον κώδικα και θα εμφανιστεί ένα πλαίσιο προτροπής για να σας υπενθυμίσει ότι επιλέγετε το εύρος δεδομένων που θέλετε να χρησιμοποιήσετε. Δείτε το στιγμιότυπο οθόνης:

4. Και στη συνέχεια κάντε κλικ στο κουμπί OK, θα εμφανιστεί ένα άλλο πλαίσιο προτροπής για να σας επιτρέψει να επιλέξετε ένα μέρος για να βάλετε το αποτέλεσμα, δείτε το στιγμιότυπο οθόνης:

5. Πατήστε OK για να κλείσετε αυτό το παράθυρο διαλόγου και όλες οι μοναδικές τιμές έχουν εξαχθεί ταυτόχρονα.


Σχετικά άρθρα:

  • Μετρήστε τον αριθμό των μοναδικών και διακριτών τιμών από μια λίστα
  • Ας υποθέσουμε ότι έχετε μια μεγάλη λίστα τιμών με μερικά διπλά στοιχεία, τώρα, θέλετε να μετρήσετε τον αριθμό των μοναδικών τιμών (οι τιμές που εμφανίζονται στη λίστα μόνο μία φορά) ή διακριτές τιμές (όλες οι διαφορετικές τιμές στη λίστα, αυτό σημαίνει μοναδικό τιμές + 1η διπλή τιμή) σε μια στήλη όπως φαίνεται το αριστερό στιγμιότυπο οθόνης. Αυτό το άρθρο, θα μιλήσω για τον τρόπο αντιμετώπισης αυτής της εργασίας στο Excel.
  • Εξαγωγή μοναδικών τιμών βάσει κριτηρίων στο Excel
  • Ας υποθέσουμε, έχετε το ακόλουθο εύρος δεδομένων που θέλετε να παραθέσετε μόνο τα μοναδικά ονόματα της στήλης Β με βάση ένα συγκεκριμένο κριτήριο της στήλης Α για να λάβετε το αποτέλεσμα όπως φαίνεται παρακάτω το στιγμιότυπο οθόνης. Πώς θα μπορούσατε να αντιμετωπίσετε αυτήν την εργασία στο Excel γρήγορα και εύκολα;
  • Να επιτρέπονται μόνο μοναδικές τιμές στο Excel
  • Εάν θέλετε να διατηρήσετε μόνο μοναδικές τιμές που εισάγονται σε μια στήλη φύλλου εργασίας και να αποτρέψετε τα διπλότυπα, αυτό το άρθρο θα παρουσιάσει μερικά γρήγορα κόλπα για να αντιμετωπίσετε αυτήν την εργασία.
  • Αθροίστε μοναδικές τιμές βάσει κριτηρίων στο Excel
  • Για παράδειγμα, έχω ένα εύρος δεδομένων που περιέχει στήλες Όνομα και Παραγγελία, τώρα, για να συνοψίσω μόνο μοναδικές τιμές στη στήλη Παραγγελία με βάση τη στήλη Όνομα όπως φαίνεται το ακόλουθο στιγμιότυπο οθόνης. Πώς να επιλύσετε αυτήν την εργασία γρήγορα και εύκολα στο Excel;

Τα καλύτερα εργαλεία παραγωγικότητας γραφείου

🤖 Kutools AI Aide: Επανάσταση στην ανάλυση δεδομένων με βάση: Ευφυής Εκτέλεση   |  Δημιουργία κώδικα  |  Δημιουργία προσαρμοσμένων τύπων  |  Αναλύστε δεδομένα και δημιουργήστε γραφήματα  |  Επίκληση Λειτουργιών Kutools...
Δημοφιλή χαρακτηριστικά: Εύρεση, επισήμανση ή αναγνώριση διπλότυπων   |  Διαγραφή κενών γραμμών   |  Συνδυάστε στήλες ή κελιά χωρίς απώλεια δεδομένων   |   Γύρος χωρίς φόρμουλα ...
Σούπερ Αναζήτηση: VLookup πολλαπλών κριτηρίων    VLookup πολλαπλών τιμών  |   VLookup σε πολλά φύλλα   |   Ασαφής αναζήτηση ....
Σύνθετη αναπτυσσόμενη λίστα: Γρήγορη δημιουργία αναπτυσσόμενης λίστας   |  Εξαρτημένη αναπτυσσόμενη λίστα   |  Πολλαπλή αναπτυσσόμενη λίστα ....
Διαχειριστής στήλης: Προσθέστε έναν συγκεκριμένο αριθμό στηλών  |  Μετακίνηση στηλών  |  Εναλλαγή κατάστασης ορατότητας κρυφών στηλών  |  Συγκρίνετε εύρη και στήλες ...
Επιλεγμένα Χαρακτηριστικά: Εστίαση πλέγματος   |  Προβολή σχεδίου   |   Μεγάλη Formula Bar    Διαχείριση βιβλίου εργασίας & φύλλου   |  Βιβλιοθήκη πόρων (Αυτόματο κείμενο)   |  Επιλογή ημερομηνίας   |  Συνδυάστε φύλλα εργασίας   |  Κρυπτογράφηση/Αποκρυπτογράφηση κελιών    Αποστολή email ανά λίστα   |  Σούπερ φίλτρο   |   Ειδικό φίλτρο (φίλτρο με έντονη γραφή/πλάγια γραφή/διαγραφή...) ...
Κορυφαία 15 σύνολα εργαλείων12 Κείμενο Εργαλεία (Προσθήκη κειμένου, Κατάργηση χαρακτήρων, ...)   |   50 + Διάγραμμα Τύποι (Gantt διάγραμμα, ...)   |   40+ Πρακτικό ΜΑΘΗΜΑΤΙΚΟΙ τυποι (Υπολογίστε την ηλικία με βάση τα γενέθλια, ...)   |   19 Εισαγωγή Εργαλεία (Εισαγωγή κωδικού QR, Εισαγωγή εικόνας από το μονοπάτι, ...)   |   12 Μετατροπή Εργαλεία (Αριθμοί σε λέξεις, Μετατροπή Συναλλάγματος, ...)   |   7 Συγχώνευση & διαχωρισμός Εργαλεία (Σύνθετες σειρές συνδυασμού, Διαίρεση κελιών, ...)   |   ... κι αλλα

Αυξήστε τις δεξιότητές σας στο Excel με τα Kutools για Excel και απολαύστε την αποτελεσματικότητα όπως ποτέ πριν. Το Kutools για Excel προσφέρει πάνω από 300 προηγμένες δυνατότητες για την ενίσχυση της παραγωγικότητας και την εξοικονόμηση χρόνου.  Κάντε κλικ εδώ για να αποκτήσετε τη δυνατότητα που χρειάζεστε περισσότερο...

Περιγραφή


Το Office Tab φέρνει τη διεπαφή με καρτέλες στο Office και κάνει την εργασία σας πολύ πιο εύκολη

  • Ενεργοποίηση επεξεργασίας και ανάγνωσης καρτελών σε Word, Excel, PowerPoint, Publisher, Access, Visio και Project.
  • Ανοίξτε και δημιουργήστε πολλά έγγραφα σε νέες καρτέλες του ίδιου παραθύρου και όχι σε νέα παράθυρα.
  • Αυξάνει την παραγωγικότητά σας κατά 50% και μειώνει εκατοντάδες κλικ του ποντικιού για εσάς κάθε μέρα!
Comments (31)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Thank you for this solution, however what if the columns are in separate excel sheet? or is in separate columns instead of a table?
This comment was minimized by the moderator on the site
Hello, Jon,
The methods in this article ar only works well for a range of data, if your data in separate columns, you should copy and paste them into one range first, and then apply the formula or VBA code.
Thank you!
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello, Michael H.
Thanks for your kindly explanation.
Hope this can help others in the future.😄
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello Sir! The VBA worked wonders, thank you very much for that! I was wondering, If I change the original data, is it possible to refresh the column with the unique values automatically?
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello Ioannis,

Glad to help. After you change the original data, the VBA can not refresh the result automatically. And the easiest way I can think of is to press Ctrl + Alt + F9 to refresh all results in worksheets in all open workbooks. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
The array formula at the top is working great when used with data in the same sheet, however when I try to use it to reference the same exact data from another sheet the formula returns nothing. I'm unable to figure out why. Is there a limitation with array functions that prevents you from referencing ranges in a different sheet?

Thanks for any insight you can provide.
This comment was minimized by the moderator on the site
Hello Erin,

Glad to help. The INDIRECT function in this formula is more complicated to use when referencing data in other worksheets. It is not recommended to use this feature when referencing ranges in different worksheets.

For example: Now the data is in Sheet1, I want to reference the content of cell C2 of Sheet1 in Sheet2. First, in any two cells in Sheet2, such as D1 and D2, enter Sheet1 and C2, respectively. At this point, enter the formula in the empty cell of Sheet2:
=INDIRECT("'"&D1&"'!"&D2), then the content of cell C2 in Sheet1 can be returned.

As you can see, it make things way more complex. Hope my explanation can help. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Czy to żart?
This comment was minimized by the moderator on the site
can we create uniqdata function instead of macro?
This comment was minimized by the moderator on the site
Hi, İlhan,If you like a User Defined Function to create a formula for solving this problem, the below code may help you:After inserting the code, select a list of cells where you want to put the results. Then type this formula:=Uniques(A1:C4)  in the formula bar.Press Ctrl+Shift+Enter keys together. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
This comment was minimized by the moderator on the site
Thanks for the code. I'm using the VBA code of this page. Is there a way to add a sorting code after the unique values are extracted so it sorts it automatically?
This comment was minimized by the moderator on the site
Regarding the formula version, could you explain in more detail what this portion is doing? *100+COLUMN($A:$C),7^8)),"R0C00") Specifically, what are the *100, 7^8, and "R0C000" doing? I'm understanding everything else, but I can't figure out what these are for.
This comment was minimized by the moderator on the site
Little late for my response here but...
ROW($2:$9)*100 - this is multiplying the row number *100, so if it's in row 5, now the number is 500
COLUMN($A:$C) - this gets added to the row*100 number, so if it's row 5 col 2, then the number is 502.
7^8)), - this (I think) is to have a max value for the min statement from earlier.
"R0C00") - this formats the text based on the number. In the example, we had 502 so this gives R5C02 (row 5, col 02).

If you have a lot of columns but not many rows, then you could change it to ROW($2:$9)*1000+COLUMN($A:$C),7^8)),"R0C000")
This comment was minimized by the moderator on the site
i've adjusted to my sheet but am only returning the first value in the defined array... what am i missing?
This comment was minimized by the moderator on the site
Hello, Cody,
The above formula works well in my worksheet, could you give a screenshot of your data problem here?
Thank you!
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations