Αυτά τα χρόνια που ανεβάζω βίντεο στα Excelakia, έχω λάβει αμέτρητα μηνύματα από εσάς – γεμάτα ευχές, σχόλια και ερωτήσεις για το Excel. Ξέρετε όλοι σας ότι έχω προσπαθήσει να απαντήσω σε κάθε απορία σας όσο πιο αναλυτικά μπορούσα. Τώρα πιστεύω πως ήρθε η στιγμή να μοιραστούμε αυτή τη γνώση και να δημιουργήσουμε έναν χώρο ανοιχτής συζήτησης και συνεργασίας.
Σε αυτή την ενότητα, θα ανεβάζω τις πιο συχνές ή ενδιαφέρουσες ερωτήσεις που μου στέλνετε, μαζί με τις λύσεις τους. Σας προσκαλώ να συμμετέχετε ενεργά: σχολιάστε, προτείνετε τη δική σας λύση ή προσθέστε τις παρατηρήσεις σας. Ας δημιουργήσουμε μια κοινότητα όπου μπορούμε να μαθαίνουμε ο ένας από τον άλλον και να εξελισσόμαστε μαζί!
Παρακολούθησε το Video για τις DropDown List στο Excel.
Η Ερώτηση αφορά το παραπάνω video και η απάντηση είναι μία συνέχεια του
Θα ήθελα να σας ρωτήσω για την εξαρτημένη αναπτυσσόμενη λίστα, υπάρχει τρόπος να λειτουργήσει για κελιά που περιέχουν συνδέσμους (links); Κατά την εκτέλεση της offset εμφανίζεται μόνο το κείμενο (text to display) χωρίς την ιδιότητα του συνδέσμου.
Η εξαρτημένη αναπτυσσόμενη λίστα στο Excel μπορεί να λειτουργήσει μόνο με κανονικά κείμενα.
Στις αναπτυσσόμενες λίστες, το Excel μπορεί να εμφανίσει μόνο το κείμενο και όχι το hyperlink (δηλαδή, δεν διατηρεί τη σύνδεση).
Αυτό συμβαίνει επειδή ένας υπερσύνδεσμος στο Excel αποτελείται από δύο βασικά χαρακτηριστικά: το URL και το friendly_name (δηλαδή το εμφανιζόμενο κείμενο).
Ο τύπος HYPERLINK έχει τη μορφή
HYPERLINK(url, [friendly_name]),
Το Excel να απαιτεί το URL για να δημιουργήσει έναν έγκυρο υπερσύνδεσμο. Παρακάτω θα βρείτε μερικές λύσεις για να αντιμετωπίσετε αυτόν τον περιορισμό.
Βήματα
Δημιουργήστε έναν πίνακα με δύο στήλες, όπου η πρώτη στήλη περιέχει το friendly_name και η δεύτερη το URL. Στην στήλη όπου θέλετε να δημιουργηθεί ο υπερσύνδεσμος, χρησιμοποιήστε τον εξής τύπο:
=IFNA(HYPERLINK(VLOOKUP(B2;H8:I18;2;0);B2);””))
Με αυτόν τον τρόπο, κάθε φορά που επιλέγετε μια τιμή από την αναπτυσσόμενη λίστα στο κελί B2, η διπλανή στήλη θα εμφανίζει τον υπερσύνδεσμο.
Για να κάνετε τα πράγματα πιο δυναμικά, μπορείτε να χρησιμοποιήσετε τον παρακάτω κώδικα 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:
Οι εξαρτημένες αναπτυσσόμενες λίστες εμφανίζουν διαφορετικές επιλογές, ανάλογα με την τιμή που επιλέγεται σε μια άλλη λίστα:
=INDIRECT(B2)
. Περισσότερες λεπτομέριες στο σχετικό video στα excelakia “Πως να δημιουργήσετε εξαρτημένη Αναπτυσσόμενη λίστα στο Excel“Για να δημιουργήσετε μια αναπτυσσόμενη λίστα που ενημερώνεται αυτόματα όταν προστίθενται νέες τιμές:
=list_items
.