function operate() {
  var matrix = this.matrix,
      dataProvider = this.dataProvider;
  matrix.cellReferences.length = 0;
  (0, _array.arrayEach)(matrix.data, function (cell) {
    cell.setState(_value.default.STATE_OUT_OFF_DATE);
    cell.clearPrecedents();
    var row = cell.row,
        column = cell.column;
    var value = dataProvider.getSourceDataAtCell(row, column);

    if ((0, _utils.isFormulaExpression)(value)) {
      var prevRow = visualRows.get(cell);
      var expModifier = new _expressionModifier.default(value);
      expModifier.translate({
        row: dataProvider.t.toVisualRow(row) - prevRow
      });
      dataProvider.updateSourceData(row, column, expModifier.toString());
    }
  });
  visualRows = null;
}
Translate all CellValues depends on previous position.