Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Χαιρετώ.

Υπάρχει κάποια συνάρτηση που να υπολογίζει την διαφορά της προηγούμενης τιμής, στο ίδιο κελί, με αυτήν που πρόκειται να καταχωρήσω;

Π.χ. Στο κελί υπάρχει η τιμή 25. Και θέλω να βάλω την τιμή 97. Υπάρχει συνάρτηση που επιστρέφει το αποτέλεσμα της διαφοράς τους;

Ευχαριστώ πολύ!

Δημοσ.

Καλησπέρα και Χριστός Ανέστη,

Δοκίμασε μια πρόταση στο συνημμένο αρχείο αν σε καλύπτει.

Το ζητούμενό σου δε νομίζω πως μπορεί να επιτευχθεί με συνάρτηση στο ίδιο κελί αλλά μόνο με κώδικα VBA.

Στο Α1 γράφεις έναν αριθμό. Αν επιλέξεις πάλι το Α1, η προηγούμενη τιμή αποθηκεύεται στη μνήμη και μόλις γράψεις τη νέα τιμή, εμφανίζεται με μήνυμα η διαφορά "νέα τιμή - παλιά τιμή".

ΔΙΑΦΟΡΑ ΤΙΜΗΣ.xlsm

  • Thanks 1
Δημοσ. (επεξεργασμένο)
25 λεπτά πριν, ChrisGT7 είπε

Καλησπέρα και Χριστός Ανέστη,

Δοκίμασε μια πρόταση στο συνημμένο αρχείο αν σε καλύπτει.

Το ζητούμενό σου δε νομίζω πως μπορεί να επιτευχθεί με συνάρτηση στο ίδιο κελί αλλά μόνο με κώδικα VBA.

Στο Α1 γράφεις έναν αριθμό. Αν επιλέξεις πάλι το Α1, η προηγούμενη τιμή αποθηκεύεται στη μνήμη και μόλις γράψεις τη νέα τιμή, εμφανίζεται με μήνυμα η διαφορά "νέα τιμή - παλιά τιμή".

ΔΙΑΦΟΡΑ ΤΙΜΗΣ.xlsm 14.58 kB · 0 downloads

Καταρχάς σε ευχαριστώ για την βοήθεια.

Κατά δεύτερο, δεν γίνεται να μεταφέρεται σε ένα κελί αυτή η διαφορά;

Βασικά, αυτό που θέλω να καταφέρω είναι το εξής.

Να αλλάζω την τιμή σε ένα κελί και ταυτόχρονα, σε ένα άλλο κελί, να αυξάνεται το ποσό αυτό, όσο και η διαφορά των τιμών.

Επεξ/σία από Rebelos2018
Δημοσ.

Θα πρέπει να χρησιμοποιήσεις βοηθητικό κελί. Δεν γίνεται αυτό που σκέφτεσαι, τουλάχιστον όχι έτσι απλά με συναρτήσεις.

Δημοσ.
16 λεπτά πριν, micos000 είπε

Θα πρέπει να χρησιμοποιήσεις βοηθητικό κελί. Δεν γίνεται αυτό που σκέφτεσαι, τουλάχιστον όχι έτσι απλά με συναρτήσεις.

Έστω και έτσι, πως μπορώ να το κάνω; 

Δημοσ.
10 λεπτά πριν, Rebelos2018 είπε

Έστω και έτσι, πως μπορώ να το κάνω; 

Απλά κάνεις αφαίρεση τα δύο κελιά.

π.χ.

Στο Α1 έχεις 25

Στο Β1 γράφεις 97

Στο C1 θα βάλεις

=B1-A1

Δημοσ.
5 λεπτά πριν, micos000 είπε

Απλά κάνεις αφαίρεση τα δύο κελιά.

π.χ.

Στο Α1 έχεις 25

Στο Β1 γράφεις 97

Στο C1 θα βάλεις

=B1-A1

Οκ άλλο κατάλαβα προηγουμένως. 

Άρα δεν γίνεται αυτόματα. Σε ευχαριστώ. 

Δημοσ. (επεξεργασμένο)

