Excel 2010で空白セルを参照するときに空白を表示する


27

多数の個別のワークシートを含むExcel 2010ブックがあります。シートの1つのセルは、同じブック内の他の2つのワークシートの個々のセルにリンクされています。私は、1つのシートの特定のセルに入力された値が他の2つのシートのセルにも入力されることを本質的に示す直接セル参照を使用しています。これを実現するために、セル参照で(=)関数を使用しました。

私が直面している問題は、プライマリセルが空白のままであっても、そのプライマリセルから入力されたセルが空白のままではなく0を表示することです。

リンク先のプライマリセルが空白の場合、従属セルを空白のままにしておきます。


私の式は非常に長いです、私にとってもIF構造は受け入れられない、良い質問ですが、私も十分な答えを見つけられませんでした。{= IFERROR(INDEX(NEPŘÍMÝ.ODKAZ( "EsZkouska"); SMALL(KDYŽ((INDEX(NEPŘÍMÝ.ODKAZ( "EsZkouska");; 1; 1)= "ČSN721180")*(INDEX(NEPŘÍMÝ.ODKAZ( " EsZkouska ");; 9; 1)=" RC_P_B ");ŘÁDEK(NEPŘÍMÝ.ODKAZ(" EsZkouska "))-MIN(ŘÁDEK(NEPŘÍMÝ.ODKAZ(" EsZkouska ")))+ 1;" "); 1) ; 17; 1); "")}
VojtěchDohnal

このアプローチと組み合わせたIF構造を使用することができます:stackoverflow.com/questions/22359452/…。...このように、あなたは名前の数式を作成することができますし、IF文あなたのシンプルでそれらを使用する
VojtěchDohnal

回答:


49

セルの内容を数値ではなくテキスト値として扱うようにExcelを強制する必要があります。これは、空白の値で自動的に行います。

=A2 & ""

これにより、Excelはそのセルがテキスト値を参照するようになり、空白がゼロに変換されなくなります。


4
うわー!とても簡単だとは信じられません!
スコット

1
ソリューションは数値入力のフォーマットをどのように処理しますか?この答えが数値データを破壊するかのように思えます。確かに、セルが空のときに0を取得することはできませんが、数値の代わりにテキストデータも取得します。これは実際の問題ですか、心強い言葉がありますか
LudvigH

1
テキストとして保存します。ただし、数式で使用する場合、Excelはそれを数値に変換する必要があります。ただし、実際には、このソリューションは、他のワークシートまたは非表示の列で背後で作業を行ったレポートにのみ展開します。
wbeard52

18

3つの答えがあります。

1)other.cell.referenceに=(たとえば  Sheet17!$H$42)の後に現在ある参照式を表させ、そのリンク参照を

=IF(other.cell.reference <>"",other.cell.reference, "")

2)リンクされたセルの「数値」形式を「カスタム」に設定しますGeneral;–General;

3)[Excelオプション]、[詳細]ページ、[このワークシートのオプションを表示]セクションで、[値がゼロのセルにゼロを表示する]チェックボックスをオフにします。警告:これにより、ワークシートのすべてのゼロが消えます。


1
最初のオプションは、セル内で数式を2回入力(またはコピー)する必要があるため、最適ではありません。本当に長い数式があり、後でその数式を編集(または、さらに悪いことにデバッグ)する必要がある場合は、特に厄介です。2番目のオプションは私にとっては機能していないようですが、おそらく間違っているのでしょう。3番目は間違いなく理想的ではありません。なぜなら、その効果の範囲は、本当に望んでいるよりもはるかに広いからです。本当に良いオプションはありませんか?
Iszi

@Iszi:最初のオプションについて:数式を 2回入力することについて話しているのではありません。元の質問にあるようQ1に、(本当に長い)数式をA1含み=Q1、; を含む状況について話しています。に変更A1したい=IF(Q1<>"", Q1, "")ので、再度変更する必要はありません。「本当に良いオプションはありませんか?」さて、この質問は9か月間アイドル状態でした。これが投稿されたすべてです。これらの回答があなたにとって十分でない場合は、新しい質問を投稿するか、この質問に賞金をかけます。
スコット

それは多かれ少なかれ同じことです。1つのセル内で1つの数式の2つのインスタンスのトラブルシューティングを行う煩わしさの一部は解決しますが、別の(他の場合は不要な)セルまたはセルのグループをミックスに追加することで事態を少し複雑にします。残念ながら、これに対する別の「素敵できれいな」答え本当に存在しないと思います。
イスジ

関連する質問をしばらく前に投稿しましたが、ここでのVBAスクリプトに関連するものとは異なる唯一の価値のある回答です。
イスジ

4

参照データが数値タイプ(非テキスト)または空のいずれかであり、0が存在する場合、これは、式を1回入力するだけの私の推奨アプローチです。確かに、やや間接的な方法ですが、私が思うに最高です:

  • 数式を入力して2番目のセルを参照するために追加のセルは必要ありません
  • 数式を2回入力する必要はありません
  • このメソッドは、ゼロ値と空のセルを区別します
  • VBAは必要ありません
  • 名前付き範囲を必要としません

