2017-03-08 9 views
2

私は現在、2列、この例ではCBCCから収集し、列CDに連結するこの数式を持っています。 最初の列が5未満の場合は、2桁の小数点以下の桁数になります。最初の桁が5以上の場合は、小数点以下は0になります。ここで値を連結する数式

は、私はそれを行うために一緒に入れ式である:

=IFERROR(IF(CB32 < 5,CONCATENATE(ROUND(CB32,2),"-",ROUND(CC32,2),"%"),CONCATENATE(ROUND(CB32,0),"-",ROUND(CC32,0),"%")),"") 

は今、私はどちらかの列CBまたはCCが空の場合、それはでないとして、それが戻っ0-0%に合格しないことを確認する必要がありますIFERRORがまだ追加されました。どうしてこれなの?ここで

は、私はそれをやって考えた方法ですが、正常に動作していないよう:

=IFERROR(IF(OR(OR(CB32 < 5, CB32<>"", CC32<>"")),CONCATENATE(ROUND(CB32,2),"-",ROUND(CC32,2),"%"),CONCATENATE(ROUND(CB32,0),"-",ROUND(CC32,0),"%")),"") 
+1

これは、より多くの音CONCATENATEよりもSUM操作のようです。いずれにしても、= ROUND( - (CB32&CC32)、2 *(( - CB32)<5)) 'を試してください。期待される結果と一緒にサンプルデータを表示すると、この質問がはっきりと分かりやすくなりました。 – Jeeped

答えて

2

それは、細胞が空にされている場合は最初からテストするために簡単です:

=IFERROR(IF(AND(CB32="", CC32=""),"",IF(CB32 < 5,CONCATENATE(ROUND(CB32,2),"-",ROUND(CC32,2),"%"),CONCATENATE(ROUND(CB32,0),"-",ROUND(CC32,0),"%"))),"") 
+0

私の公式のIFERRORが空の列に0-0%を返し、同じシナリオで* BLANK *を他の数式領域に返す理由を答えてください。 – Brad

+0

@ブラッド: '0-0%'はエラーではありません。値が丸められない場合(つまり文字列)またはエラーの場合にのみエラーが発生します。 – R3uK

+0

正解ですが、CBとCCの両方の列が空の場合の計算式では、私の計算式は0-0%になります。同じシナリオですが、異なる行の異なる式の答えです。どうしてこれなの?申し訳ありませんが私の前のコメントが少し不明だった場合。 – Brad