Οι συνδεδεμένοι τύποι δεδομένων κυκλοφόρησαν για πρώτη φορά στο Excel για Microsoft 365 τον ιούνιο του 2018 και, ως εκ τούτου, άλλες δυνατότητες ενδέχεται να μην μπορούν να τις αναγνωρίσουν. Αυτό μπορεί να ισχύει ιδιαίτερα όταν θέλετε να χρησιμοποιήσετε άλλες δυνατότητες για να προσδιορίσετε υπό όρους εάν ένα κελί περιέχει έναν συνδεδεμένο τύπο δεδομένων ή όχι. Αυτό το άρθρο εξηγεί ορισμένες λύσεις που μπορείτε να χρησιμοποιήσετε για να προσδιορίσετε τους συνδεδεμένους τύπους δεδομένων στα κελιά.
Σημείωση: Οι συνδεδεμένοι τύποι δεδομένων είναι διαθέσιμοι μόνο σε παγκόσμια προγράμματα-πελάτες πολλαπλών μισθωτών (τυπικοί λογαριασμοί Microsoft 365 ).
Τύποι
Μπορείτε πάντα να γράφετε τύπους που αναφέρονται σε τύπους δεδομένων. Ωστόσο, εάν θέλετε να εξαγάγετε το κείμενο ενός κελιού με έναν συνδεδεμένο τύπο δεδομένων χρησιμοποιώντας τη συνάρτηση TEXT, θα λάβετε μια #VALUE! .
Μια λύση είναι να χρησιμοποιήσετε τη συνάρτηση FIELDVALUE και να καθορίσετε το πεδίο " όνομα " για το όρισμα " field_name ". Στο παρακάτω παράδειγμα, εάν το κελί a1 περιείχε έναν τύπο δεδομένων μετοχών, ο τύπος θα επέστρεφε το όνομα του αποθέματος.
= FIELDVALUE (a1; "όνομα")
Ωστόσο, εάν το κελί a1 δεν περιέχει έναν συνδεδεμένο τύπο δεδομένων, η συνάρτηση FIELDVALUE θα επιστρέψει ένα #FIELD! σφάλμα. Εάν θέλετε να αξιολογήσετε εάν ένα κελί περιέχει έναν συνδεδεμένο τύπο δεδομένων, μπορείτε να χρησιμοποιήσετε τον παρακάτω τύπο, ο οποίος χρησιμοποιεί τη συνάρτηση ISERROR για να ελέγξετε εάν η συνάρτηση FIELDVALUE θα επιστρέψει σφάλμα.
= IF (ISERROR (FIELDVALUE (a2; "όνομα")), "αυτό το κελί δεν έχει συνδεδεμένο τύπο δεδομένων", "αυτό το κελί έχει έναν συνδεδεμένο τύπο δεδομένων")
Εάν ο τύπος υπολογίσει ένα σφάλμα, τότε θα επιστρέψει το κείμενο "αυτό το κελί δεν έχει συνδεδεμένο τύπο δεδομένων", διαφορετικά, θα επιστρέψει "αυτό το κελί έχει έναν συνδεδεμένο τύπο δεδομένων".
Εάν θέλετε απλώς να αποκρύψετε το #FIELD! σφάλμα, μπορείτε να χρησιμοποιήσετε:
= IFERROR (FIELDVALUE (a1; "όνομα"); "")
Το οποίο θα επιστρέψει ένα κενό κελί, εάν υπάρχει σφάλμα.
Μορφοποίηση υπό όρους
Μπορείτε να μορφοποιήσετε υπό όρους ένα κελί με βάση το αν έχει συνδεδεμένο τύπο δεδομένων ή όχι. Πρώτα θα επιλέξετε τα κελιά που χρειάζονται τη μορφοποίηση υπό όρους και, στη συνέχεια, μεταβείτε στην κεντρική > τη μορφοποίηση υπό όρους > νέο κανόνα > Χρησιμοποιήστε έναν τύπο... Για τον τύπο, θα χρησιμοποιούσατε τα εξής:
= NOT (ISERROR (FIELDVALUE (a1; "όνομα")))
Όπου το κελί a1 είναι το επάνω κελί της περιοχής που θέλετε να αξιολογήσετε. Στη συνέχεια, εφαρμόστε τη μορφή που θέλετε.
Σε αυτό το παράδειγμα, εάν το κελί a1 περιέχει ένα έγκυρο όνομα πεδίου για το "όνομα", ο τύπος επιστρέφει την τιμή TRUE και η μορφοποίηση θα εφαρμοστεί. Εάν το κελί a1 δεν περιέχει έναν συνδεδεμένο τύπο δεδομένων, ο τύπος επιστρέφει την τιμή FALSE και δεν θα εφαρμοστεί μορφοποίηση. Μπορείτε να καταργήσετε το όχι, εάν θέλετε να επισημάνετε τα κελιά που δεν περιέχουν έγκυρους συνδεδεμένους τύπους δεδομένων.
VBA
Υπάρχουν πολλές μέθοδοι VBA (Visual Basic for Applications) τις οποίες μπορείτε να χρησιμοποιήσετε για να προσδιορίσετε εάν ένα κελί ή μια περιοχή περιέχει συνδεδεμένους τύπους δεδομένων. Αυτή η πρώτη διαδικασία χρησιμοποιεί την ιδιότητα HasRichDataType.
Και οι δύο αυτές διαδικασίες θα σας ζητήσουν να επιλέξετε μια περιοχή κελιών για αξιολόγηση και, στη συνέχεια, να επιστραφεί ένα πλαίσιο μηνύματος με τα αποτελέσματα.
Sub IsLinkedDataType()
Dim c As Range
Dim rng As Range
Dim strResults As String
Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
For Each c In rng
' Check if the HasRichDataType is TRUE or FALSE
If c.HasRichDataType = True Then
' The cell holds a linked data type
strResults = strResults & c.Text & " - Linked data type" & vbCrLf
Else
strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
End If
Next c
MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"
End Sub
Αυτή η επόμενη διαδικασία χρησιμοποιεί την ιδιότητα LinkedDataTypeState.
Sub IsLinkedDataTypeState()
Dim c As Range
Dim rng As Range
Dim strResults As String
Set rng = Application.InputBox("Select a range to check for linked data types", Type:=8)
For Each c In rng
' Check if the LinkedDataTypeState is 1 (TRUE) or 0 (FALSE)
If c.LinkedDataTypeState = 1 Then
' The cell holds a linked data type
strResults = strResults & c.Text & " - Linked data type" & vbCrLf
Else
strResults = strResults & c.Text & " - Not a linked data type" & vbCrLf
End If
Next c
MsgBox "Your range contains the following details" & vbCrLf & vbCrLf & strResults, vbInformation + vbOKOnly, "Results"
End Sub
Αυτό το απόσπασμα τελικού κώδικα είναι μια συνάρτηση οριζόμενη από το χρήστη (UDF) και την αναφέρετε ακριβώς όπως κάθε άλλος τύπος του Excel. Απλώς πληκτρολογήστε =fn_IsLinkedDataType (a1), όπου a1 είναι το κελί που θέλετε να αξιολογήσετε.
Public Function fn_IsLinkedDataType(c As Range)
' Function will return TRUE if a referenced cell contains a linked data type
If c.HasRichDataType = True Then
fn_IsLinkedDataType = "Linked data type"
Else
fn_IsLinkedDataType = "Not a linked data type"
End If
End Function
Για να χρησιμοποιήσετε οποιοδήποτε από αυτά τα παραδείγματα, πατήστε το συνδυασμό πλήκτρων ALT + F11 για να ανοίξετε την επεξεργασία Visual Basic (VBE) και, στη συνέχεια, μεταβείτε στο θέμα Εισαγωγή> λειτουργικής μονάδαςκαι επικολλήστε τον κώδικα στο νέο παράθυρο που ανοίγει στα δεξιά. Μπορείτε να χρησιμοποιήσετε το συνδυασμό πλήκτρων ALT + Q για να επιστρέψετε στο Excel όταν τελειώσετε. Για να εκτελέσετε ένα από τα δύο πρώτα παραδείγματα, μεταβείτε στην καρτέλα προγραμματιστής> κωδικό> μακροεντολών> επιλέξτε τη μακροεντολή που θέλετε να εκτελέσετε από τη λίστα και, στη συνέχεια, επιλέξτε εκτέλεση.
Χρειάζεστε περισσότερη βοήθεια;
Μπορείτε ανά πάσα στιγμή να ρωτήσετε έναν ειδικό στην Κοινότητα τεχνικής υποστήριξης του Excel, να λάβετε υποστήριξη από την κοινότητα Answers ή να προτείνετε μια νέα δυνατότητα ή βελτίωση στο Excel User Voice.
Σημείωση: Αυτή η σελίδα έχει μεταφραστεί μέσω αυτοματοποιημένης διαδικασίας και ενδεχομένως να περιέχει γραμματικά λάθη και ανακρίβειες. Ο σκοπός μας είναι αυτό το περιεχόμενο να σας φανεί χρήσιμο. Μπορείτε να μας πείτε εάν σας βοήθησαν αυτές οι πληροφορίες; Εδώ θα βρείτε το άρθρο στα Αγγλικά για να το συμβουλεύεστε.