Downfall:テキストデータが返される必要がある場合、これは機能しません。テキストデータの場合、上記の他の回答で述べたように、私の好みの方法は数値形式を使用することです。

=IFERROR((A1 & "") * 1,"")

この場合のA1は、別のシート、ワークブック、またはINDIRECT()を含む任意のセルに置き換えることができます。

これがどのように機能するかの注意:
IFERROR()-2番目の引数は空の文字列に設定されるため、エラーが発生した場合は空の文字列を取得します。したがって、ソースセルが空の場合、エラーがトリガーされることを確認する必要があります。

数値メソッド:ソース値を文字列化し、1で乗算します。リテラル空文字列* 1 = #VALUE、数値付き文字列は数値に自動変換され、エラーは発生しません。


面白い。なぜあなたは必要だと思います"" & A1 & ""か?A1 & ""またはから異なる結果が生成されるのはいつ"" & A1ですか?
G-Manは「Reinstate Monica」と言います

@ G-man:正しい、望ましい。回答を更新していただきありがとうございます。
rayzinnz

4

別のトリックがあります:soucre empty cellをformulaに設定し=""ます。詳細な説明はこちらをご覧ください


参照しているセルが参照しているセルよりも少ないため、これは私にとって完璧なソリューションです。ありがとう!
キット

2

私もスコットのものよりも良い解決策を見つけられませんでした。

しかし、ここからのアプローチと組み合わせると、ほとんど耐えられると思います:

http://www.ozgrid.com/Excel/named-formulas.htm

私はこのような式を持っているとしましょう

= IFERROR( INDEX(INDIRECT("EsZkouska");
  SMALL(IF((INDEX(INDIRECT("EsZkouska");;1‌​;1)="ČSN721180")*(INDEX(INDIRECT("EsZkouska");;9;1)="RC_P_B");
  ROW(INDIRECT"EsZkouska"))-MIN(ROW(INDIRECT("EsZkouska")))+1;"");1);17;1);"")

この式は、条件付き選択を使用してデータシートからセル値を読み取り、別のシートに表示します。データシートでセルの書式設定を制御することはできません。

[挿入]> [名前]> [定義]に移動し、[ワークブックの名前]で新しい名前 "RC_P_B"を作成します。次に、[参照先]フィールドに数式をコピーします({}文字なし-配列数式です)。

次に、スコットの式を使用できますが、式全体を繰り返す必要はありません。

 {=IF(RC_P_B<>""; RC_P_B;"---")}

これは、式全体をコピーするよりも優れていると思います。


2

この問題を克服するために式を使用しないでください。セルの値が0の場合、条件付きでセルをフォントの色を白にフォーマットするだけです。


5
これには、正当な値が0のセルに関する明らかな問題があります。
ドミトリーグリゴリエフ

また、条件付き書式設定式は「超」揮発性であるため、特に大きなスプレッドシートの場合、計算が遅くなるという欠点もあります。(画面が再描画されるたびに評価されます。)
robinCTS

1

リンクされたセルが非数値の場合、ISTEXTでIFステートメントを使用できます。

=IF(ISTEXT(Sheet1!A2), Sheet1!A2, "")

1
ただし、参照されているセル(Sheet1!A2例では、)に数値が含まれている場合、null文字列が表示されます。
スコット

ええ、参照セルにどのデータがあるのか​​という質問からは明確ではありませんでした。それが数値である場合、彼はゼロを望んでいると考えました。
ブラッドパットン

1

私はこの問題に対するエレガントな解決策を長い間探し求めてきました。

数式= if(a2 = ""、 ""、a2)を何年も使用しましたが、少し面倒です。

上記の提案= a2& ""を試してみましたが、動作しているように見えますが、実際にはテキストであるため、数値の書式設定を適用できず、合計、平均、中央値などの統計演算が機能しません。これを探している数字は法案に適合しません。

他のいくつかの機能を試してみたところ、今までで最もエレガントなソリューションだと思うものが見つかりました。上記の例を続けます:

= CELL( "contents"、A2)

数値として書式設定できる数値を返し、参照セルが空白の場合は空白を返します。何らかの理由で、この解決策は私が見つけたオンライン提案のいずれにも表示されないようですが、


1
これをExcel 2013で試しました。A2空白の場合、これが表示されます0。書式設定で何もしていませんか?
スコット

1

Excel 2010のソリューション:

  1. 「ファイル」を開く
  2. 「オプション」を押します
  3. 「詳細設定」をクリックします
  4. このワークシート「BBBB」の「表示オプション」の下
  5. 「ゼロ値を持つセルにゼロ値を表示する」ボックスのチェックを外します。

私は(の第三の選択肢)でこれを言った  私の答え
スコット

0
Public Function FuncDisplayStringNoValue(MyCell As Variant) As String

Dim Result As Variant

If IsEmpty(MyCell) Then

   FuncDisplayStringNoValue = "No Value"

