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

[Excel] Αυτόματη αντιγραφή κελιών σε άλλο φύλλο


Spect~

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

  • Moderators
2 ώρες πριν, k33theod είπε

Απλά όταν κάτι είναι περίπλοκο η πιθανότητα να γίνει μ@κια είναι εκθετική καθώ επίσης και η δυσκολία μετά να βρεις το λάθος. Δεν λέω να πας κόντρα στον πελάτη γιατί πάντα έχει δίκιο απλά σκέψου μήπως υπάρχει άλλος τρόπος με το excel πάλι.

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

17 λεπτά πριν, SpectralQ είπε

Δοκίμασες να το πας ανάποδα, να κάνεις όλες τις εγγραφές στο συγκεντρωτικό και τις αντιγραφές στα πινακάκια; Νομίζω πως είναι πιο απλός τρόπος.

 

Στην τελική το ίδιο πρόβλημα θα έχω να λύσω 

1 ώρα πριν, virxen75 είπε

για αρχή θέλεις κάτι τέτοιο για να αρχικοποιήσεις την τελική έξοδο

Sub putLabels()
    Sheet2.Cells.Clear 'clears all sheet from data
    Sheet2.Cells(1, 1).Value = "esoda"
    Sheet2.Cells(2, 1).Value = "date"
    Sheet2.Cells(2, 2).Value = "description"
    Sheet2.Cells(2, 3).Value = "poso"
    Sheet2.Cells(2, 4).Value = "tipos"
    Sheet2.Cells(2, 5).Value = "parastatiko"
    Sheet2.Cells(1, 7).Value = "eksoda"
    Sheet2.Cells(2, 7).Value = "date"
    Sheet2.Cells(2, 8).Value = "description"
    Sheet2.Cells(2, 9).Value = "poso"
    Sheet2.Cells(2, 10).Value = "tipos"
    Sheet2.Cells(2, 11).Value = "parastatiko"
End Sub

και μετά έναν υπολογισμό π.χ.

Sub test()
Dim col, i, row, destRow, destRow2 As Integer
Dim dateTable As String
Dim monthNames
monthNames = Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
col = 200
i = 1
destRow = 2
destRow2 = 2
Call putLabels
While col <> 0
    If Len(Sheet1.Cells(1, i).Value) >= 8 Then
      col = i
      dateTable = DatePart("d", Sheet1.Cells(1, col)) & "-" & monthNames(Val(DatePart("m", Sheet1.Cells(1, col))) - 1)
      row = 4
      While Sheet1.Cells(row, col + 1).Interior.ColorIndex < 0
      
        If Sheet1.Cells(row, col).Value <> "" Then
            destRow = destRow + 1
            Sheet2.Cells(destRow, 1).Value = dateTable
            Sheet2.Cells(destRow, 2).Value = Sheet1.Cells(row, col).Value
            Sheet2.Cells(destRow, 3).Value = WorksheetFunction.Max(Sheet1.Cells(row, col + 1).Value, Sheet1.Cells(row, col + 2).Value, Sheet1.Cells(row, col + 3).Value, Sheet1.Cells(row, col + 4).Value)
        End If
      row = row + 1
      Wend
      While Sheet1.Cells(row, col).Interior.ColorIndex < 0
        row = row + 1
      Wend
      row = row + 1
      While Sheet1.Cells(row + 1, col + 1).Interior.ColorIndex < 0
      
        If Sheet1.Cells(row, col).Value <> "" Then
            destRow2 = destRow2 + 1
            Sheet2.Cells(destRow2, 7).Value = dateTable
            Sheet2.Cells(destRow2, 8).Value = Sheet1.Cells(row, col).Value
            Sheet2.Cells(destRow2, 9).Value = WorksheetFunction.Max(Sheet1.Cells(row, col + 1).Value, Sheet1.Cells(row, col + 2).Value, Sheet1.Cells(row, col + 3).Value, Sheet1.Cells(row, col + 4).Value)
        End If
      row = row + 1
      Wend
      
    Else
        col = 0
    End If
    i = i + 6
Wend

test tables.xlsm 16 kB · 0 downloads

Ωραίος. Θα του ρίξω μια ματιά μέτα

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 34
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

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

Νομίζω ότι μπορεί να γίνει με το power query.

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

α) τα έσοδα στα πρωτα 4 κελια μιας γραμμής και τα έξοδα στο επόμενα 4 (ή όσα θέλεις εσύ)

