『0の表示』だけなら書式で対処するのが簡単でしょう。
=if(式A=0,"",式A)としてしまうと、次に数値として使えなくなる場合があります。
>式Aがダラダラ長くてFALSEの部分をなにか簡単なもので代用できないかお尋ねしたいのです。
下のような表計算を考えてみます。
A B C D E F G H
1_____1____10___100__1000____1111__1111____1111__1111
2_____2____20___200__2000____2222__________2222______
3_____3____30___300__3000____3333__3333____3333__3333
4_____4____40___400__4000____4444__________4444______
5_____5____50___500__5000____5555__5555____5555__5555
6_____6____60___600__6000____6666__________6666______
E列(E1):=A1+B1+C1+D1
F列(F1):=IF(MOD(A1+B1+C1+D1,2)=0,"",A1+B1+C1+D1)
1行目を選択して、メニューから、挿入→名前→定義で
名前に Shiki
参照範囲に =!$A1+!$B1+!$C1+!$D1 を入力します。
※この参照範囲は範囲名Shikiを使ったセルと同一行のA~D列の加算を意味します。
G列(G1):=Shiki
H列(H1):=IF(MOD(Shiki,2)=0,"",Shiki)
※両式を下にコピーします。
とすれば、E、F列の値と同じになるはずです。
同じ式が多量にあると見やすくなり効果がある場合があります。(Excel2000です)
次に、質問の意味とは違うかもしれませんが、ユーザー定義関数を使えばすっきり書ける場合が多くあります。
作った本人には分かりやすいでしょう。(他の人が見て・・・?)
次のような式は
=IF(A1+A3+A6+A7+A8+A9+A10<100,"",A1+A3+A6+A7+A8+A9+A10)
↓
ユーザー定義関数で下のように書くことができます。(ユーザー定義関数の作り方によります)
=myCalc1(A1+A3+A6+A7+A8+A9+A10+B4)
'ユーザー定義関数例-1
Function myCalc1(myformula As String)
Dim Work
Work = Evaluate(myformula)
myCalc1 = IIf(Work < 100, "", Work)
End Function
もう1つ例です。
G2:J11のG列でB2を検索し、見つかれば、H、I列を結合した文字列を帰り値にします。
=IF(ISNA(VLOOKUP(B2,G2:J11,1,FALSE)),"",VLOOKUP(B2,G2:J11,2,FALSE)&VLOOKUP(B2,G2:J11,3,FALSE))
↓
=myVlookup1(B2,G2:J11)
'ユーザー定義関数例-2
Function myVlookup1(Rng As Range, searchRng As Range)
Dim vL1 As Variant, vL2 As Variant, vL3 As Variant
vL1 = Application.VLookup(Rng, searchRng, 1, False)
vL2 = Application.VLookup(Rng, searchRng, 2, False)
vL3 = Application.VLookup(Rng, searchRng, 3, False)
myVlookup1 = IIf(IsError(vL1), "", vL2 & vL3)
End Function