Googleスプレッドシートで空白のセルをゼロに置き換えるにはどうすればよいですか?


13

他の人がデータを入力したスプレッドシートがあります。彼らは0の値を記録する代わりに空白のセルを残しました。空白のセルを0に置き換えるにはどうすればよいですか?

^ $を使用して正規表現で検索および置換を試みましたが、機能しませんでした。


1
関連
Alex

与えられた答えを確認する時間はありましたか?
Jacob Jan Tuinstra、2014

回答:


12

私は、これをスプレッドシートの特定の部分でのみ実行したいと思います。これは、修正する必要のある1回限りの問題であり、繰り返す必要のある問題ではないと思います。

このため、最も簡単な方法は、現在使用されていない同じ形状とサイズの別の領域を(おそらく別のワークシートで)見つけることです。

その領域の各セルで、(使用するセルに応じて)フォーラムを次のように設定します。

= if(isblank(A3)、 "0"、A3)

2番目の領域からデータを選択してコピーし、編集>特殊貼り付け>値のみ貼り付けを使用して元のデータに貼り付けます

一部のフォーマット(日付フォーマットなど)を再適用する必要があるかもしれませんが、値はそこにあります。

ファイ、私はこのアプローチの実際の例をここに置きました:https ://docs.google.com/spreadsheets/d/1T6owfGtpKt3NLl5hq1AZpeWA1ILWUwBQ44bdlAmekF0/edit?usp=sharing


2
これは素晴らしい働きをします。結果に対してSMALLコマンドを使用すると、小さな問題が発生しました。代わりに= if(isblank(A3)、0、A3)を使用して修正できました。
Joe Manlove 2016

9

検索と置換で正規表現を使用します

^\s*$

Googleスプレッドシートは空白を0に置き換えます


私の状況では、これが最良の答えでした。値が必要なセルの範囲が2つありましたが、空でした。データが利用可能であれば、いくつかのセルに値を入力しました。次に、他のすべての空のセルをゼロで埋めて、それらのセルをすでに検討したことを示します。
LS

これは参考になりました。
lathomas64

8

次のスクリプトは0、範囲内のすべての空のセルにを追加します。

コード

function onOpen() {
  SpreadsheetApp.getUi().createMenu("Zeros")
    .addItem("Sheet", "zeroSheet")
    .addItem("Data range", "zeroDatarange")
    .addItem("Selection", "zeroSelection")
    .addItem("Manual Override", "zeroManual")
  .addToUi();      
}   

function zeroSheet() {
  var sheet = SpreadsheetApp.getActiveSheet();
  zero(sheet, 'sheet');
}

function zeroDatarange() {
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  zero(range, 'datarange');
}

function zeroSelection() {
  var range = SpreadsheetApp.getActiveSheet().getActiveRange();
  zero(range, 'activerange');
}

function zeroManual() {
  var spreadsheet = SpreadsheetApp.getActive();
  zero(spreadsheet, 'manual');
}

function zero(source, type) {
  var data, range;
  switch(type) {
    case 'sheet':
      var lastRow = source.getMaxRows();
      var lastColumn = source.getMaxColumns();    
      range = source.getRange(1, 1, lastRow, lastColumn);
      break;
    case 'manual':
      range = source.getSheetByName('Sheetname').getRange(2, 4, 3, 6);    
      break;
    case 'datarange':
    case 'activerange':
      range = source;
      break;
  }
  data = range.getValues();
  range.setValues( data.map( function(row) {
    return row.map( function(cell) {
      return !cell ? 0 : cell;
    });
  }));
}

注意

ファイルを開くと、ゼロというメニュー項目が作成され、4つのサブ項目があります。開くときに手動機能も実行したい場合は、次のように追加します。 ここに画像の説明を入力してください

サンプルファイルを作成しました。空白のセルをゼロに置き換えます
1.ファイルのコピーを作成するか、コードを[ ツール]> [スクリプトエディター]に貼り付けます。2.時計のバグボタンを押して、スクリプトを認証します。 ここに画像の説明を入力してください 3.ドキュメントを再度開くと、新しいメニューが表示されます。 ここに画像の説明を入力してください


魅力のように働いた。少なくとも最新バージョンでは、それをマクロに追加して実行する必要があります。
Nic Szerman、2018

2

列の数が限られている場合は、フィルターして[空白]を選択し、挿入して下にコピーし0ます。


2

Googleスプレッドシートで同様の状況で私のために働いた1つの方法は、空の列を0で合計し、結果を新しい列に格納することでした。

A置換する空のセルが列にあり、たとえばにデータがあるB場合、次の空の列Cを使用して、更新された値を次のように保存します。

C1=SUM(A1, 0) 列全体についても同様Cです。

私の場合、値を乗算する必要があり、空のセルは1sの代わりに0sのPRODUCT()ように機能するため、次のようにしました。

=PRODUCT(SUM(A,0), multiplier)

これにより、の空のセルまたは非数値のセルに対して予期した結果が得られましたA


1

内部にランダムに空白が設定された巨大なデータを持っていたのでif(isblank())、それは非常に労働集約的であったので、私にとっては悪い考えでした。

代わりに、シートをcsvとしてダウンロードし、それをTextWranglerで開きました(検索と置換が可能なテキストエディターはすべて機能します)。次に、「,,」を見つけて、「、0、」に置き換えました。私はそれを2回しなければなりませんでした。次に、再インポートしたときにif(isblank())、データセットの最初と最後の列のみを使用しました。他のすべてはゼロにされました。約5〜10分しかかかりませんでした。


1

「検索と置換」を使用できます(Ctrl+ F→その他のオプション)。

  • 検索: ^$
  • 置き換え:0
  • 検索:あなたの範囲
  • 選択:正規表現を使用して検索

1
-1。質問は明らかにこれが質問者には役に立たなかったことを述べています。
msh210
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.