プロが教えるわが家の防犯対策術!

お世話になります。

VBAを使用せずに、セル関数だけで実現したいと思っています。

1行目が非表示の状態で、
 A1セルに文字が入っていればB2セルに"有り"
 A1セルに文字が入っていなければB2セルに"無し"
1行目が表示の状態で、
 A1セルに文字が入っていればB2セルに"有り"
 A1セルに文字が入っていなければB2セルに"有り"
と表示させたいのですが可能でしょうか。

"有り""無し"の文字にはこだわらず、セルを赤色とかになってもいいので
VBAを使用せずに、
非表示のセルに文字があるか、ないか
表示セルに文字があるか、ないか
を検出したいのです。

何とぞよろしくお願い申し上げます。

A 回答 (6件)

ごめん。


なぜ
> A1セルに文字が入っていなければB2セルに"有り"
とする必要があるのか自分には理解できないので、
 「非表示のセルに値があるかを表示する」
を目的としてアドバイスしてみます。

COUNTA関数でセルに入力されている値の数を数えることができますね。
これは行や列が非表示でも数えます。
SUBTOTAL関数は非表示のセルに対して集計を行いません。
すなわち、

 COUNTA関数が返す値

 SUBTOTAL関数でCOUNTA関数相当の集計をした結果
が等しくなければ
 非表示のセルに値が存在する
と判断できます。

 =IF(COUNTA(A1)=SUBTOTAL(103,A1),"無し","有り")

となりますが、行表示させているときに”有り”/”無し”表示はおかしな話です。
B1セルにダミーの値を入れておき、それをSUBTOTAL関数で集計し、非表示かを判断させるという方法で対処してみましょう。
ついでに質問文にあるよく分からない判定に合わせてみます。

 =IF(SUBTOTAL(103,B1)=1,"有り",IF(COUNTA(A1)=SUBTOTAL(103,A1),"無し","有り"))

ベタな方法で処理しましたので、もっとスマートな方法があるかと思います。
でも面倒なのでパス。
そこは質問者さん自身で精査して調整してください。
考え方は示しましたので、ご自身で判断と調整ができると思います。
    • good
    • 0
この回答へのお礼

すごい!!!!!!!!!!!!!!!!
あなた、天才です!!!!!!!!!

本当に助かりました!!!!!!!!

お礼日時:2018/11/28 10:41

》 1行目が非表示の状態で、


》  A1セルに文字が入っていればB2セルに"有り"
》  A1セルに文字が入っていなければB2セルに"無し"
「1行目が非表示の状態」なら、「有り」「無し」が見えないけど、正気で仰ってますか?
    • good
    • 0

こんにちは



関数で直接行の表示/非表示の状態を取得することはできないと思いますので、少し工夫が必要そうです。

例えば、1行目のどこかのセル(=使用していないセルで可)に必ず値が入っているようにします。
(値は何でもかもいません、このセルを利用して表示非表示の判定を行います。)

結局のところ、「行が非表示かつA1が空白」の時だけ"無し"で、それ以外は全て"有り"ということのようですから「非表示かつ空白」だけを区別できれば良いことになるので・・

仮に、上記の判定用セルをZZ1とするなら、B2セルに
 =IF(SUBTOTAL(103,ZZ1)+COUNTA(A1),"有り","無し")
の式を入力するのではいかがでしょうか?
    • good
    • 1

=IF(A1<>"","有り","無し")


とすれば、有り/無しは表示されました。
    • good
    • 0

別に非表示にしていても、参照とかはできるでしょうからA1が空欄かどうかの判定はできると思いますけど。

    • good
    • 0

「NUL」であるか否かを検査すればよいです。

見えない空白も検査できます。

> セルを赤色とかになってもいいので
セルの書式設定をしない限り、色がつくことはありません。
    • good
    • 0

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