β) το σύνολο θα είναι σε μία συγκεκριμένη γραμμή πχ στην 20 (θα υπολογίσεις πόσο πιστεύεις ότι θα είναι ο μέγιστος αριθμός συναλλαγών)

στην συνέχεια θα φτιάξεις ένα συγκεντρωτικό αρχείο excel ΕΞΩ από το φάκελο. Δες πως το κάνει εδώ

Μέσα στο αρχείο αυτό θα κάνεις ένα power query που θα 'τραβάει' τα δεδομένα από τον φάκελο

Data->Get Data->From file->from folder

εκεί θα επιλέξεις combine & transform

και ουσιαστικά θα επιλέξεις από tranform να σβήνει γραμμές από κάθε αρχείο ξεκινώντας από την 1 γραμμή να σβήνει 20 γραμμές και να κρατάει την 1

έτσι ουσιαστικά θα σου μένουν στον καινούργιο αρχείο μόνο οι 20ες γραμμές από κάθε αρχείο που είναι η σούμα εσόδων εξόδων κάθε μέρας.

καλή επιτυχία!

 

ΥΓ κάθε φορά που θα μπαίνεις στο συγκεντρωτικό θα πρέπει να κάνεις ανανέωση του query (μπορεί να γίνεται και αυτόματα δεν το έχω ψάξει)

Επεξ/σία από newnick
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μιας και δουλεύω κυρίως Google sheet μπορώ να σου πω ότι αυτό είναι αρκετά "απλo" αν παίξεις με την γκάμα συναρτήσεων "import" της google, και συγκεκριμένα importrange. Το μόνο challenge είναι να είναι να γίνει δυναμική η τελευταία καταχώρηση (συγκεντρωτική σου των εξόδων - εσόδων) ώστε σε περίπτωση προσθήκη / αφαίρεση δεδομένων σε οποιαδήποτε μήνα να ανανεώνεται σωστά. 

Μπορεί να γίνει και σε excel αλλά "σπάει" πολύ εύκολα, οπότε εκεί ίσως θα πρέπει να μπει το power query στο παιχνίδι. 

Εχω κάνει κάτι αντίστοιχο μιας και μου ζητήθηκε να φτιάξω ERP σύστημα (για αποθήκη προϊόντων με scanner,  έσοδα - εξοδα , καρτέλα πελατών/προμηθευτών για τις παραγγελίες ) σε google sheet. 

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
11 ώρες πριν, Billator είπε

Μιας και δουλεύω κυρίως Google sheet μπορώ να σου πω ότι αυτό είναι αρκετά "απλo" αν παίξεις με την γκάμα συναρτήσεων "import" της google, και συγκεκριμένα importrange. Το μόνο challenge είναι να είναι να γίνει δυναμική η τελευταία καταχώρηση (συγκεντρωτική σου των εξόδων - εσόδων) ώστε σε περίπτωση προσθήκη / αφαίρεση δεδομένων σε οποιαδήποτε μήνα να ανανεώνεται σωστά. 

Μπορεί να γίνει και σε excel αλλά "σπάει" πολύ εύκολα, οπότε εκεί ίσως θα πρέπει να μπει το power query στο παιχνίδι. 

Εχω κάνει κάτι αντίστοιχο μιας και μου ζητήθηκε να φτιάξω ERP σύστημα (για αποθήκη προϊόντων με scanner,  έσοδα - εξοδα , καρτέλα πελατών/προμηθευτών για τις παραγγελίες ) σε google sheet. 

Το θέμα, χωρίς να ξέρω, θεωρώ ότι είναι επειδή μια μέρα μπορεί να έχει 1 εγγραφή μια άλλη 100 και άλλη μέρα καμία οπότε αυτόματα όλα τα όρια αλλαζουν. 

 

Σχεδόν το έχω τελειώσει. Λίγο μαζεμα τα έξοδα θέλουν και είναι έτοιμο 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

31 λεπτά πριν, Spect~ είπε

Το θέμα, χωρίς να ξέρω, θεωρώ ότι είναι επειδή μια μέρα μπορεί να έχει 1 εγγραφή μια άλλη 100 και άλλη μέρα καμία οπότε αυτόματα όλα τα όρια αλλαζουν. 

 

Σχεδόν το έχω τελειώσει. Λίγο μαζεμα τα έξοδα θέλουν και είναι έτοιμο 

Τότε μπορείς να βάζεις το άθροισμα της ημέρας σε συγκεκριμένη στήλη, οπότε κατά την ένωση θα μπορείς να κρατάς μόνο την συγκεκριμένη στήλη.

