| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Καλησπέρα σας! θελω μια μεγάλη βοήθεια!!! Εχω ενα αρχειο excel με μεγαλο αριθμο κελιων με ΑΦΜ όπου το αρχικό μηδέν δε φάινεται. Πως μπορώ σε όλα αυτά να προσθέσω αυτόματα το μηδέν μπροστά χωρίς να πάω σε ενα ένα και να βάζω 0 κάνοντας το και κείμενο? Ευχαριστώ εκ των προτέρων |
|
#2
| ||||
| ||||
|
Αν οι Α.Φ.Μ. είναι ελληνικοί και όχι εντός Ε.Ε. (ενδοκοινοτικοί συναλλασσόμενοι), τότε η παρακάτω συνάρτηση θα σε βοηθήσει: =REPT("0";9-LEN(A1))&A1 π.χ. Αν το κελί Α1 έχει τον ΑΦΜ "5896547", γράψε την παραπάνω συνάρτηση στο Β1 και το αποτέλεσμα θα είναι "005896547". Μετά απλά τράβα τη συνάρτηση και στα υπόλοιπα κελιά.
__________________ Your Curiosity Will Be The Death Of You! |
|
#3
|
|
Καλησπέρα Επειδή δεν το γνωρίζω, το ρωτάω... Υπάρχουν ΑΦΜ που αρχίζουν με 2 ή περισσότερα μηδενικά; |
|
#4
| ||||
| ||||
|
Με 2 έχω δει σίγουρα. Μπορεί να υπάρχουν και με περισσότερα, αρκεί φυσικά να επαληθεύονται από τον αλγόριθμο δημιουργίας ΑΦΜ.
__________________ Your Curiosity Will Be The Death Of You! |
|
#5
|
|
Επομένως Αν δεν είμαστε 100% σίγουροι, για τον αριθμό των μηδενικών που μπορεί να αρχίζει ένας ΑΦΜ, αν ο χρήστης έχει πχ 45678, εκ παραδρομής, τότε κάθε τύπος που θα του δώσει αποτέλεσμα 000045678 είναι λάθος απάντηση... ενώ θα έπρεπε να «ειδοποιεί» για σφάλμα... |
|
#6
| ||||
| ||||
|
Τότε η παρακάτω συνάρτηση πρέπει να χρησιμοποιηθεί μέσω VBA για τον έλεγχο ορθότητας ΑΦΜ: Κώδικας: Function ValidAFM(Afm As String) As Boolean
ValidAFM = False
If Len(Trim(Afm)) = 9 Then
Dim Sum As Long
For I = 8 To 1 Step -1
Sum = Sum + Val(Mid(Afm, I, 1)) * 2 ^ (9 - I)
Next
ValidAFM = (((Sum Mod 11) Mod 10) = Val(Right(Afm, 1)))
End If
End Function
__________________ Your Curiosity Will Be The Death Of You! |
|
#7
|
|
Χρήστο, να τσεκάρεις τη συνάρτηση...
|
|
#8
| |||
| |||
|
Υπάρχουν δυο ειδών κελιά. Αυτά που είναι 9 ψηφίων και είναι εντάξει Και υπάρχουν και αυτά που έχουν 8 ψηφία και λείπει μπροστά το μηδέν Πως βάζω σε όσα είναι 8 ψηφίων ένα μηδέν μπροστά. Το κελί τι πρέπει να ειναι? Λογικά αριθμός? Τελευταία επεξεργασία από το χρήστη Spirosgr : 19-09-16 στις 09:39. |
|
#9
|
|
Πρόσεξε το σκεπτικό... Υποθέτω, ότι ένας ΑΦΜ, έχει μέχρι 2 μηδενικά στην αρχή του και πρέπει: 1. Να έχει 9 ψηφία σύνολο... 2. Να είναι έγκυρος (με βάση τον αλγόριθμο ή τον κώδικα που θα τον ελέγξει) Κανονικά όταν κρατάμε ΑΦΜ σε μια στήλη, θα πρέπει να είναι μορφοποιημένη Text εξ' αρχής. Αν δεν είναι, (εδώ είναι και το πρόβλημα του φίλου) τότε: Πρέπει ένας κώδικας να ελέγξει κάθε κελί χωριστά και να κάνει τα εξής: 1. Μορφοποιεί το κελί "@" = text 2.Μετράει το len του ΑΦΜ 2α. Αν είναι 9 τότε ελέγχει την εγκυρότητα... 2β. Αν δεν είναι 9 (και μέχρι 7) τότε: Για κάθε ψηφίο μέχρι τα 9 που «λείπει» , προσθέτει τόσα μηδενικά και ελέγχει την εγκυρότητα του «νέου» ΑΦΜ 2γ. Αν είναι λιγότερα από 7 τότε χρωματίζει πχ κόκκινο (ο ΑΦΜ δεν έχει τα απαιτούμενα ψηφία) Αν το 2α είναι true τότε προχωράει, αν είναι false τότε χρωματίζει πχ γκρι (ο ΑΦΜ δεν είναι έγκυρος) Αν το 2β είναι true (μετά τη προσθήκη των / του μηδενικού) τότε προχωράει, αν είναι false τότε χρωματίζει πχ γκρι (ο ΑΦΜ δεν είναι έγκυρος) Καταλαβαίνεις, ότι για να γίνει σωστά η δουλειά, το θέμα είναι όχι δύσκολο, αλλά σύνθετο... |
|
#10
| ||||
| ||||
|
Έκανα μερικές τροποποιήσεις για να μπορεί να χρησιμοποιηθεί και σε Excel ώστε να ελέγχει αν ένας ελληνικός ΑΦΜ είναι ορθός και να τον επιστρέφει πλήρες (αν του λείπουν μηδενικά): Κώδικας: Function AFM(Str As String) As String
Dim I As Long, Sum As Long
If Len(Str) > 9 Or Not IsNumeric(Str) Then
AFM = "Μη έγκυρος Α.Φ.Μ."
Exit Function
End If
Str = String(9 - Len(Str), "0") & Str
For I = 8 To 1 Step -1
Sum = Sum + Val(Mid(Str, I, 1)) * 2 ^ (9 - I)
Next
AFM = IIf((Sum Mod 11) Mod 10 = Val(Right(Str, 1)), Str, "Μη έγκυρος Α.Φ.Μ.")
End Function
__________________ Your Curiosity Will Be The Death Of You! |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| Εργαλεία Θεμάτων | |
| Τρόποι εμφάνισης | |
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Πρόβλημα με συνάρτηση που θέλω να επιστρέφει τιμή μηδέν | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 11 | 10-01-15 14:06 |
| Ερώτημα μετάφρασης text σε αριθμό μήδεν ( 0 ) | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 3 | 07-02-14 05:09 |
| [ Ερωτήματα ] Όπου το πεδίο είναι κενό να παίρνει την τιμή 0 (μηδέν) | mousatos | Access - Ερωτήσεις / Απαντήσεις | 3 | 01-01-14 17:29 |
Η ώρα είναι 10:11.


Αλλαγή σε γραμμικό τρόπο

