241

Excelの数式から空のセルを返す必要がありますが、Excelは空の文字列または空のセルへの参照を真の空のセルとは異なる方法で処理しているようです。だから本質的に私は次のようなものが必要です

=IF(some_condition,EMPTY(),some_value)

私は次のようなことをしようとしました

=IF(some_condition,"",some_value)

=IF(some_condition,,some_value)

B1が空のセルであると仮定します

=IF(some_condition,B1,some_value)

しかし、これらはどれも真の空のセルではないようです。数式の結果であるため、推測しています。ある条件が満たされた場合にのみセルにデータを入力し、それ以外の場合はセルを真に空に保つ方法はありますか?

編集:推奨されているように、NA()を返そうとしましたが、私の目的ではこれも機能しませんでした。VBでこれを行う方法はありますか?

編集:データをデータベースにインポートするアプリケーションの非常に特定の要求に合わせてフォーマットされた他のワークシートからデータを取り込むワークシートを作成しています。このアプリケーションの実装を変更するためのアクセス権がありません。値が実際には空ではなく「」の場合は失敗します。

4

20 に答える 20

88

Excel には、これを行う方法がありません。

Excel のセル内の数式の結果は、数値、テキスト、論理 (ブール値)、またはエラーである必要があります。「空」または「空白」の数式セル値タイプはありません。