Γράψε αν δεν βαριέσαι στο τέλος και πως το έλυσες να υπάρχει σαν γνώση...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

6 ώρες πριν, Spect~ είπε

Το θέμα, χωρίς να ξέρω, θεωρώ ότι είναι επειδή μια μέρα μπορεί να έχει 1 εγγραφή μια άλλη 100 και άλλη μέρα καμία οπότε αυτόματα όλα τα όρια αλλαζουν. 

 

Σχεδόν το έχω τελειώσει. Λίγο μαζεμα τα έξοδα θέλουν και είναι έτοιμο 

Αφού τελειωνεις όλα καλά 🙂

Αν ξαναπιαστεις με κάτι τέτοιο στείλε μου για να σου πω την λογική μέσω google sheet. Το καλό είναι ότι δεν μας ενδιαφέρει το μέγεθος του πίνακα, για αυτό σου αναφέρω ότι είναι δυναμικο. 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
14 ώρες πριν, Billator είπε

Αφού τελειωνεις όλα καλά 🙂

Αν ξαναπιαστεις με κάτι τέτοιο στείλε μου για να σου πω την λογική μέσω google sheet. Το καλό είναι ότι δεν μας ενδιαφέρει το μέγεθος του πίνακα, για αυτό σου αναφέρω ότι είναι δυναμικο. 

Αν δεν βαριεσαι πες μου ενα δυο λογια για το importrange περισσοτερο για γνωση στην παρουσα φαση. Λιγο που διαβασα στα γρηγορα ουσιαστικα του λες αντρεγραψε αυτο το range εδω. Δηλαδη κτι αντιστοιχο με το =Sheet1.Range(A1:D5) ( ή οπως ειναι η σωστη συνταξη:P)

20 ώρες πριν, newnick είπε

Τότε μπορείς να βάζεις το άθροισμα της ημέρας σε συγκεκριμένη στήλη, οπότε κατά την ένωση θα μπορείς να κρατάς μόνο την συγκεκριμένη στήλη.

Γράψε αν δεν βαριέσαι στο τέλος και πως το έλυσες να υπάρχει σαν γνώση...

O κωδικας σιγουρα μπορει να βελτιωθει αρκετα σε γενικες γραμμες η λογικη ειναι η εξης:

  • Ξεκιναει με το 1 φυλλο
  • Εχει μια γενικη λουπα που παει σε καθε μηνα.
  • Μεσα σε αυτη υπαρχει μια λουπα για καθε μερα.
  • Και οι δυο σταματανε οταν η ημερομηνια που παει να ελεγξει εκεινη τη στιγμη ειναι μεγαλυτερη απο την σημερινη ημερομηνια. Δηλαδη οταν ουσιαστικα εχει ελεγξει/αντιγραψει και την σημερινη μερα.
  • Αρχικα βρίσκει τα ορια που θα πρεπει να αρχιζουν και να τελειωνουν οι επαναληψεις για τα εσοδα και τα εξοδα για την καθε μερα
  • Μετα ελεγχει αρχικά αν υπαρχουν εγγραφες στα εσοδα. Αν υπαρχουν εγγραφες τοτε τα αντιγράφει εκει που πρέπει. Με τον τροπο που βρισκω την αρχη και το τελος της λιστας αν το τελος ειναι πιο μικρο απο την αρχη σημαινει οτι ειναι κενη.
  • Στην συνεχεια κανει το ίδιο και στα εξόδα. Εκει επρεπε να κανω μια εξτρα κινηση για να ειμαι σιγουρος οτι ειναι κενη η λιστα αλλα κανει κατι παρομοιο απλα στην περιπτωση των εξόδων ελεγχει αν δυο δεικτες ειναι ιδιοι! 
  • Και στις 2 περιπτωσης αφου γινει η αντιγραφη της ημερομηνιας και της περιγραφής υπαρχει μια τριπλη IF ELSEIF η οποια ελεγχει αν η κινηση ειναι με μετρητα, τραπεζα 1 ή τραπεζα 2. Ο ελεγχος αυτος γίνεται με βάση το κελι το οποίο έχει τιμή. Αφου βρει τι κινηση ειναι τοτε αντιγράφει το ποσο και διπλα περνάι και τον αντίστοιχο τροπο.

 