Else
   Result = CDec(MyCell)

   Result = Round(Result, 2)

   FuncDisplayStringNoValue = "" & Result

   End If

End Function


-1

Office 2013で役立ったのは次のとおりです。

=IF(A2=""," ",A2)

最初の引用セットにはスペースがなく、2番目のセットにはスペースがあります。

お役に立てれば


なぜ括弧の2番目のセットにスペースが必要なのですか?=IF(A2="", "", A2)うまく機能しませんか?それはどう違い=IF(A2<>"", A2, "")ますか?そして、どのようにその 2年前に与えられた最高の投票答え、異なりますか?
G-Manは「Reinstate Monica」と言います

-1

私は同様の問題を抱えていた、と私はあなたのための方法を見つけたと思う。それは私の問題を修正しました。

列Cで列Aを参照し、参照セルの数式のみを記述する場合は、これを使用して列を下にドラッグします。

=A1

ただし、列Aのソースセルが空白であり、列Cの参照セルで空白のままにする必要がある場合、これを使用して下の列をドラッグできます。

=T(A1)

セルの書式設定に関する限り、参照(列C)は一般的である必要があります。


悲しいかな、これはドライブバイの質問でした。OPはスーパーユーザーに(ほぼ3年前に)来て、この質問を1つ尋ねましたが、戻ってきませんでした。だから、私たちは彼の状況の詳細を決して知らないかもしれない。しかし、Excelの主要な(メジャーではないにしても)機能は、数値を計算することです。ソースデータ(この例では列A)に数字が含まれている場合、答えはターゲットセルに数値データを入力できません。
スコット

= T()数式を含むセルのセルの書式設定が、テキストではなく一般であることを確認してください。私がそれを使用した場所には、完全に数字が表示されているためです。
ウィルプラーター

私はチェックした。それは一般的なものであり、空白になっています。(Excel 2013)
スコット

問題は、私は2010年のためにいただきたいあなたは2013を使用していることを、私の答えかもしれない
ウィルプラーター

これはExcel 2010でも機能しなかったと報告された回答(削除されました。担当者が≥10000の場合のみ表示できます)がありました。
スコット

-1

溶液:
=IF('Wk1 Data-replace w dt bgn & end'!C2>0, 'Wk1 Data-replace w dt bgn & end'!C2, "")

説明:
この問題を解決するために、2セットのIfコマンドを使用しました。

コマンドの第1部:
参照セルにデータが含まれている場合、参照セルの内容を表示するようにセルに指示しました(Excelはこれを0より大きい値を持つセルとして解釈します)

コマンドのパート2:
データがない場合の動作方法を説明しました。「」は空白のままにすることを意味します

注:Wk1 Data-replace w dt bgn&end '!C2は参照セルです。


(1)参照されるセルに0または負の数が含まれている場合でも、空白が表示されます。質問では、参照セルが空白の場合にのみ、リンクセルを空白にする必要があります。(2)明白な変更を行い、これを=IF('Wk1 … bgn & end'!C2<>"", 'Wk1 … bgn & end'!C2, "")に変更すると、すでに約4回与えられた回答と同等になります。
Gマンは「Reinstate Monica」と言います

-1

これらのすべてのソリューションは私にとって非常に複雑であり、これはすべてのアプリケーションにとって実行可能ではないかもしれないことを理解していますが、ソースフィールドを空白で埋め、宛先フィールドに空白を入れます。


1
セルを空白で埋めるにはどうすればいいですか?空白とはどういう意味ですか?
fixer1234

すみません、スペースのキャラクターを言ったはずです。そうすれば、そのセルは実際には空ではありません。ソースセルにはスペースがあり、スペースはコピー先のセルに到達します。
ジョンアロンソ

-1

私のために働く解決策があります:

IF(cell reference="","",cell reference)

説明:

""空白または空のセルに等しい。今、私はifを回すだけです。セルが空白の場合は空白にし、そうでない場合はセル参照を使用します。


これは基本的に、superuser.com
a / 515941の

-2

セルの書式設定に移動します。

次に、カスタム形式を選択し、次を入力します。 0;-0;;@


2
これが何をするのか説明できますか?ありがとう。
fixer1234

1
これは、この質問に対する私の回答の 2番目のオプション(«リンクされたセルの "数値"形式を "カスタム"に設定:General;–General;。»)とほぼ同じです。つまり、(a)値が正の数値の場合、整数の絶対値を表示します。(b)値が負の数である場合、整数の絶対値を表示し-ます。(c)値がゼロの場合、何も表示しません。(d)値が数値でない場合、そのテキスト値を表示します。…(続き)
スコット

1
(続き)…ただし、このバージョンには、整数以外の数値を最も近い整数に丸めるという欠点(エラー)があります。(General必要に応じて10進数字を含む(ただし-記号を含まない)数値のデフォルト形式を提供します。)また、;@私の答えがテキスト値を正しく表示する限り、最終は不要なようです(つまり、デフォルトのようです)変更なし。
スコット
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.