私が見た 1 つのプラクティスは、NA() と ISNA() を使用することですが、NA() が他の関数 (SUM(NA( )) は #N/A ですが、A1 が空の場合、SUM(A1) は 0 です)。

于 2009-07-13T14:09:30.783 に答える
54

次に、を使用する必要がありますVBA。範囲内のセルを反復処理し、条件をテストして、一致する場合は内容を削除します。

何かのようなもの:

For Each cell in SomeRange
  If (cell.value = SomeTest) Then cell.ClearContents
Next
于 2009-07-13T18:08:58.780 に答える
42

はい、可能です。

条件が満たされた場合に trueblank を返す式を持つことができます。式のテストに合格しISBLANKます。唯一の不便は、条件が満たされると式が蒸発してしまい、再入力する必要があることです。隣接するセルに結果を返すようにすることで、自己破壊の影響を受けない数式を設計できます。はい、可能です。

ここに画像の説明を入力

必要なのは、たとえば という名前付き範囲を設定するGetTrueBlankことだけで、質問と同じように次のパターンを使用できます。

=IF(A1 = "Hello world", GetTrueBlank, A1)

ステップ 1.このコードを VBA のモジュールに入れます。

Function Delete_UDF(rng)
    ThisWorkbook.Application.Volatile
    rng.Value = ""
End Function

ステップ 2.セル内に、次の式で名前付き範囲を追加Sheet1します。A1GetTrueBlank

=EVALUATE("Delete_UDF("&CELL("address",Sheet1!A1)&")")

ここに画像の説明を入力

それでおしまい。これ以上の手順はありません。自己消滅式を使用するだけです。B2次の数式をセルに入力します。

=IF(A2=0,GetTrueBlank,A2)

に 0 を入力すると、上記の式はB2trueblank と評価されますA2

ここからデモンストレーション ファイルをダウンロードできます。

上記の例では、数式を trueblank に評価すると、セルが空になります。数式でセルをチェックすると、ISBLANK肯定的にTRUEになります。ハラキリです。条件が満たされると、数式はセルから消えます。式が消えないようにしたいかもしれませんが、目標は達成されました。

数式がそれ自体を殺さないように、隣接するセルに結果を返すように数式を変更することができます。隣接するセルで UDF 結果を取得する方法を参照してください

隣接セル

ここで、FrankensTeam によって明らかにされた式の結果として trueblank を取得する例に出くわしました: https://sites.google.com/site/e90e50/excel-formula-to-change-the-value-of-another-細胞

于 2016-09-06T14:22:50.783 に答える
20

たぶんこれは不正行為ですが、うまくいきます!

また、グラフのソースとなるテーブルも必要でした。また、空白またはゼロのセルがグラフ上にポイントを生成することは望ましくありませんでした。グラフのプロパティを設定し、データを選択し、非表示のセルと空のセルを「ギャップとして空のセルを表示する」(ラジオ ボタンをクリック) する必要があることは事実です。それが最初のステップです。

次に、プロットしたくない結果になる可能性のあるセルに、次のようNA()な結果を含む IF ステートメントに数式を入れます。=IF($A8>TODAY(),NA(), *formula to be plotted*)

これにより、無効なセル値が発生したときにポイントのない必要なグラフが得られます。もちろん、これはすべてのセルにその無効な値を read#N/Aのままにします。これは面倒です。

これをクリーンアップするには、無効な値が含まれている可能性のあるセルを選択し、条件付き書式- 新しいルールを選択します。[次を含むセルのみをフォーマット] を選択し、ルールの説明の下にあるドロップダウン ボックスから [エラー] を選択します。次に、フォーマットの下で、フォント - 色 - 白 (または背景色が何であれ) を選択します。さまざまなボタンをクリックして外に出ると、無効なデータを含むセルが空白に見えることがわかります (実際には含まれて#N/Aいますが、白い背景に白いテキストが空白に見えます)。リンクされたグラフにも無効な値のポイントは表示されません。

于 2012-07-16T16:40:29.633 に答える
14

セルの値が実際にはゼロであるときにセルを空として表示できるようにすることが目標である場合は、代わりに(empty()関数がないため)空白または空のセルになる数式を使用する代わりに、

  • 空白のセルが必要な場合は、andTHENの0代わりにを返します""

  • このようにセルの数値形式を設定します。ここで、正の数と負の数(セミコロンで区切られた最初の2つの項目)に必要なものを考え出す必要があります。私の場合、私が持っていた数字は0、1、2 ...で、0を空に表示したかったのです。(テキストパラメータが何に使用されているのかはわかりませんでしたが、必須のようでした)。

    0;0;"";"text"@
    
于 2011-06-01T06:39:00.080 に答える
11

これは、私が使用していたデータセットに対して行った方法です。複雑でばかげているように見えますが、上記の VB ソリューションの使用方法を学習するための唯一の代替手段でした。

  1. すべてのデータの「コピー」を行い、データを「値」として貼り付けました。
  2. 次に、貼り付けたデータを強調表示し、空のセルを文字で「置換」(Ctrl- )しました。データシートのどこにもなかったので選択しました。Hq
  3. 最後に、別の「置換」を行いq、何も置換しませんでした。

この 3 段階のプロセスにより、すべての「空の」セルが「空白の」セルに変わりました。空白のセルを空白のセルに置き換えるだけで、手順 2 と 3 をマージしようとしましたが、うまくいきませんでした。空白のセルに実際のテキストを入力し、そのテキストを空白のセルに置き換えます。

于 2011-01-16T18:28:38.530 に答える
8

を使用してセルを評価してみてくださいLEN。数式LENが含まれている場合は、 が返され0ます。テキストが含まれている場合は、より大きな値が返されます0

于 2009-09-23T16:30:28.490 に答える
8

うわー、驚くほど多くの人が質問を読み違えています。セルを空に見せるのは簡単です。問題は、セルを空にする必要がある場合、Excel の数式は「値なし」を返すことができず、値のみを返すことができることです。ゼロ、スペース、さらには "" を返すことも値です。

そのため、「魔法の値」を返してから、検索と置換を使用するか、VBA スクリプトを使用して、値のない値に置き換える必要があります。スペースや "" を使用することもできますが、"NODATE"、"NONUMBER"、"XXXXX" などの明白な値を使用して、それがどこで発生したかを簡単に確認できるようにすることをお勧めします。"" を見つけるのは非常に困難です。スプレッドシートで。

于 2013-06-24T19:55:56.813 に答える
4

この回答はOPを完全に扱っているわけではありませんが、同様の問題が発生して回答を検索したことが何度かあります。

必要に応じて数式またはデータを再作成できる場合(そして、説明から、できるように見えます)、空白のセルを実際に空にする必要がある部分を実行する準備ができたら、領域を選択して次の vba マクロを実行します。

Sub clearBlanks()
    Dim r As Range
    For Each r In Selection.Cells
        If Len(r.Text) = 0 Then
            r.Clear
        End If
    Next r
End Sub

これにより、現在表示されているセル""または数式のみを含むセルの内容が消去されます

于 2016-10-22T19:15:14.390 に答える
1

HLOOKUP や VLOOKUP などのルックアップ関数を使用してデータをワークシートに取り込む場合は、関数を括弧内に配置すると、関数は {0} ではなく空のセルを返します。例えば、

ルックアップセルが空の場合、これはゼロ値を返します:

    =HLOOKUP("Lookup Value",Array,ROW,FALSE)

ルックアップセルが空の場合、これは空のセルを返します:

    =(HLOOKUP("Lookup Value",Array,ROW,FALSE))

これが他の機能で機能するかどうかはわかりません...私は試していません。これを達成するためにExcel 2007を使用しています。

編集

実際に IF(A1="", , ) が true として返されるようにするには、同じセル内で & で区切られた 2 つのルックアップが必要です。これを回避する簡単な方法は、2 番目のルックアップを、行の最後にあり、常に空のセルにすることです。

于 2011-05-09T06:48:35.143 に答える
1

これまでのところ、これは私が思いつくことができる最高のものです。

関数を使用して、ステートメントISBLANK内でセルが本当に空であるかどうかを確認します。IFセルに何かがある場合A1(この例では SPACE 文字であっても) 、セルは存在せずEMPTY、計算が行われます。これにより、作業する数値が得られるまで計算エラーが表示されなくなります。

セルが であるEMPTY場合、計算セルは計算からのエラーを表示しません。セルが であるNOT EMPTY場合、計算結果が表示されます。データが悪い場合、これはエラーをスローします#DIV/0

=IF(ISBLANK(A1)," ",STDEV(B5:B14))

必要に応じて、セル参照と数式を変更します。

于 2012-12-29T19:04:38.343 に答える
0

答えは正です。=IF()関数を使用して、セルを空のままにすることはできません。「空に見える」は空と同じではありません。2つの引用符を連続して使用しても、数式を消去せずに空のセルが生成されないのは残念です。

于 2011-10-04T15:35:38.873 に答える