| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλησπέρα σας!πρόσφατα ανακάλυψα την σελίδα σας και με έχει βοηθήσει ήδη αρκετά σε διάφορα προβλήματα! θα ήθελα να ρωτήσω κάτι σχετικά με το excel και με την μέθοδο των τριων ποιο αναλυτικά εχω τα κελία Α2,Β2,Α3,Β4 στα κελία Α2 και Β2 έχω δεδομένα που αλλάζουν μια φορα την ημέρα.στο κελί Α3 εχώ τον αριθμό 100 και στο κελί Β4 βγαίνει το ποσοστο απο την μέθοδο των τριων (δηλ =((Α3*Β2)/Α2)/100)) και μου εμφανίζει το % αποτέλεσμα θέλω στην στήλη D να εμφανίζει το αποτέλεσμα της κάθε μέρας. αν βάλω απλα το =Β4, καθε μέρα παίρνει την καινούρια τιμή. θέλω να υπάρχει ένα "ιστορικό" με το ποσοστό της κάθε μέρας επισυνάπτω ένα παράδειγμα με excel για να γίνει ποιο κατανοητό |
|
#2
|
|
Καλημέρα. Δημήτρη, καλώς όρισες στο ms-office.gr. Κατ' αρχήν, με βάση το αρχείο σου, το μεταφερόμενο κελί, είναι το b3 και όχι το b4 της περιγραφής. Με αυτό το δεδομένο, έγινε και ο κώδικας. Βάζουμε στο a1, μια ημερομηνία, μορφής 25/1/2017 (προσοχή: όχι σημερινή) Βάζουμε στο d1, έναν τίτλο, πχ: «Ποσοστά» Στο φύλλο, (συμβάν Change) αντιγράφουμε τον κώδικα: Κώδικας: Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Sheet1.Range("a2:b2")) Is Nothing Then Exit Sub
Dim LRow As Long
LRow = Sheet1.Cells(Rows.Count, 4).End(xlUp).Row + 1
If Sheet1.Cells(1, 1).Value = Date Then
Select Case MsgBox("Έχετε Ήδη Καταχωρήσει Τιμή." _
& vbCrLf & "Θέλετε Να Την Αλλάξω;" _
, vbYesNo Or vbDefaultButton2, "Πληροφορία...")
Case vbYes
Sheet1.Cells(LRow - 1, 4).NumberFormat = "##0.00%"
Sheet1.Cells(LRow - 1, 4).Value = Sheet1.Cells(3, 2).Value
Exit Sub
Case vbNo
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
Exit Sub
End Select
Else
Sheet1.Cells(LRow, 4).NumberFormat = "##0.00%"
Sheet1.Cells(LRow, 4).Value = Sheet1.Cells(3, 2).Value
Sheet1.Cells(LRow, 5).NumberFormat = "d/m/yyyy"
Sheet1.Cells(LRow, 5).Value = Date
Sheet1.Cells(1, 1).NumberFormat = "d/m/yyyy"
Sheet1.Cells(1, 1).Value = Date
Exit Sub
End If
End Sub Ακόμα, δίνει την δυνατότητα, να αλλάξουμε μέσα στην ημέρα το ποσοστό (περισσότερες από μία φορές) ή να κάνουμε Undo την ενέργεια, αν έγινε κατα λάθος αλλαγή σε κάποιο από τα κελιά a2 - b2 Σημείωση: Αν η έκφραση Option Explicit, υπάρχει ήδη στο φύλλο, να μην αντιγραφεί δεύτερη φορά. |
|
#3
| |||
| |||
|
Καλημέρα Δημήτρη, νομίζω ότι τα πράγματα είναι πιο απλά. Υπολογίζεις το ποσοστό με τον τύπο: =((A3*B2)/A2)/100. Επειδή το A3 ισούται με 100 ο τύπος απλοποιείται στον B2/A2. Ουσιαστικά αν σε κάποια ημερομηνία έχουμε αρχική τιμή a και τελική b, θέλεις το πηλίκο p= b/a μορφοποιημένο ως ποσοστό. Θυμίζω ότι αν a=0 η διαίρεση δεν είναι δυνατή (το Excel θα επιστρέψει λάθος). Επίσης αν οι τιμές a και b είναι θετικές ισχύουν οι σχέσεις: a< b => p>100% (αρχική τιμή μικρότερη της τελικής δίνει ποσοστό πάνω από 100%) a>b=>p<100% (αρχική τιμή μεγαλύτερη της τελικής δίνει ποσοστό κάτω από 100%). Αν υπάρχουν και αρνητικές τιμές θα πρέπει να ξεκαθαρίσεις τι ακριβώς θέλεις να παρακολουθείς. Δες το συνημμένο. |
|
#4
| |||
| |||
|
καλησπέρα και ευχαριστώ για τις απαντήσεις σας! Σπύρο είχες δίκιο για το κελί, μπερδεύτηκα οταν έκανα το παράδειγμα. δυστυχώς δεν ξέρω πώς να κάνω αλλαγές με κώδικα.... Γιώργο αυτο που προτείνεις αν και ειναι το ποιο εφικτό και εύκολο δεν με βολεύει ιδιαίτερα. θέλω οι αλλαγές να γίνονται στα ιδια κελιά (Α2,Β2,Α3,Β3) και σε ξεχωριστή στήλη να μπαίνει κάθε φορά το αποτέλεσμα(που είναι στο κελί B3). οι τιμές είναι πάντα θετικές και ισχύει Α2>Β2 |
|
#5
|
|
Ο κώδικας, δεν ασχολείται καθόλου με το αν το ποσοστό είναι σωστό ή όχι. Αυτό είναι ευθύνη του χρήστη. Μεταφέρει απλά, με κάποιες ευκολίες-βελτιώσεις-ελέγχους το ποσοστό (ως τιμή). Τώρα, αν τα κελιά είναι Α2,Β2,Α3,Β3, δεν έχεις κανένα πρόβλημα. Αντιγράφεις τον κώδικα και δουλεύει... Βιβλίο σε .xlsm |
|
#6
| |||
| |||
|
πολύ ωραία! θα ήθελα να ρωτήσω και κάτι ακομα.... στο ίδιο φύλλο έχω άλλη μια στήλη με διάφορους αριθμούς και ανά διαστήματα καταχωρώ νέες τιμές. Οι ποιο πολλές είναι μεταξύ του 0 και του 3000 (υπάρχουν κάποιες που είναι 0 και μερικές μεγαλύτερες απο το 3000) και προσπαθώ να βάλω να γίνετε μέσος όρος αυτόματα για τις τιμές που είναι ανάμεσα στο 1 και στο 2999 (δηλαδή εκτός τιμών που είναι 0 και μεγαλύτερες απο 3000). προσπαθώ να το κάνω με την συνάρτηση "averageifs" βάζοντας τους παραμέτρους που ειναι στην επισυναπτόμενη εικόνα (εικόνα 1) και βγάζει το παρακάτω σφάλμα(εικόνα 2). μήπως γνωρίζεις πως πρέπει να γράψω σωστά την συνάρτηση για να βγαίνει αποτέλεσμα?
|
|
#7
|
|
Κατ' αρχήν, το κριτήριο, δεν το έχεις μέσα σε εισαγωγικά ("<3000"). Μετά, αν δεν υπάρξει (για κάποιο λόγο) τιμή >=3000, θα εμφανίσει σφάλμα, όπως μια διαίρεση με μηδέν (#DIV/0!). |
|
#8
| |||
| |||
|
το έβαλα σε εισαγωγικά (εικόνα 1α) και έβγαλε πάλι το ίδιο σφάλμα (εικόνα 2α) οι αριθμοί που υπάρχουν ήδη είναι οι εξής (εικόνα 3). τα 0 που υπάρχουν οφείλονται στο γεγονός οτι το αποτέλεσμα βγαίνει απο άλλη συνάρτηση, και δεν υπάρχουν ακόμα δεδομένα σε εκείνα τα κελιά |
|
#9
| |||
| |||
|
Βάλε στο κελί τον τύπο: =AVERAGEIFS(K3:K99;K3:K99;">0";K3:K99;"<3000") Αν δεν υπάρχουν τιμές στο διάστημα (0, 3000) θα προκύψει λάθος: (#DIV/0!). |
|
#10
|
|
Είδα τις προηγούμενες εικόνες σου, προσεκτικά. Δεν συμπληρώνεις, τα ορίσματα του τύπου σωστά...(*βλέπε εικόνα) |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [VBA] Εξαγωγή κελιού σε txt | manolis | Excel - Ερωτήσεις / Απαντήσεις | 2 | 06-07-15 12:08 |
| [Excel07] Εξαίρεση κελιού για εκτύπωση | rania1984 | Excel - Ερωτήσεις / Απαντήσεις | 1 | 09-05-14 12:57 |
| [Γενικά] Σύνδεση κελιού | kkxaris | Excel - Ερωτήσεις / Απαντήσεις | 1 | 19-12-13 14:17 |
| [Excel07] ΔΙΑΙΡΕΣΗ ΕΝΟΣ ΚΕΛΙΟΥ | filanthi | Excel - Ερωτήσεις / Απαντήσεις | 1 | 11-11-13 03:35 |
| [Συναρτήσεις] Κλείδωμα κελιού | skomat | Excel - Ερωτήσεις / Απαντήσεις | 4 | 31-10-12 08:34 |
Η ώρα είναι 18:59.


Υβριδικός τρόπος

