Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Excel > Excel - Ερωτήσεις / Απαντήσεις > [Συναρτήσεις] μεταφορά μεταβαλλόμενου κελιού

Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ.

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 27-01-17, 18:39
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 26-01-2017
Μηνύματα: 56
Προεπιλογή μεταφορά μεταβαλλόμενου κελιού

Καλησπέρα σας!πρόσφατα ανακάλυψα την σελίδα σας και με έχει βοηθήσει ήδη αρκετά σε διάφορα προβλήματα!

θα ήθελα να ρωτήσω κάτι σχετικά με το excel και με την μέθοδο των τριων

ποιο αναλυτικά

εχω τα κελία Α2,Β2,Α3,Β4

στα κελία Α2 και Β2 έχω δεδομένα που αλλάζουν μια φορα την ημέρα.στο κελί Α3 εχώ τον αριθμό 100 και στο κελί Β4 βγαίνει το ποσοστο απο την μέθοδο των τριων (δηλ =((Α3*Β2)/Α2)/100)) και μου εμφανίζει το % αποτέλεσμα

θέλω στην στήλη D να εμφανίζει το αποτέλεσμα της κάθε μέρας. αν βάλω απλα το =Β4, καθε μέρα παίρνει την καινούρια τιμή. θέλω να υπάρχει ένα "ιστορικό" με το ποσοστό της κάθε μέρας

