Descrizione delle limitazioni per l'uso di matrici in Excel

Riepilogo

Nelle versioni di Microsoft Excel elencate nella sezione "Si applica a" l'argomento della Guida "Specifiche di calcolo" elenca le limitazioni per l'uso di una matrice. Questo articolo descrive le limitazioni delle matrici in Excel.

Ulteriori informazioni

In Excel, le matrici nei fogli di lavoro sono limitate dalla memoria di accesso casuale disponibile, dal numero totale di formule di matrice e dalla regola "intera colonna".

Memoria disponibile

Le versioni di Excel elencate nella sezione "Si applica a" non impongono un limite alle dimensioni delle matrici di fogli di lavoro. Al contrario, si è limitati solo dalla memoria disponibile nel computer. Pertanto, è possibile creare matrici molto grandi che contengono centinaia di migliaia di celle.

Regola "intera colonna"

Sebbene sia possibile creare matrici di grandi dimensioni in Excel, non è possibile creare una matrice che usa un'intera colonna o più colonne di celle. Poiché il ricalcolo di una formula di matrice che usa un'intera colonna di celle richiede molto tempo, Excel non consente di creare questo tipo di matrice in una formula.

Nota

In una colonna di Microsoft Office Excel 2003 e nelle versioni precedenti di Excel sono presenti 65.536 celle. In una colonna di Microsoft Office Excel 2007 sono presenti 1.048.576 celle.

Numero massimo di formule di matrice

In Excel 2003 e nelle versioni precedenti di Excel un singolo foglio di lavoro può contenere un massimo di 65.472 formule di matrice che fanno riferimento a un altro foglio di lavoro. Se si desidera utilizzare più formule, suddividere i dati in più fogli di lavoro in modo che siano presenti meno di 65.472 riferimenti a un singolo foglio di lavoro.

Ad esempio, in Sheet1 di una cartella di lavoro è possibile creare gli elementi seguenti:

  • 65.472 formule di matrice che fanno riferimento a Sheet2
  • 65.472 formule di matrice che fanno riferimento a Sheet3
  • 65.472 formule di matrice che fanno riferimento a Sheet4

Se si tenta di creare più di 65.472 formule di matrice che fanno riferimento a un foglio di lavoro specifico, le formule di matrice immesse dopo il numero di formula della matrice 65.472 potrebbero scomparire quando vengono immesse.

Esempi di formule di matrice

Di seguito è riportato un elenco di esempi di formule di matrice. Per usare questi esempi, creare una nuova cartella di lavoro e quindi immettere ogni formula come formula di matrice. A tale scopo, digitare la formula nella barra della formula e quindi premere CTRL+MAIUSC+INVIO per immettere la formula.

Excel 2007

  • A1: =SUM(IF(B1:B1048576=0,1,0))

    La formula nella cella A1 restituisce il risultato 1048576. Questo risultato è corretto.

  • A2: =SUM(IF(B:B=0,1,0))

    La formula nella cella A2 restituisce il risultato 1048576. Questo risultato è corretto.

  • A3: =SUM(IF(B1:J1048576=0,1,0))

    La formula nella cella A3 restituisce il risultato 9437184. Questo risultato è corretto.

    Nota

    La formula può richiedere molto tempo per calcolare il risultato perché la formula controlla più di 1 milione di celle.

  • A4: =SUM(IF(B:J=0,1,0))

    La formula nella cella A4 restituisce il risultato 9437184. Questo risultato è corretto.

    Nota

    La formula può richiedere molto tempo per calcolare il risultato perché la formula controlla più di 1 milione di celle.

  • A5: =SUM(IF(B1:DD1048576=0,1,0))

    Quando si immette questa formula nella cella A5, è possibile che venga visualizzato uno dei messaggi di errore seguenti:

    Le risorse sono esaurite durante il tentativo di calcolare una o più formule. Di conseguenza, queste formule non possono essere valutate.

    Per determinare il numero univoco associato al messaggio ricevuto, premere CTRL+MAIUSC+I. Nell'angolo inferiore destro del messaggio viene visualizzato il numero seguente:

    101758

    In questo caso, le dimensioni della matrice del foglio di lavoro sono troppo grandi per la memoria disponibile. Pertanto, la formula non può essere calcolata.

    Inoltre, Excel potrebbe smettere di rispondere per alcuni minuti. Ciò è dovuto al fatto che le altre formule immesse devono ricalcolare i risultati.

    Dopo aver ricalcolato i risultati, Excel risponde come previsto. La formula nella cella A5 restituisce il valore 0 (zero).

Excel 2003 e versioni precedenti di Excel

  • A1: =SUM(IF(B1:B65535=0,1,0))

    La formula nella cella A1 restituisce il risultato 65535. Questo risultato è corretto.

  • A2: =SUM(IF(B:B=0,1,0))

    La formula nella cella A2 restituisce un #NUM! errore perché la formula della matrice fa riferimento a un'intera colonna di celle.

  • A3: =SUM(IF(B1:J65535=0,1,0))

    La formula nella cella A3 restituisce il risultato 589815. Questo risultato è corretto.

    Nota

    La formula può richiedere molto tempo per calcolare il risultato perché la formula controlla quasi 600.000 celle.

  • A4: =SUM(IF(B:J=0,1,0))

    Come la formula nella cella A2, la formula nella cella A4 restituisce un #NUM! errore perché la formula della matrice fa riferimento a un'intera colonna di celle.

  • A5: =SUM(IF(B1:DD65535=0,1,0))

    Quando si immette la formula nella cella A5, è possibile che venga visualizzato uno dei messaggi di errore seguenti:

    Memoria insufficiente. Continuare senza annullare?

    Memoria insufficiente.

    In questo caso, le dimensioni della matrice del foglio di lavoro sono troppo grandi per la memoria disponibile. Pertanto, la formula non può essere calcolata.

    Inoltre, Excel potrebbe smettere di rispondere per alcuni minuti. Ciò è dovuto al fatto che le altre formule immesse devono ricalcolare i risultati.

    Dopo aver ricalcolato i risultati, Excel risponde come previsto. La formula nella cella A5 restituisce il valore 0 (zero).

Si noti che nessuna di queste formule funziona nelle versioni precedenti di Excel. Ciò è dovuto al fatto che le matrici del foglio di lavoro create dalle formule sono tutte maggiori dei limiti massimi nelle versioni precedenti di Excel. Di seguito è riportato un elenco di alcune delle funzioni in Excel che usano matrici:

  • LINEST()
  • MDETERM()
  • MINVERSE()
  • MMULT()
  • SUM(IF())
  • SUMPRODUCT()
  • TRANSPOSE()
  • TREND()

Nota

I fatti seguenti sulle funzioni sono utili da ricordare.

  • Se le celle di una matrice sono vuote o contengono testo, MINVERSE restituisce il valore di errore #VALUE! .
  • MINVERSE restituisce anche il valore di errore #VALUE! se la matrice non dispone di un numero uguale di righe e colonne.
  • MINVERSE restituisce l'errore #VALUE! se la matrice restituita supera le 52 colonne di 52 righe.
  • La funzione MMULT restituisce #VALUE! se l'output supera 5460 celle.
  • La funzione MDETERM restituisce #VALUE! se la matrice restituita è maggiore di 73 righe per 73 colonne.