アプリ版:「スタンプのみでお礼する」機能のリリースについて

おはようございます。

エクセルで少し不明な事が出てきたので教えて頂けませんか?

A1セルに入力された
=IF((ROUNDDOWN(LX46,3))=0,"",ROUNDDOWN(LX46,3)) が真の時に表示されている "" の中身を空白にする方法を教えて頂けませんか?

=ISBLANK(A1) で調べてみるとFALSEになるので何かが存在する様です。

これを空白に戻したいのですが・・・

詳しい方、よろしくお願いいたします。

質問者からの補足コメント

  • 回答ありがとうございます。

    文字長0の空白・・・勉強になります。

    今回は頻繁に元データ更新があり、データ→区切り位置→完了 では現実的に対応不可能なので少し別の方法を考えてみたいと思います。

    教えて頂き、ありがとうございました。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/04/29 08:14
  • ちなみに LEN関数では、0

    =ISBLANK(テストの対象) では FALSE 

    COUNT関数では、確かに1カウントされていました。

      補足日時:2015/04/29 08:16
  • 回答ありがとうございます。

    提示した数式では、小数点以下3桁目からを切り捨てて表示で、対象セルが0限定で非表示にしているつもりです。

    そして、その結果が0であった時に表示される "" の中身が空白でない事に頭を悩ましています。

    どうやって空白にしようかと言う悩みです。

    No.2の回答に寄せられた補足コメントです。 補足日時:2015/04/29 08:54
  • 失礼しました、確認しました所、COUNT関数ではカウントされていませんでした。

    No.3の回答に寄せられた補足コメントです。 補足日時:2015/04/29 08:57

A 回答 (8件)

>マクロで転記したら空白・・・


という事は「値」で「貼り付け」されたという事でしょうか?

★1で値代入すれば「長さ0の文字列」は消去されます。
(例1)
With Range("A1:A10")
.Copy
With Range("H1").Resize(.Rows.Count, .Columns.Count)
.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Value = .Value ’★1
End With
End With

直接値を代入することもできます。
(例2)
Dim rng As Range
Set rng = Range("A1:A10")
With Range("H1").Resize(rng.Rows.Count, rng.Columns.Count)
.Value = rng.Value
End With
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

なるほど、Valueで設定が出来るのですね、勉強になりました。

困っていたので助かりました、ありがとうございます!

お礼日時:2015/04/30 02:01

No.2です。


他の方々から色々回答は出ていますが、まだ解決していないのでしょうか?

>その結果が0であった時に表示される "" の中身が空白でない事に頭を悩ましています。
の意味がいまいち判らないのですが、
ROUNDDOWN関数を使っていますので、
対象セルがもし「文字列」であればエラーになってしまうと思います。
お示しの数式で返ってくる値はエラーの場合は↓の数式に変更してみてください。

=IFERROR(IF(LX46<0.001,"",ROUNDDOWN(LX46,3)),"")

これでもダメならごめんなさいね。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今回の式はデータがあれば、小数点以下を切り捨てて表示させる。

0であれば "" で空白を返す。

と言う目的でした。

その、計算結果セルに空白が表示された時にそのセルが空白でない事に頭を悩ませていました。

結果的に、2段階に分けて対応しました。

転記はマクロに任せて、ROUNDDOWNで小数点以下を切り捨てて0を転記しないようにしました。

たくさん考えて頂き、ありがとうございます、また迷った時は読み返してみます、ありがとうございました。

お礼日時:2015/04/30 01:56

isBlank関数ですが


空白かどうかの判断ではありません。
未入力かどうかの判断です。
仮に計算式の結果が空白であっても
未入力ではないので、FALSE が帰ると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

isbrankの本当の意味は、そうなんですね、再認識しました。

回答ありがとうございました。

お礼日時:2015/04/30 01:59

「区切り位置」以外の方法で空文字列を削除するには、2 回の置換を行います。



(1)処理したいセル範囲を選択
(2)置換のダイアログを出す(Ctrl+H)
(3)「検索する文字列」ボックスには何も入力せず、「置換後の文字列」に
  例えば「★★★」といった「適当な文字列」(シート上に存在しない文字列)を入力
(4)「すべて置換」ボタンを押す
(5)「検索する文字列」に(3)で使った「適当な文字列」を入力し、
  「置換後の文字列」には何も入力しない
(6)「すべて置換」ボタンを押す

なお、始めからセルを空白にする予定なのであれば、質問文の数式を次式に差し替えておけば、1 回のみの置換の操作(上の(5)~(6))で済ませることができますね。

=IF((ROUNDDOWN(LX46,3))=0,"★★★",ROUNDDOWN(LX46,3))

なお私の場合、「""」は何かと邪魔者なので、文書の原稿を作成する用途を除けば、基本的に使いません。原稿の類であっても「""」よりは、むしろ計算結果として「0」を算出しておき、「ゼロのみを非表示にするセルの書式」によって見えなくさせるという手段を使っていることのほうが多いかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほど、考え方で色んな対処が出来ますね、目からうろこです。

結果的には
>>> むしろ計算結果として「0」を算出しておき、「ゼロのみを非表示にするセルの書式」によって見えなくさせる 
にして、最後にマクロで0以外を転記しました。

教えて頂き、ありがとうございました!

お礼日時:2015/04/30 01:58

この後どうするのかがわからないので、空白でないとどのような不具合があるのか書かれると代案が出るかも知れません。

    • good
    • 1

COUNT関数で1になるんですか?

この回答への補足あり
    • good
    • 0

こんにちは!



>IF((ROUNDDOWN(LX46,3))=0
というコトは
LX46セルが 0.001 より小さい場合は・・・
とも言えますので

=IF(LX46<0.001,"",ROUNDDOWN(LX46,3))
としてみたらどうでしょうか?m(_ _)m
この回答への補足あり
    • good
    • 0

何が存在するかというと、""が存在するんですが…


式で""を返すと文字長0の文字列が返ることになります。
式が入っている以上完全な空白に戻すことはできませんが、もし空白(に見える)セルを数えるならLEN関数を使って文字数0のセルを数えるなどで対応されては如何でしょうか?

今後の作業で空白でないとダメなら、値にした後、該当セル(もしくは列)を選択し

データ→区切り位置→完了

としてみて下さい。
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A