επισυνάπτω ένα παράδειγμα με excel για να γίνει ποιο κατανοητό
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx ποσοστο κελιού.xlsx (8,8 KB, 15 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 28-01-17, 05:00
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Καλημέρα.
Δημήτρη, καλώς όρισες στο 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 
Ο κώδικας, καταχωρεί στην στήλη D, την τιμή του κελιού b3, ενώ στο διπλανό κελί της Ε, καταχωρεί την ημερομηνία.

Ακόμα, δίνει την δυνατότητα, να αλλάξουμε μέσα στην ημέρα το ποσοστό
(περισσότερες από μία φορές) ή να κάνουμε Undo την ενέργεια, αν έγινε κατα λάθος αλλαγή σε κάποιο από τα κελιά a2 - b2

Σημείωση:
Αν η έκφραση Option Explicit, υπάρχει ήδη στο φύλλο, να μην αντιγραφεί δεύτερη φορά.
Απάντηση με παράθεση
  #3  
Παλιά 28-01-17, 08:54
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα

Δημήτρη, νομίζω ότι τα πράγματα είναι πιο απλά.

Υπολογίζεις το ποσοστό με τον τύπο: =((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%).

Αν υπάρχουν και αρνητικές τιμές θα πρέπει να ξεκαθαρίσεις τι ακριβώς θέλεις να παρακολουθείς.

Δες το συνημμένο.
Συνημμένα Αρχεία
Τύπος Αρχείου: xlsx Pososto.xlsx (10,8 KB, 16 εμφανίσεις)
Απάντηση με παράθεση
  #4  
Παλιά 28-01-17, 12:11
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 26-01-2017
Μηνύματα: 56
Προεπιλογή

καλησπέρα και ευχαριστώ για τις απαντήσεις σας!

Σπύρο είχες δίκιο για το κελί, μπερδεύτηκα οταν έκανα το παράδειγμα. δυστυχώς δεν ξέρω πώς να κάνω αλλαγές με κώδικα....

Γιώργο αυτο που προτείνεις αν και ειναι το ποιο εφικτό και εύκολο δεν με βολεύει ιδιαίτερα. θέλω οι αλλαγές να γίνονται στα ιδια κελιά (Α2,Β2,Α3,Β3) και σε ξεχωριστή στήλη να μπαίνει κάθε φορά το αποτέλεσμα(που είναι στο κελί B3). οι τιμές είναι πάντα θετικές και ισχύει Α2>Β2
Απάντηση με παράθεση
  #5  
Παλιά 28-01-17, 13:06
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Ο κώδικας, δεν ασχολείται καθόλου με το αν το ποσοστό είναι σωστό ή όχι.
Αυτό είναι ευθύνη του χρήστη.
Μεταφέρει απλά, με κάποιες ευκολίες-βελτιώσεις-ελέγχους το ποσοστό (ως τιμή).

Τώρα, αν τα κελιά είναι Α2,Β2,Α3,Β3, δεν έχεις κανένα πρόβλημα.
Αντιγράφεις τον κώδικα και δουλεύει...
Βιβλίο σε .xlsm
Απάντηση με παράθεση
  #6  
Παλιά 28-01-17, 13:45
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 26-01-2017
Μηνύματα: 56
Προεπιλογή

πολύ ωραία! θα ήθελα να ρωτήσω και κάτι ακομα.... στο ίδιο φύλλο έχω άλλη μια στήλη με διάφορους αριθμούς και ανά διαστήματα καταχωρώ νέες τιμές. Οι ποιο πολλές είναι μεταξύ του 0 και του 3000 (υπάρχουν κάποιες που είναι 0 και μερικές μεγαλύτερες απο το 3000) και προσπαθώ να βάλω να γίνετε μέσος όρος αυτόματα για τις τιμές που είναι ανάμεσα στο 1 και στο 2999 (δηλαδή εκτός τιμών που είναι 0 και μεγαλύτερες απο 3000). προσπαθώ να το κάνω με την συνάρτηση "averageifs" βάζοντας τους παραμέτρους που ειναι στην επισυναπτόμενη εικόνα (εικόνα 1) και βγάζει το παρακάτω σφάλμα(εικόνα 2). μήπως γνωρίζεις πως πρέπει να γράψω σωστά την συνάρτηση για να βγαίνει αποτέλεσμα?
Συνημένες Εικόνες
Τύπος Αρχείου: png εικόνα 1.png (63,9 KB, 21 εμφανίσεις)
Τύπος Αρχείου: jpg εικόνα 2.jpg (22,5 KB, 8 εμφανίσεις)
Απάντηση με παράθεση
  #7  
Παλιά 28-01-17, 13:53
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Κατ' αρχήν, το κριτήριο, δεν το έχεις μέσα σε εισαγωγικά ("<3000").
Μετά, αν δεν υπάρξει (για κάποιο λόγο) τιμή >=3000,
θα εμφανίσει σφάλμα, όπως μια διαίρεση με μηδέν (#DIV/0!).
Απάντηση με παράθεση
  #8  
Παλιά 28-01-17, 15:12
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 26-01-2017
Μηνύματα: 56
Προεπιλογή

το έβαλα σε εισαγωγικά (εικόνα 1α) και έβγαλε πάλι το ίδιο σφάλμα (εικόνα 2α)

οι αριθμοί που υπάρχουν ήδη είναι οι εξής (εικόνα 3). τα 0 που υπάρχουν οφείλονται στο γεγονός οτι το αποτέλεσμα βγαίνει απο άλλη συνάρτηση, και δεν υπάρχουν ακόμα δεδομένα σε εκείνα τα κελιά
Συνημένες Εικόνες
Τύπος Αρχείου: png εικονα 1α.png (46,8 KB, 8 εμφανίσεις)
Τύπος Αρχείου: jpg εικονα 2α.jpg (20,8 KB, 8 εμφανίσεις)
Τύπος Αρχείου: png εικόνα 3.png (3,3 KB, 12 εμφανίσεις)
Απάντηση με παράθεση
  #9  
Παλιά 28-01-17, 15:40
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Βάλε στο κελί τον τύπο: =AVERAGEIFS(K3:K99;K3:K99;">0";K3:K99;"<3000")

Αν δεν υπάρχουν τιμές στο διάστημα (0, 3000) θα προκύψει λάθος: (#DIV/0!).
Απάντηση με παράθεση
  #10  
Παλιά 28-01-17, 16:09
Το avatar του χρήστη Spirosgr
Συντονιστής
Όνομα: Σπύρος Τσιλιγιάννης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 22-11-2011
Περιοχή: Αθήνα
Μηνύματα: 2.321
Προεπιλογή

Είδα τις προηγούμενες εικόνες σου, προσεκτικά.
Δεν συμπληρώνεις, τα ορίσματα του τύπου σωστά...(*βλέπε εικόνα)
Συνημένες Εικόνες
Τύπος Αρχείου: png Screenshot_1.png (45,7 KB, 20 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός 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.