<html>
    <head>
      <base href="https://bugs.documentfoundation.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_UNCONFIRMED "
   title="UNCONFIRMED - OFFSET.NV and INDIRECT.NV non-volatile functions in Calc"
   href="https://bugs.documentfoundation.org/show_bug.cgi?id=133295">133295</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>OFFSET.NV and INDIRECT.NV non-volatile functions in Calc
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>LibreOffice
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>3.3.0 release
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>UNCONFIRMED
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Calc
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>libreoffice-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>koukasio@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Description:
While it is obvious to everyone that RAND() is volatile, many users are not
aware that OFFSET() and INDIRECT() are volatile as well. This can absolutely
kill the performance of a spreadsheet, without even realizing the reason why
this is happening, due to recalculating everything.
This is a correct behaviour and the same behaviour happens on msoffice.
While an experienced user can get around this issue by using the INDEX()
function which is non-volatile, this is not possible on all cases. In some of
these cases the user may responsibly want to absolutely avoid the volatility.
Would you please create two functions OFFSET.NV() and INDIRECT.NV() ?
This would work just like the RAND.NV() and RANDBETWEEN.NV() functions
introduced on lo7.0.0 .
This would be a great feature and it will also work as a reminder/informer that
OFFSET() and INDIRECT() are volatile and should be avoided in case performance
is important.
I am attaching a lo7.0.0 spreadsheet sample that shows how one can test whether
a function is volatile. The volatile cells refresh with every change or by
simple "recalculate", while the non-volatile ones with "recalculate hard" .

Actual Results:
-

Expected Results:
-


Reproducible: Always


User Profile Reset: No



Additional Info:
-</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>