Το κακο ειναι οτι σε καθε Update κοιταει παλι απο την αρχη τα παντα και τα κανει αντιγραφεί και αυτο διοτι θελουν να ειναι σιγουροι οτι σε περιπτωση που γινει αλλαγη σε παλία ημερομηνια να ενημερωθει και ο συνολικος πινακας. Θα μπορουσα να το φτιαξω να κοιταει ποτε εχει γινει τελευταια ενημερωση και να συνεχιζει απο εκει και μια εξτρα επιλογη αν θελουν γενικη ενημερωση. Ισως σε επομενο σταδιο αν δεν βαριεμαι ! :P

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
1 ώρα πριν, Spect~ είπε

Αν δεν βαριεσαι πες μου ενα δυο λογια για το importrange περισσοτερο για γνωση στην παρουσα φαση. Λιγο που διαβασα στα γρηγορα ουσιαστικα του λες αντρεγραψε αυτο το range εδω. Δηλαδη κτι αντιστοιχο με το =Sheet1.Range(A1:D5) ( ή οπως ειναι η σωστη συνταξη:P)

Ξεκινάμε με το γεγονός ότι το importrange είναι live, οπότε ακαριαία την ίδια στιγμή που αλλάζει κάτι, την ίδια στιγμή πηγαίνουν παντού οι αλλαγές.
Η μορφή είναι =IMPORTRANGE("spreadsheet_url","Sheet1!A1:D5")

Μπορείς να γράψεις το range με την λογική A1:D , για να αποκτήσει ένα είδος "δυναμικότητας", απλά θα πρέπει στο αντίστοιχο sheet να σβήσεις (1000 γραμμές έχει Default) των αριθμό των γραμμών που δεν χρησιμοποιείς ώστε να μην παίρνει γραμμές που δεν έχουν δεδομένα. Κάθε φορά που γίνεται προσθήκη γραμμής αυτόματα με το importrange θα εμφανιστεί εκεί που το χρησιμοποιείς.

__________________

1η λύση:
Άρα αν πούμε ότι πας με την λογική στα ΈΣΟΔΑ , θες να μαζέψεις 12 sheets μέσω IMPORTRANGE, τότε αν πάς κελί κελί θα χρειαστεί να ξέρεις το μέγεθος του πίνακα. Αλλά μπορείς να πας με την λογική να συμπληρώσεις και τα 12 IMPORTRNAGE στο ίδιο κελί με δυναμικό μέγεθος με την εξής λογική:

