Answer your questions

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

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

Παρακολούθησε το Video για τις DropDown List στο Excel.

Η Ερώτηση αφορά το παραπάνω video και η απάντηση είναι μία συνέχεια του

Ερωτηση

27be83b1-6548-4a42-9e27-dfa368420ea5

Θα ήθελα να σας ρωτήσω για την εξαρτημένη αναπτυσσόμενη λίστα, υπάρχει τρόπος να λειτουργήσει για κελιά που περιέχουν συνδέσμους (links); Κατά την εκτέλεση της offset εμφανίζεται μόνο το κείμενο (text to display) χωρίς την ιδιότητα του συνδέσμου.

Απαντηση

Η εξαρτημένη αναπτυσσόμενη λίστα στο Excel μπορεί να λειτουργήσει μόνο με κανονικά κείμενα.

Στις αναπτυσσόμενες λίστες, το Excel μπορεί να εμφανίσει μόνο το κείμενο και όχι το hyperlink (δηλαδή, δεν διατηρεί τη σύνδεση).

Αυτό συμβαίνει επειδή ένας υπερσύνδεσμος στο Excel αποτελείται από δύο βασικά χαρακτηριστικά: το URL και το friendly_name (δηλαδή το εμφανιζόμενο κείμενο).

Ο τύπος HYPERLINK έχει τη μορφή

HYPERLINK(url, [friendly_name]),

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

Τι μπορείς να κάνεις όμως για να το αντιμετωπίσεις ;

Λύση 1: Δημιουργία Πίνακα με Χρήση του VLOOKUP και της Συνάρτησης HYPERLINK

Βήματα

Δημιουργήστε έναν πίνακα με δύο στήλες, όπου η πρώτη στήλη περιέχει το friendly_name και η δεύτερη το URL. Στην στήλη όπου θέλετε να δημιουργηθεί ο υπερσύνδεσμος, χρησιμοποιήστε τον εξής τύπο:

=IFNA(HYPERLINK(VLOOKUP(B2;H8:I18;2;0);B2);””))

  • B2: Το κελί με την αναπτυσσόμενη λίστα.
  • H8:I18 : Ο πίνακας που περιέχει το friendly_name και τα URL.

 

Με αυτόν τον τρόπο, κάθε φορά που επιλέγετε μια τιμή από την αναπτυσσόμενη λίστα στο κελί B2, η διπλανή στήλη θα εμφανίζει τον υπερσύνδεσμο.

Λύση 2: Χρήση VBA για Αυτόματη Δημιουργία Υπερσυνδέσμων

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

Βήματα

  • Κάντε δεξί κλικ στην καρτέλα του φύλλου όπου βρίσκεται η αναπτυσσόμενη λίστα και επιλέξτε View Code.
  • Επικολλήστε τον παρακάτω κώδικα στο παράθυρο VBA που εμφανίζεται:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim cell As Range

Dim linkAddress As String

Dim lookupRange As Range

Dim foundCell As Range

' Ορισμός του εύρους που περιέχει τον πίνακα (friendly_name και URL)

Set lookupRange = Me.Range("G9:H18")

' Έλεγχος αν η αλλαγή έγινε στα κελιά B2:B99

If Not Intersect(Target, Me.Range("B2:B99")) Is Nothing Then

' Επανάληψη για κάθε κελί που αλλάχθηκε στην περιοχή

For Each cell In Target

' Έλεγχος αν το κελί δεν είναι κενό

If Not IsEmpty(cell.Value) Then

' Αναζήτηση του friendly_name στο lookupRange

Set foundCell = lookupRange.Columns(1).Find(cell.Value, LookIn:=xlValues, LookAt:=xlWhole)

' Αν βρεθεί το friendly_name, τότε πάρε τη διεύθυνση URL από τη διπλανή στήλη

If Not foundCell Is Nothing Then

linkAddress = foundCell.Offset(0, 1).Value

Else

linkAddress = ""

End If

' Διαγραφή υπάρχοντος υπερσυνδέσμου στο συγκεκριμένο κελί

If cell.Hyperlinks.Count > 0 Then

cell.Hyperlinks.Delete

End If

' Δημιουργία υπερσυνδέσμου αν υπάρχει έγκυρο linkAddress