Δεν σε κατάλαβα. Τι ακριβώς θέλεις να κάνεις;.

Γενικά, το excel δεν επιτρέπει την χρήση του ίδιου κελιού για να βάλεις αριθμό και να πάρεις αποτέλεσμα πάλι στο ίδιο κελί.

Ίσως με την χρήση vba και μακροεντολών να γίνει κάτι όπως το δείγμα που έδωσε ο chrisgt7 παραπάνω, απλά αντί να το βγάζει σε msgbox να ο περνάει σε κάποιο άλλο κελί.

Επεξ/σία από micos000
Δημοσ. (επεξεργασμένο)
2 λεπτά πριν, micos000 είπε

Δεν σε κατάλαβα. Τι ακριβώς θέλεις να κάνεις;.

Γενικά, το excel δεν επιτρέπει την χρήση του ίδιου κελιού για να βάλεις αριθμό και να πάρεις αποτέλεσμα πάλι στο ίδιο κελί.

Ίσως με την χρήση vba και μακροεντολών να γίνει κάτι όπως το δείγμα που έδωσε ο chrisgt7 παραπάνω.

Το δείγμα του φίλου πάνω ήταν στη σωστή κατεύθυνση, απλώς θα ήθελα να μεταφέρεται η τιμή σε ένα κελί και όχι να βρίσκεται σε ένα prompt παράθυρο. 

Επεξ/σία από Rebelos2018
Δημοσ.

Το κατάλαβα και το πρόσθεσα στο μήνυμα μου. Δεν είναι κάτι δύσκολο, απλά δεν το έχω και τόσο με την vba στο excel. Θα το δει σίγουρα ο chris και θα στο αλλάξει.

Δημοσ.
4 λεπτά πριν, ChrisGT7 είπε

Στο συνημμένο αρχείο μεταφέρω τη διαφορά στο C1.

Αυτό βολεύει καλύτερα;

ΔΙΑΦΟΡΑ ΤΙΜΗΣ.xlsm 14.34 kB · 0 downloads

Γιατί έβαλες την IIf; Το έκανα με [C1].Value = Target.Value - OldValue και βγάζει σωστά το αποτέλεσμα.

Από περιέργεια ρωτάω.

EDIT:

Άκυρο, το κατάλαβα. Για να ελέγχει αν είναι αριθμητική η τιμή.

:)

btw, νομίζω ότι καλά θα ήταν να ελέγχει και ποια τιμή είναι μεγαλύτερη για να μην βγάζει αρνητικά αποτελέσματα. (π.χ. 32-65)

  • Thanks 1
Δημοσ.
5 λεπτά πριν, micos000 είπε

Γιατί έβαλες την IIf; Το έκανα με [C1].Value = Target.Value - OldValue και βγάζει σωστά το αποτέλεσμα.

Από περιέργεια ρωτάω.

EDIT:

Άκυρο, το κατάλαβα. Για να ελέγχει αν είναι αριθμητική η τιμή.

:)

Παιδιά σας ευχαριστώ και τους δύο. Να είστε καλά. 

Δημοσ.

Ακριβώς, γι' αυτό το λόγο. Αν πληκτρολογηθεί κείμενο βγάζει σφάλμα.

Απλά η IIF() θέλει λίγο προσοχή όταν τη χρησιμοποιούμε, γιατί εκτελούνται πάντα οι εντολές στα True και False, ασχέτως αν ο έλεγχος είναι αληθής ή όχι. Σ' αυτήν την περίπτωση θα πρέπει να επιλέξουμε καλύτερα If... then... else, που οι εντολές στα True και False εκτελούνται μόνο έρθει η ώρα τους.

  • Like 1
Δημοσ.

Να έχεις υπ' όψιν ότι αν η νέα τιμή που θα βάλεις είναι μικρότερη από την παλιά θα σου βγάζει αρνητικό αποτέλεσμα.

2 λεπτά πριν, Rebelos2018 είπε

Παιδιά σας ευχαριστώ και τους δύο. Να είστε καλά. 

 

  • Thanks 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...