• ベストアンサー

excelの関数について

A1からA6のうち、値が全て0であれば「none」と表示し、0以外の値が入っているセルについて「A1,A4,A6」のようにセルの内容を表示したいと思います。 IF関数ではとてつもなく長文になってしまいそうで。 どなたかご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

そうなるとさらに長くなってしまいました;; =IF(COUNTIF(A1:A6,0)=6,"none",IF(LEFT(IF(A1=0,"",A1)&IF(A2=0,"",","&A2)&IF(A3=0,"",","&A3)&IF(A4=0,"",","&A4)&IF(A5=0,"",","&A5)&IF(A6=0,"",","&A6),1)=",",REPLACE(IF(A1=0,"",A1)&IF(A2=0,"",","&A2)&IF(A3=0,"",","&A3)&IF(A4=0,"",","&A4)&IF(A5=0,"",","&A5)&IF(A6=0,"",","&A6),1,1,""),IF(A1=0,"",A1)&IF(A2=0,"",","&A2)&IF(A3=0,"",","&A3)&IF(A4=0,"",","&A4)&IF(A5=0,"",","&A5)&IF(A6=0,"",","&A6)))

va-gue
質問者

お礼

ありがとうございます。 多少長くなってはいますが、確実でこちらで問題なさそうです。 勉強になりました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

ANo.4です。 考え方は、ANo.1さんと同じです。

va-gue
質問者

お礼

回答ありがとうございます。 関数を調べながら確認をしたのですが、 「0.1 0.05 0.1 0.2 0.3 5.5」のようにA2以降に0.XXと入力すると 「0.1.05.1.2.3,5.5」のようになってしまいます。 書式の問題でしょうか。 式を自分で見ている限り問題なさそうなのですが。。

すると、全ての回答が全文表示されます。
回答No.4

こんなのはどうですか? とりあえずカンマでつなげて、その結果の中の"0,"と",0"を消す。 =IF(COUNTIF(A1:A6,0)=6,"none",SUBSTITUTE(SUBSTITUTE(A1&","&A2&","&A3&","&A4&","&A5&","&A6,"0,",""),",0","")) または、 =IF(COUNTIF(A1:A6,0)=6,"none",SUBSTITUTE(SUBSTITUTE(CONCATENATE(A1,",",A2,",",A3,",",A4,",",A5,",",A6),"0,",""),",0",""))

すると、全ての回答が全文表示されます。
回答No.2

やっぱり長くなってしまいました;; =IF(COUNTIF(A1:A6,0)=6,"none",IF(LEFT(A1&","&A2&","&A3&","&A4&","&A5&","&A6,1)="0",REPLACE(SUBSTITUTE(A1&","&A2&","&A3&","&A4&","&A5&","&A6,",0",""),1,2,""),SUBSTITUTE(A1&","&A2&","&A3&","&A4&","&A5&","&A6,",0","")))

va-gue
質問者

お礼

回答ありがとうございます。 こちらでほぼ問題ないのですが、値が小数点を含む場合があります。 最初に記載していればよかったのですが、小数点第2位までの数字がセルに入ります。 言うのが遅れましてすみませんでした。

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

>値が全て0であれば「none」 >「A1,A4,A6」のようにセルの内容を表示したいと思います。 一例ですが... =IF(COUNTIF(A1:A6,0)=6,"none",SUBSTITUTE(TEXT(A1,"#;#;;@")&","&TEXT(A2,"#;#;;@")&","&TEXT(A3,"#;#;;@")&","&TEXT(A4,"#;#;;@")&","&TEXT(A5,"#;#;;@")&","&TEXT(A6,"#;#;;@"),",,",","))

va-gue
質問者

お礼

SUBSTITUTEを使用するのですね。 ありがとうございます。 ちなみに#及び@は何を意味するのでしょうか? 初歩的な質問で申し訳ありません。

すると、全ての回答が全文表示されます。

関連するQ&A