=ARRAYFORMULA({IMPORTRANGE("spreadsheet_url","Sheet1!A1:D");""spreadsheet_url","Sheet2!A1:D");...})

Με αυτό αν το Sheet1 έχει 20 γραμμές το sheet2 60 γραμμές, κλπ κλπ, θα τα ενώσει αυτόματα το ένα με το άλλο. Αν προσθέσεις οποιαδήποτε γραμμή σε κάποιο Sheet αυτόματα θα προσαρμοστεί ο συνολικό πίνακας στο μέγεθος του.

Αυτή είναι μία εύκολη λύση αλλά προϋποθέτει από τον χρήστη να μην βάζει κενές γραμμές στα sheet (αν θες να έχει ενωμένα τα δεδομένα χωρίς κενά), αν γίνεται αυτό θα υπάρχει πρόβλημα στις πράξεις, αν δεν σε πειράζει απλά θα κάνεις έλεγχο των κενών πεδίων για να μην υπολογίζονται αυτά και βγάζει error.

_________________
2η λύση:
Άλλη λύση είναι να μαζεύεις σε ένα "temp" sheet όλα τα δεδομένα με ένα μέγιστο μέγεθος πίνακα (πχ ότι δεν θα ξεπεράσει ποτέ ο μήνας τις 1000 ή 2000 γραμμές). Τα δεδομένα τα μαζεύεις πάλι με IMPORTRANGE αλλά συγκεκριμένου μεγέθους. Και μετά απλά αφαιρείς τις κενές γραμμές / κελιά, και το αποτέλεσμα αυτού με importrange το βάζεις στα ΕΣΟΔΑ.

Τα κενά κελιά μπορείς να τα "αφαιρείς" συγκεκριμένης στήλης με την εξής λογική =IFERROR(filter(Sheet1!$A$2:$A,len(Sheet1!$A$2:$A)),"")

Και μετά αφού όλα είναι συγκεντρωμένα απλα να κάνεις πάλι importrange (από το "temp" sheet) στα ΕΣΟΔΑ, με αυτό απλά είσαι σίγουρος ότι δεν μπορεί να υπάρξει πρόβλημα με την υλοποίηση λόγω κακής χρήσης πελάτη. 
___________________
Εγώ είμαι πάντα υπέρ λύσεων όπως της πρώτης, ειδικά όταν η υπολογιστική δύναμη είναι μικρή, γιατί στην δεύτερη λύση έχεις αχρείαστα μεγάλους πίνακες. Βέβαια στην δικιά σου περίπτωση επειδή το data entry είναι υπερβολικά μικρό, δεν θα υπάρχει διαφορά ότι κ αν επιλέξεις. Σε εμένα πχ που έχω πίνακες με 35,000 γραμμές+ η διαφορά στην υλοποίηση είναι τεράστια. 


Edit: Σκέφτηκα μία ακόμα λύση λίγο διαφορετική, αν υπάρχει αρίθμηση στα τιμολόγια (διαφορετική για τα έξοδα και διαφορετική για τα έσοδα η οποία είναι μοναδική για κάθε τιμολόγιο) μπορείς να αποφύγεις και τις 2 παραπάνω λύσεις και απλά να κάνεις search με βάση τον αριθμό τιμολογίου και τα τραβάς τα data κατευθείαν τα έσοδα και στα έξοδα. Εκεί θέλει προσοχή σε περίπτωση που προστεθεί 1 επιπλέον τιμολόγιο πως θα ακολουθήσεις τους κανόνες αρίθμησης. Αυτή είναι η πιο βαριά υλοποίηση αλλά ίσως και η πιο ευέλικτη. Και πάλι τα data είναι Live μεταξύ τους οπότε αλλαγές γίνονται και πάλι αυτόματα. Με αυτό αποφεύγεις απλά το importrange.

Επεξ/σία από Billator
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
14 λεπτά πριν, Billator είπε

Ξεκινάμε με το γεγονός ότι το importrange είναι live, οπότε ακαριαία την ίδια στιγμή που αλλάζει κάτι, την ίδια στιγμή πηγαίνουν παντού οι αλλαγές.
Η μορφή είναι =IMPORTRANGE("spreadsheet_url","Sheet1!A1:D5")

Μπορείς να γράψεις το range με την λογική A1:D , για να αποκτήσει ένα είδος "δυναμικότητας", απλά θα πρέπει στο αντίστοιχο sheet να σβήσεις (1000 γραμμές έχει Default) των αριθμό των γραμμών που δεν χρησιμοποιείς ώστε να μην παίρνει γραμμές που δεν έχουν δεδομένα. Κάθε φορά που γίνεται προσθήκη γραμμής αυτόματα με το importrange θα εμφανιστεί εκεί που το χρησιμοποιείς.

__________________

1η λύση:
Άρα αν πούμε ότι πας με την λογική στα ΈΣΟΔΑ , θες να μαζέψεις 12 sheets μέσω IMPORTRANGE, τότε αν πάς κελί κελί θα χρειαστεί να ξέρεις το μέγεθος του πίνακα. Αλλά μπορείς να πας με την λογική να συμπληρώσεις και τα 12 IMPORTRNAGE στο ίδιο κελί με δυναμικό μέγεθος με την εξής λογική:

=ARRAYFORMULA({IMPORTRANGE("spreadsheet_url","Sheet1!A1:D");""spreadsheet_url","Sheet2!A1:D");...})

Με αυτό αν το Sheet1 έχει 20 γραμμές το sheet2 60 γραμμές, κλπ κλπ, θα τα ενώσει αυτόματα το ένα με το άλλο. Αν προσθέσεις οποιαδήποτε γραμμή σε κάποιο Sheet αυτόματα θα προσαρμοστεί ο συνολικό πίνακας στο μέγεθος του.

Αυτή είναι μία εύκολη λύση αλλά προϋποθέτει από τον χρήστη να μην βάζει κενές γραμμές στα sheet (αν θες να έχει ενωμένα τα δεδομένα χωρίς κενά), αν γίνεται αυτό θα υπάρχει πρόβλημα στις πράξεις, αν δεν σε πειράζει απλά θα κάνεις έλεγχο των κενών πεδίων για να μην υπολογίζονται αυτά και βγάζει error.

_________________
2η λύση:
Άλλη λύση είναι να μαζεύεις σε ένα "temp" sheet όλα τα δεδομένα με ένα μέγιστο μέγεθος πίνακα (πχ ότι δεν θα ξεπεράσει ποτέ ο μήνας τις 1000 ή 2000 γραμμές). Τα δεδομένα τα μαζεύεις πάλι με IMPORTRANGE αλλά συγκεκριμένου μεγέθους. Και μετά απλά αφαιρείς τις κενές γραμμές / κελιά, και το αποτέλεσμα αυτού με importrange το βάζεις στα ΕΣΟΔΑ.

Τα κενά κελιά μπορείς να τα "αφαιρείς" συγκεκριμένης στήλης με την εξής λογική =IFERROR(filter(Sheet1!$A$2:$A,len(Sheet1!$A$2:$A)),"")

Και μετά αφού όλα είναι συγκεντρωμένα απλα να κάνεις πάλι importrange (από το "temp" sheet) στα ΕΣΟΔΑ, με αυτό απλά είσαι σίγουρος ότι δεν μπορεί να υπάρξει πρόβλημα με την υλοποίηση λόγω κακής χρήσης πελάτη. 
___________________
Εγώ είμαι πάντα υπέρ λύσεων όπως της πρώτης, ειδικά όταν η υπολογιστική δύναμη είναι μικρή, γιατί στην δεύτερη λύση έχεις αχρείαστα μεγάλους πίνακες. Βέβαια στην δικιά σου περίπτωση επειδή το data entry είναι υπερβολικά μικρό, δεν θα υπάρχει διαφορά ότι κ αν επιλέξεις. Σε εμένα πχ που έχω πίνακες με 35,000 γραμμές+ η διαφορά στην υλοποίηση είναι τεράστια. 

Ωραιος. Καταλαβα !! Ειναι σιγουρα πολυ πιο απλο και γρηγορο. Το μονο μειον που βλεπω για τον τροπο που το κανουν εδω ειναι το οτι εγω αναλογα με το κελι στο οποιο εχει περαστει η πληρωμη θελω να μπαινει αυτοματα και η αντιστοιχη κατηγορια και οτι επισης θελω ασχετα με τη στηλη στην οποια εχει περαστει η πληρωμη στο τελος να ειναι στην ιδια το οποιο και αυτο γινεται πχ με ενα temp φυλλο οπως ειπες. Λυσεις υπαρχουν

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μόλις τώρα, Spect~ είπε

Ωραιος. Καταλαβα !! Ειναι σιγουρα πολυ πιο απλο και γρηγορο. Το μονο μειον που βλεπω για τον τροπο που το κανουν εδω ειναι το οτι εγω αναλογα με το κελι στο οποιο εχει περαστει η πληρωμη θελω να μπαινει αυτοματα και η αντιστοιχη κατηγορια και οτι επισης θελω ασχετα με τη στηλη στην οποια εχει περαστει η πληρωμη στο τελος να ειναι στην ιδια το οποιο και αυτο γινεται πχ με ενα temp φυλλο οπως ειπες. Λυσεις υπαρχουν

Ακριβώς μπορείς να το κάνεις με ένα temp αρχείο, ή πηγαίνεις με την λογική search για να το βάζει αυτόματα στα έσοδα ή τα έξοδα ανάλογα τι καταγράφεται. 
Απλά το θετικό με τα Google sheet είναι η live διασύνδεση, κάτι που στο Excel (αν και υπάρχει) είναι περιορισμένη και "σπάει" εύκολα αν αλλάξει για οποιοδήποτε λόγο κάτι από την διαδρομή (αν πάμε σε υλοποίηση πολλαπλών αρχείων και όχι ενός με πολλά sheet). 

Ξέρω ότι το excel έχει λειτουργείες που ούτε μπορεί να τις ακουμπήσει το Google sheet, αλλά στα απλά πράγματα το Google sheet κάνει τις υλοποιήσεις λίγο πιο εύκολες.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
5 λεπτά πριν, Billator είπε

Ακριβώς μπορείς να το κάνεις με ένα temp αρχείο, ή πηγαίνεις με την λογική search για να το βάζει αυτόματα στα έσοδα ή τα έξοδα ανάλογα τι καταγράφεται. 
Απλά το θετικό με τα Google sheet είναι η live διασύνδεση, κάτι που στο Excel (αν και υπάρχει) είναι περιορισμένη και "σπάει" εύκολα αν αλλάξει για οποιοδήποτε λόγο κάτι από την διαδρομή (αν πάμε σε υλοποίηση πολλαπλών αρχείων και όχι ενός με πολλά sheet). 

Ξέρω ότι το excel έχει λειτουργείες που ούτε μπορεί να τις ακουμπήσει το Google sheet, αλλά στα απλά πράγματα το Google sheet κάνει τις υλοποιήσεις λίγο πιο εύκολες.

Εννοειται οτι σπαει πανευκολα ακομη και στο ιδιο αρχειο αν για παραδειγμα αλλαξεις σειρα στα φυλλα. Μπορεις να το προσπερασεις αυτο με ελεγχο στο ονομα του φυλλου και να βρισκεις καθε φορα σε ποια θεση ειναι το φυλλο που θες αλλα περιτη δουλεια.

Τωρα αν πιασουμε κουβεντα τι χρησιμοποιουν, γιατι, πως κλπ αστα.. Ειμαστε χρονια πισω σε πολλα πραγαμτα ακομη και στον τροπο που λειτουργουν οι επιχειρησεις

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 λεπτό πριν, Spect~ είπε

Εννοειται οτι σπαει πανευκολα ακομη και στο ιδιο αρχειο αν για παραδειγμα αλλαξεις σειρα στα φυλλα. Μπορεις να το προσπερασεις αυτο με ελεγχο στο ονομα του φυλλου και να βρισκεις καθε φορα σε ποια θεση ειναι το φυλλο που θες αλλα περιτη δουλεια.

Όπου αυτή η περιττή δουλειά πολλές φορές καταλήγει πιο δύσκολη και ψυχοφθόρα από το ίδιο το project :P 

4 λεπτά πριν, Spect~ είπε

Τωρα αν πιασουμε κουβεντα τι χρησιμοποιουν, γιατι, πως κλπ αστα.. Ειμαστε χρονια πισω σε πολλα πραγαμτα ακομη και στον τροπο που λειτουργουν οι επιχειρησεις

Δυστυχώς είμαστε πολύ πίσω, και δεν ξέρω αν διορθωθεί ποτέ.
Έχω πελάτη όπου κάνει 4.5m τζίρο και κάθε Κυριακή πλήρωνε υπαλλήλους για να μετράν το στοκ γιατί δεν θέλει να μπει σε ERP (γιατί έχει μηνιαία / χρονιαία συνδρομή ή πρέπει να πληρώσει license). Μου λέει, "αν ήταν excel που μπορώ να το καταλάβω θα το έκανα" και μάντεψε με πλήρωσε για του φτιάξω ΟΛΟ το ERP σε excel.

Του είπα ότι θα του βγει πιο φθηνό να βρεί απλά μια εταιρεία με ERP αλλά όχι... :P Εγώ πληρώθηκα για ένα project που είχα ήδη έτοιμο από άλλον πελάτη (και απλά ήθελε προσαρμογή), αυτός το πλήρωσε πάλι ολόκληρο και happy end και για τους δυο μας! χαχαχαχαχα

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
4 λεπτά πριν, Billator είπε

Όπου αυτή η περιττή δουλειά πολλές φορές καταλήγει πιο δύσκολη και ψυχοφθόρα από το ίδιο το project :P 

Δυστυχώς είμαστε πολύ πίσω, και δεν ξέρω αν διορθωθεί ποτέ.
Έχω πελάτη όπου κάνει 4.5m τζίρο και κάθε Κυριακή πλήρωνε υπαλλήλους για να μετράν το στοκ γιατί δεν θέλει να μπει σε ERP (γιατί έχει μηνιαία / χρονιαία συνδρομή ή πρέπει να πληρώσει license). Μου λέει, "αν ήταν excel που μπορώ να το καταλάβω θα το έκανα" και μάντεψε με πλήρωσε για του φτιάξω ΟΛΟ το ERP σε excel.

Του είπα ότι θα του βγει πιο φθηνό να βρεί απλά μια εταιρεία με ERP αλλά όχι... :P Εγώ πληρώθηκα για ένα project που είχα ήδη έτοιμο από άλλον πελάτη (και απλά ήθελε προσαρμογή), αυτός το πλήρωσε πάλι ολόκληρο και happy end και για τους δυο μας! χαχαχαχαχα

Εταιρεια με τζιρο πολυ πανω απο τον δικο σου και ενω υπαρχει ERP δεν υπαρχει WMS και ολα γινονται στο χερι!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
Στις 5/2/2022 στις 4:28 ΜΜ, SpectralQ είπε

Δοκίμασες να το πας ανάποδα, να κάνεις όλες τις εγγραφές στο συγκεντρωτικό και τις αντιγραφές στα πινακάκια; Νομίζω πως είναι πιο απλός τρόπος.

 

Στις 5/2/2022 στις 4:46 ΜΜ, Spect~ είπε

Στην τελική το ίδιο πρόβλημα θα έχω να λύσω 

Κάνεις λάθος. Ο @SpectralQ έχει δίκιο.

Με τον "ανάποδο" τρόπο, θα είχες ένα φύλλο για την εισαγωγή δεδομένων (ως database) κι ένα φύλλο για την παρουσίασή τους (ως view), στο οποίο, τα πινακάκια κάθε ημέρας θα αντλούσαν τα δεδομένα από την database με απλούς τύπους "άθροισης υπό συνθήκη" ή/και "αναζήτησης και αναφοράς", με βάση το επιλεγμένο έτος και μήνα (ή και εβδομάδα). Κάτι σαν ημερολόγιο δηλαδή (calendar) ή κανονικό συγκεντρωτικό πίνακα.

Στο φύλλο δεδομένων (database), η λίστα θα μπορούσε να είναι ενιαία για τα έσοδα και τα έξοδα, και τα έξοδα να εισάγονται με αρνητικό πρόσημο. Οπότε, με μια SUMIF(), έχεις οπουδήποτε τα σύνολα της ημερομηνίας που σ’ ενδιαφέρουν, δίχως VBA και επισφαλείς αντιγραφές/επαναλήψεις δεδομένων.

Το Excel δεν είναι ασφαλές μέρος να διατηρείς σημαντικά δεδομένα. Αφού (όπως φαίνεται) δεν υπάρχουν απαιτήσεις προχωρημένης επεξεργασίας, και αφού σκαμπάζεις κι από VBA, προτείνω να το στήσεις σε Access.

Επεξ/σία από MastroGiannis
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Moderators
Στις 7/2/2022 στις 7:07 ΜΜ, MastroGiannis είπε

Κάνεις λάθος. Ο @SpectralQ έχει δίκιο.

Με τον "ανάποδο" τρόπο, θα είχες ένα φύλλο για την εισαγωγή δεδομένων (ως database) κι ένα φύλλο για την παρουσίασή τους (ως view), στο οποίο, τα πινακάκια κάθε ημέρας θα αντλούσαν τα δεδομένα από την database με απλούς τύπους "άθροισης υπό συνθήκη" ή/και "αναζήτησης και αναφοράς", με βάση το επιλεγμένο έτος και μήνα (ή και εβδομάδα). Κάτι σαν ημερολόγιο δηλαδή (calendar) ή κανονικό συγκεντρωτικό πίνακα.

Στο φύλλο δεδομένων (database), η λίστα θα μπορούσε να είναι ενιαία για τα έσοδα και τα έξοδα, και τα έξοδα να εισάγονται με αρνητικό πρόσημο. Οπότε, με μια SUMIF(), έχεις οπουδήποτε τα σύνολα της ημερομηνίας που σ’ ενδιαφέρουν, δίχως VBA και επισφαλείς αντιγραφές/επαναλήψεις δεδομένων.

Το Excel δεν είναι ασφαλές μέρος να διατηρείς σημαντικά δεδομένα. Αφού (όπως φαίνεται) δεν υπάρχουν απαιτήσεις προχωρημένης επεξεργασίας, και αφού σκαμπάζεις κι από VBA, προτείνω να το στήσεις σε Access.

Παλι θεωρωοτι θα πρεπει να λυθουν καποια προβληματα οπως πχ αναλογα την πληρωμη να μπει σε συγκεκριμενο κελι ή οτι μια μερα εχει 10 εγγραφες(λιγοτερες απο το μεγεθςο του πινακα) ενω μια αλλη εχει 20 στην οποια μερα θα πρεπει να προστεθουν γραμμες. Οπως και να χει το χω κανει τωρα δουλευει οποτε προχωραμε.


Επαιζα λιγο με access χτες και εχω μια ερωτηση. Εχω 3-4 πινακας income, outcome, total & partners (η κατι τετοι δεν θυμαμαι αλλα ειναι και ασχετο με την ερωτηση).

Ο total εχει 3 πεδια τιμων ταμειο - τραπεζα 1 - τραπεζα 2

Πως θα μπορω να ενημερωνω το την τιμη του αναλογα με τις κινησεις; Δηλαδη θελω ουσιαστικα να βλεπω καπου το υπολοιπα της ημερας το οποιο ουσιαστικα θα ειναι το αθροισμα απο εσοδα με εξοδα. Το βασικο μου προβλημα ειναι πως θα βγαζω τα αθροισματα ουσιαστικα. Φανταζομαι θα πρεπει να γινει query τυπου

Select Χ FROM Income, Outcome WHERE type[cash, bank1, bank2]

πολυ χοντρικα μιας και δεν εχω γραψει query απο οταν ημουν στη σχολη ! αλλα θελω να τα εμφανιζει σαν αθροισμα το καθε ενα ξεχωριστα

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα

  • Δημιουργία νέου...