
30-08-11, 21:06
|
 | Διαχειριστής Όνομα: Τάσος Φιλοξενιδης Έκδοση λογισμικού Office: Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική | | Εγγραφή: 21-10-2009
Μηνύματα: 2.035
| |
Λευτέρη,
Στον τύπο γράφεις: =IF( OR(H16>DataBase!$BD$2;H16<DataBase!$BD$2);"";SUM($CN$13*(L16)*24))
Κατ αρχήν, αφού συγκρίνεις κείμενα, ο τελεστής < ή > δεν είναι ο κατάλληλος.
Γιατί όχι: =IF( H16=DataBase!$BD$2;.....
Όμως, ακόμα και αν διορθώσεις το παραπάνω, το πρόβλημα σου δεν θα λυθεί αφού
ο τύπος σου θα είναι: =IF(H16=DataBase!$BD$2; "";SUM($CN$13*(L16)*24))
που επιστρέφει ("") αν πρόκειται για εργάτη(α).
Όπως είπαμε, θα πρέπει οι τύποι σου που σε κάθε περίπτωση να επιστρέφουν τον ίδιο τύπο δεδομένων.
Δύο εισαγωγικά ( "") = τιμή με τύπο δεδομένων: κείμενο. Ναι είναι τιμή (Στη VB τη συναντούμε σαν vbNullstring)
Αν πχ στο ένα κελί A1 γράψεις: ="" το κελί δεν είναι κενό και θα πάρει τον τύπο δεδομένων: Κείμενο.
Για του λόγου το αληθές, αφου βάλεις τον παραπάνω τύπο (="") στο A1 δοκίμασε: =ISBLANK(A1).
Συνεπώς, η περιοχή AllIncoming όπου περνάς τον τύπο αυτό, περιέχει δεδομένα με ετεροειδείς τύπους δεδομένων.
Έχεις δηλαδή αριθμούς και κείμενα στην περιοχή αυτή με αποτέλεσμα να μην μπορούν να
επεξεργαστούν από την Sumproduct() αλλά και από σχεδόν όλες τις συναρτήσεις πίνακα.
Αν όμως μετατρέψεις τον τύπο έτσι: =IF(H16=DataBase!$BD$2; 0;SUM($CN$13*(L16)*24))
τα περιεχόμενα της περιοχής AllIncoming θα έχουν μόνο έναν τύπο δεδομένων (αριθμό) και θα
μπορούν να επεξεργαστούν απροβλημάτιστα από την Sumproduct().
Καλή συνέχεια!
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |