Macierze dynamiczne ułatwiają pracę z wieloma wartościami w obrębie jednej formuły. Dzięki tej dynamice wynik automatycznie się dostosowuje – w przeciwieństwie do klasycznych formuł macierzowych: jeśli zmieni się rozmiar macierzy wejściowej lub argumentów funkcji, zmianie ulegnie również rozmiar macierzy wynikowej. Nie ma potrzeby ponownego wprowadzania formuły macierzowej w przypadku zmiany ilości danych wejściowych lub wyjściowych.
Tablice dynamiczne powstają w wyniku działania funkcji FILTRUJ, LOSOWA.TABLICA, SEKWENCJA, SORTUJ, SORTUJ.WEDŁUG, UNIKATOWE, X.WYSZUKAJ, X.DOPASUJ.
Funkcje te automatycznie zwracają macierz danych, więc nie ma potrzeby wprowadzania ich za pomocą skrótu klawiszowego Ctrl+Shift+Enter.
Mówi się, że macierz dynamiczna „rozlewa się” (ang. *spill*) w arkuszu kalkulacyjnym, gdy dane są wstawiane w wyniku działania powyższych funkcji. Do danych wynikowej macierzy można się odwołać, podając adres jej pierwszego elementu i dodając na końcu symbol zakresu rozlania #.

Zakres A2:A11 zawiera dane źródłowe.
Zakres B2:B11 to macierz dynamiczna rozlana w wyniku działania funkcji SORTUJ. Każda komórka w zakresie B2:B11 zawiera formułę =SORTUJ(A2:A11).
Zakres C2:C11 to macierz dynamiczna odwołująca się do zakresu B2:B11 za pomocą operatora zakresu rozlanego (#). Każda komórka w zakresie C2:C11 zawiera formułę =B2#.
Komórka D2 wyświetla błąd odwołania #ADR!, ponieważ zakres A2:A11 nie jest macierzą dynamiczną.
Zakres E2:E11 to również macierz dynamiczna odwołująca się do innej macierzy dynamicznej.
If the spill range is blocked by other data, Calc returns the #SPILL! error. After clearing the space for spilling, the formula will automatically spill.