web-dev-qa-db-ja.com

Googleドキュメントのスプレッドシートで正規表現を検索して置換する方法はありますか?

問題は、Googleドキュメントのスプレッドシートに=round(x+y)などの多くの式を入力したことです。 MS Excelにエクスポートする必要があり、後者は有効な形式として=round(x+y,0)のみを受け入れます。ドキュメントにはこの形式の数十が保持されているため、これらの変換方法に関する提案は非常に高く評価されます(MS Excelでも実行できる場合など)。

私が考えていたのはawkスクリプトのようなものでした:すべてのround(*)をround(*、0)に置き換えます...もちろん、これは私が持っているすべてのround(*,2)を無視する必要があります。

[検索と置換]メニューを使用しようとしましたが、roundがまったく見つかりません(それが存在すると信じています)。

3
Dror Cohen

表示->すべての数式(ctrl + ')に移動し、「round()」すると、find and replaceを使用してそれらを見つけることができます。これにより、少なくともすべての手作業が削減されます。

私は方法を見つけることができませんでした(ただし、検索と置換を使用してワイルドカード値を検索します

編集:

以下のスクリプトを試してくださいREF: http://www.google.com/support/forum/p/Google%20Docs/thread?tid=288d77c8c9ad7696&hl=en

function SearchReplaceInFormula() {

  var pattern = Browser.inputBox("Enter the search string:");
  var replacement = Browser.inputBox("Enter the replacement string:");
  if (pattern == "" && replacement == "")
  {
    Browser.msgBox("Nothing to search and or replace");
    return;
  }

  var formula = SpreadsheetApp.getActiveRange().getFormulaR1C1();
  var range = SpreadsheetApp.getActiveRange();
  var crows = range.getNumRows();
  var ccols = range.getNumColumns();

  var row = 0;
  for (row = 1; row <= crows; row++)
  {
       for (col=1; col <= ccols; col++)
       {
         var cell = range.getCell(row, col);
         var formula = cell.getFormula();
         var updated = formula;
         while(-1 != updated.indexOf(pattern))
         {
           updated = updated.replace(pattern, replacement);
         }
         if (formula != updated)
         {
           cell.setFormula(updated)
         }
       }
  }

  Browser.msgBox("Done replacing " + pattern + " with " + replacement);
}
3
Matt

してみてください:

検索:(.+)\)
置換:$1,0)
検索:このシート(または合わせて)
正規表現を使用した検索
数式内も検索
すべてを置き換えます。

1
pnuts