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

Advanced eriotiseis gia excel.


therock

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

Δημοσ.
Ας αρχίσουμε από τα εύκολα: Excel έχω να χρησιμοποιήσω κάτι αιώνες, ωστόσο η degree() κατά πάσα πιθανότητα επιστρέφει μοίρες (Ορθή=90). Το Open που έχω αυτή τη στιγμή μπροστά μου, έχει μια αντίστοιχη συνάρτηση (Degrees()), που κάνει ακριβώς αυτό.

Δες μήπως υπάρχει στο excel κάτι σαν GRAD(), για να επιστρέφει βαθμούς (Ορθή=100). Αν όχι, είναι απλό, βγάζεις το αποτέλεσμα σε ακτίνια και πολλαπλασιάζεις *200/pi()

 

Nai sorry degrees() ennousa aplos mou ksefiga to"s"!

 

Omos ennousa,pos einai mperdema na prepei na vazei sinartisi se kathe ipologismo,dld mporei na sou ksefigei kapou,i na exeis kapoion ipologismo me polla trigonometrik,opos kai exoume dld kai na ginetai xamos an prepei meta apo katho cos kai sin na vazeis radians,kai prin apo arctan degrees().Tha itan poio eykolo an tha mporouses na theseis proepilegmeni monada gonion,i kapoia entoli (mipos pezei macro),pou otan dineis trigonometrika na simploronei moni tis ta radians().

 

 

Οι περιπτώσεις είναι σχετικά λίγες και μπορείς να δουλέψεις με το ενσωματωμένο IF, χωρίς να καταφύγεις σε Visual Basic: Εστω ότι έχεις:
  • Στη στήλη A τα dx
  • Στη στήλη B τα dy
  • Στη στήλη C, υπολογίζεις τα atan(dx/dy), φυσικά σε ακτίνια
  • Στη στήλη D, μετατρέπεις τα τόξα σε βαθμούς, όπως είπαμε παραπάνω.

Τώρα στο E2, δίνεις

>=IF(A2>=0;IF(B2>=0;D2;200-D2);IF(B2>0;400-D2;200+D2))

και φυσικά "τραβάς" τη συνάρτηση μέχρι τη γραμμή που τελειώνουν τα δεδομένα σου.

 

Hope it helps.

 

ΥΓ1: Τελείως φιλικά, κάτι δεν μου πάει καλά στις μετατροπές που δίνεις (προφανώς για να μεταφερθείς στα τεταρτημόρια που θές), αλλά δεν ξέρω και τί ακριβώς είναι το θέμα σου. Αν τ' αποτελέσματα δεν σε ικανοποιούν, τα ξαναλέμε.

ΥΓ2: Πρόσεξε λίγο την περίπτωση dy=0, η διαίρεση είναι αδύνατη. Αν το IF οφείλει να το ελέγχει κι αυτό, γίνεται πολύ σύνθετο, θα πρότεινα καλύτερα user defined function με Visual Basic. Δεν είναι τίποτε τρομερό. ;)

 

Peri P.S.1.

 

Oi periptoseis sou einai sostes,aplos logo tou oti doulevoume se grad,anti gia 0-180-270-360,paei 0-100-200-300-400,eksou kai i periptoseis,px an vrisketai sto deytero tartimorio i gonia pou ipologizetai tote einai 200- sto trito 200 + kai sto tearto 400-.

 

P.S.2.

 

Nai safos kai iparxei kai periptosi dy=0 --> adinato,alla spania simvainei kai gia ayto den to anefera.Den pezei na petaksoume kai kanan oro an stili dy = 0 vgale minima adinato?

 

Se eyxaristo poli gia tin voitheia sou!

Δημοσ.
...Tha itan poio eykolo an tha mporouses na theseis proepilegmeni monada gonion,i kapoia entoli (mipos pezei macro),pou otan dineis trigonometrika na simploronei moni tis ta radians().
Με macros στα λογιστικά φύλλα, κάνεις κυριολεκτικά ό,τι θες. Αλλαγή συστήματος γωνιών δεν γινεται απ' όσο θυμάμαι κι αυτό είναι φυσικό, αφού οι ενσωματωμένες συναρτήσεις ακολουθούν συγκεκριμένο αλγόριθμο.

 

Μπορείς, όμως να δημιουργήσεις τις δικές σου συναρτήσεις, όπως για παράδειγμα:

>Function Pi() As Double
   Pi = 4 * Atn(1#)
End Function

Function Tang(x As Double) As Double
   Dim y As Double
   y = x * Pi / 200
   Tang = Tan(y)
End Function

Function Atan_g(x As Double) As Double
   Dim y As Double
   y = Atn(x)
   Atan_g = y * 200 / Pi
End Function

Εδώ η Tang υπολογίζει την εφαπτομένη μιας γωνίας σε βαθμούς, ενώ η Atan_g επιστρέφει το τόξο εφαπτομένης, πάλι σε βαθμούς. Εννοείται, ότι σ' αυτή τη δεύτερη, μπορείς να περάσεις σαν παραμέτρους τα dx, dy αντι του dx/dy που περνάω κατ' ευθείαν και να ενσωματώσεις τους ελέγχους.

 

Ο τρόπος που τις δουλεύεις είναι απλός: Πας Tools->Macro->Visual Basic Editor->Insert module

και τις γράφεις σ' αυτό το Module που δημιουργείται.

Από κει και πέρα, τις χρησιμοποιείς κανονικά, θα τις βρεις στην κατηγορία User Defined Functions.

 

(Ξαναθυμίζω, δεν έχω μπροστά μου Excel, αν κάνω κανένα ψιλολαθάκι, ας με δορθώσει κάποιος).

 

 

...Peri P.S.1.

 

Oi periptoseis sou einai sostes,aplos logo tou oti doulevoume se grad,anti gia 0-180-270-360,paei 0-100-200-300-400,eksou kai i periptoseis,px an vrisketai sto deytero tartimorio i gonia pou ipologizetai tote einai 200- sto trito 200 + kai sto tearto 400-.

 

P.S.2.

 

Nai safos kai iparxei kai periptosi dy=0 --> adinato,alla spania simvainei kai gia ayto den to anefera.Den pezei na petaksoume kai kanan oro an stili dy = 0 vgale minima adinato?

 

Se eyxaristo poli gia tin voitheia sou!

Δεν με τρομάζουν οι βαθμοί σε σχέση με τις μοίρες, έχω φάει τα μάτια μου στην οδοποιία ;)

Αυτό που με υποψιάζει είναι πρώτα το dx/dy (συνήθως σαν εφαπτομένη ορίζουμε το αντίστροφο) κι ύστερα οι μετατροπές που προτείνεις:

Δες για παράδειγμα την περίπτωση dx=-1, dy=1. Η συνάρτηση του Excel θα δώσει (σε ακτίνια) περίπου -0,7854 (δηλαδή -π/4) που θα μετατραπεί σε -50 grd, οπότε 400 - arctan(dx/dy) είναι 450.

Γι αυτό σου λέω ότι κάτι δεν μου πάει καλά...

 

Τώρα για το dy=0, σαφώς και μπορείς να το ελέγξεις, απλά επιμένω ότι τότε το IF "βαραίνει" πολύ και επιβάλλεται να πάμε σε μακροεντολές (ή σε κάτι διαφορετικό από spreadsheet :) )

Δημοσ.

A nai dikio exeis ksexasa,einai se apolito o logos dx/dy,dld arctan|dx/dy| kai epeita analoga me tis proanaferthen periptoseis dx,dy prokiptei i gonia.

 

Oso gia tin periptosi dy=0 pos mporoume dld na to kanoume sigkekrimena,pera apo tin entoli if?Otan les kati diaforetiko apo spreadsheet ti ennoeis?

 

Offtopic.Ti spoudazeis an epitrepetai?Epeidi aneferes odopoia kai tin didaskomaste kai emeis.

Δημοσ.

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

 

Για τη διαίρεση με 0: Το να βγάλεις ένα μήνυμα "ΑΔΥΝΑΤΗ ΔΙΑΙΡΕΣΗ" δεν νομίζω να σε καλύπτει, στην πραγματικότητα dy=0 σημαίνει κάθετες πλευρές.

Η καλύτερη λύση είναι να δείς το #15, εκεί που γράφω

Στη στήλη C, υπολογίζεις τα atan(dx/dy), φυσικά σε ακτίνια
και να πειράξεις λίγο αυτή τη σχέση: Στο κελί C2, αντί για ένα unconditional =ATAN(A2/B2) καλύτερα να μπεί:
>=IF(B2=0;ATAN(1e10);ATAN(A2/B2))

Δίνοντας μια τεράστια τιμή σαν το 1e10 (10η δύναμη του 10) στην εφαπτομένη, η γωνία θα προκύψει ορθή.

 

Εκεί που γράφω "κάτι διαφορετικό από spreadsheet", εννοώ απλά κώδικα σε μια γλώσσα προγραμματισμού. Δεν σου προτείνω ν' αρχίσεις τώρα, απλά θυμάμαι κάτι ξερόλες, που επέμεναν ότι θα κάνουν ολόκληρη μελέτη με το Lotus 123 (έτσι τον έλεγαν τον παππού του Excel :) ).

 

Για το OT, δυστυχώς δεν σπουδάζω πιά. :( :( :(

Ειδικά το τελευταίο μάθημα Οδοποιίας, πρέπει να το εξετάστηκα, κάπου ...25 χρόνια πριν. Απλά, μπαίνω πού και πού στις κουβέντες σας, για να κλέψω λίγη απ' τη ζωντάνια σας. :P

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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