If linkAddress <> "" Then

Me.Hyperlinks.Add Anchor:=cell, Address:=linkAddress, TextToDisplay:=cell.Value

End If

End If

Next cell

End If

End Sub

Κλείστε το παράθυρο VBA και αποθηκεύστε το αρχείο ως .xlsm (Excel Macro-Enabled Workbook) για να διατηρήσετε την ενεργοποίηση του κώδικα.

Με αυτόν τον κώδικα, κάθε φορά που εισάγετε ή επιλέγετε ένα friendly_name (π.χ., “Diesel Discovery”) στην περιοχή B2 από την αναπτυσσόμενη λίστα, δημιουργείται αυτόματα ένας υπερσύνδεσμος βασισμένος στην αντίστοιχη URL από τον πίνακα G9:H18

Κατεβάστε το αρχείο με την παραπάνω λύση από εδώ 

Συχνές Ερωτήσεις

Εδώ είναι τρεις συχνές ερωτήσεις για τις αναπτυσσόμενες λίστες (dropdown lists) στο Excel, μαζί με σύντομες απαντήσεις:

Για να δημιουργήσετε μια αναπτυσσόμενη λίστα στο Excel:

  • Επιλέξτε το κελί ή τα κελιά όπου θέλετε να εμφανίζεται η λίστα.
  • Μεταβείτε στην καρτέλα Data (Δεδομένα) και επιλέξτε Data Validation (Επικύρωση Δεδομένων).
  • Στο παράθυρο Data Validation, στην επιλογή Allow (Να επιτρέπεται), επιλέξτε List (Λίστα).
  • Στο πεδίο Source (Προέλευση), εισάγετε τις τιμές που θέλετε να εμφανίζονται στη λίστα, χωρισμένες με κόμμα, ή επιλέξτε ένα εύρος κελιών που περιέχει τις τιμές.
  • Πατήστε OK για να ολοκληρώσεΠερισσότερες λεπτομέριες στο video μου στα excelakia “Drop-down list Αναπτυσσόμενες λίστες στο Excel

Οι εξαρτημένες αναπτυσσόμενες λίστες εμφανίζουν διαφορετικές επιλογές, ανάλογα με την τιμή που επιλέγεται σε μια άλλη λίστα:

  • Δημιουργήστε τις κύριες επιλογές σας (π.χ., Κατηγορίες) σε μια στήλη και τις υποκατηγορίες σε άλλες στήλες, ομαδοποιημένες με βάση τις κατηγορίες.
  • Ονομάστε το κάθε εύρος τιμών των υποκατηγοριών με βάση την αντίστοιχη τιμή της κύριας λίστας (π.χ., ονομάστε το εύρος των τιμών για την κατηγορία “Φρούτα” ως “Φρούτα”).
  • Στη δευτερεύουσα λίστα, χρησιμοποιήστε τη συνάρτηση INDIRECT στο πεδίο Source στην Data Validation για να ανατρέξει στη δευτερεύουσα λίστα. Για παράδειγμα, αν το κύριο κελί είναι B2, στο πεδίο Source εισάγετε =INDIRECT(B2). Περισσότερες λεπτομέριες στο σχετικό video στα excelakia “Πως να δημιουργήσετε εξαρτημένη Αναπτυσσόμενη λίστα στο Excel

Για να δημιουργήσετε μια αναπτυσσόμενη λίστα που ενημερώνεται αυτόματα όταν προστίθενται νέες τιμές:

  • Δημιουργήστε μια δυναμική περιοχή (dynamic range) χρησιμοποιώντας πίνακες του Excel . Επιλέξτε το εύρος των τιμών και μεταβείτε στην καρτέλα Insert > Table για να το μετατρέψετε σε πίνακα (ctrl+T). Οι πίνακες του Excel επεκτείνονται αυτόματα όταν προσθέτετε νέες τιμές.
  • Στη συνέχεια, χρησιμοποιήστε το όνομα του πίνακα ή της στήλης στον πίνακα ως Source (Προέλευση) στην Data Validation. Για παράδειγμα, αν ονομάσετε την περιοχή ως “list_items”, στο πεδίο Source εισάγετε =list_items.