Excel e gli applicativi Microsoft Office CASUALE TRA ? e ? (Int)

Login Registrati
Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
  • Autore
    Articoli
  • #12212 Score: 0 | Risposta

    Fabio
    Partecipante

      N = Sheets("valore").Range("A40")

       

      X = Int(Rnd()) + 1

      Vorrei che dia un numero casuale tra 42 e N 

      #12213 Score: 0 | Risposta

      Luca73
      Partecipante
        58 pts

        Ciao 

        l'help dice che: 

        To produce random integers in a given range, use this formula:

        VBCopia
        Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

        Here, upperbound is the highest number in the range, and lowerbound is the lowest number in the range.

        quindi

        N = Sheets("valore").Range("A40")
        if N>42 then
           X = Int((N-42+1) Rnd()+42) 
        else
           X = Int((42-N+1) Rnd()+N) 
        end if

         

        #12215 Score: 0 | Risposta

        vecchio frac
        Senior Moderator
          272 pts

          Preciso che anche se sembra superfluo che in

          Luca73 ha scritto:

          X = Int((N-42+1) Rnd()+42)

          c'è un segno di moltiplicazione  prima di Rnd, per cui la formula è da leggersi come:x = int((max - min + 1) * rnd + min)

          #12218 Score: 0 | Risposta

          Fabio
          Partecipante

            Ho appena provato

             X = Int((N-42+1) Rnd()+42)

            Non funziona!

             

            Per il momento continuo ad utilizzare 

            X = Int(Rnd() * N) + 1

            #12221 Score: 0 | Risposta

            Fabio
            Partecipante

              Correggo la domanda

              Vorrei che dia un numero casuale da 42 fino  N .

              Tutti i numeri sotto 42 saranno ignorati.

              Tutti i numeri sopra N saranno ignorati.

               

              Utilizzando  X = Int((N-42+1) Rnd()+42)      - viene segnata in rosso (parantesi mancante)!

              #12223 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                Fabio ha scritto:

                viene segnata in rosso (parantesi mancante)!

                Hai ignorato completamente il mio intervento. Del resto non è che fosse così difficile 🙂

                #12225 Score: 0 | Risposta

                Fabio
                Partecipante

                  X = Int((N-42+1) Rnd()+42)

                  di mettere * e togliere ()  --- Ora provo

                  x = int((max - min + 1) * rnd + min)

                  #12226 Score: 0 | Risposta

                  Fabio
                  Partecipante

                    funziona 

                    X = Int((N - 42 + 1) * rdn + 42)

                    Mi sembrava una cosa teorica, è molto diversa dall'altra non l'avevo provata perché presentava troppe differenze.

                    Apposto!

                    #12229 Score: 0 | Risposta

                    vecchio frac
                    Senior Moderator
                      272 pts

                      "rnd" e non "rdn", mi raccomando 😛

                      Cosa sarebbe "molto teorico" ? è una formula...

                       

                      #12232 Score: 0 | Risposta

                      Fabio
                      Partecipante

                        Strano ma non dava errore, però ecco perché si bloccava!?! Che strano!

                        Adesso non si blocca più!

                        #12241 Score: 0 | Risposta

                        Fabio
                        Partecipante

                          In questo modo non funziona per nulla mi aveva ingannato.

                          Praticamente in questo modo X = Int((N - 42 + 1) * rdn + 42)

                          mi da numeri compresi tra  42 e "97 =( 139-42)" invece volevo che generasse numeri da minimo 42 fino massimo 139=N.

                           

                          Ho risolto con        X = Int((N) * Rnd + 42)

                          #12242 Score: 0 | Risposta

                          vecchio frac
                          Senior Moderator
                            272 pts

                            Ma scusa se la formula è:

                            x = int((max - min + 1) * rnd + min)

                            perchè non dovrebbe funzionare:

                            x = int((139 - 42 + 1) * rnd() + 42)

                            ? funziona benissimo e dà numeri tra 42 e 139.

                            #12243 Score: 1 | Risposta

                            Luca73

                              La formula X = Int((N) * Rnd + 42) dara risultati tra 42 e 42 + N pertanto non é la soluzione cercata

                               

                            Login Registrati
                            Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
                            Rispondi a: CASUALE TRA ? e ? (Int)
                            Gli allegati sono permessi solo ad utenti REGISTRATI
                            Le tue informazioni: