- ベストアンサー
ムズかしい数式
こんにちは。 エクセルについて過去ログに同じような質問が無かったので発言します。 初歩的な事ですみません。 数式が全く理解できないのでアドバイスお願いします。 下のような数式があるのですが、チンプンカンプンなんです。 =IF(AND(B35="",C34="",C35=""),"",IF(AND(C35>0,C35<>""),FIXED(C35,0),IF(A34>0,FIXED(A34,0),0))&"×"&IF(RIGHT(FIXED(IF(B35>0,B35,$B$4)/100,2))="0",FIXED(IF(B35>0,B35,IF($B$4>0,$B$4,100))/100,1),FIXED(IF(B35>0,B35,IF($B$4>0,$B$4,100))/100,2))) エクセルの教科書にはオートSUM程度の数式しか載っていないのですが、 よいHPがありましたら教えてください!
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 なかなか難しい関数ですね。 とりあえず参考程度に呼んでください。 1つ1つの関数を解説していきます。 ■IF関数 =IF(論理式, 真の場合, 偽の場合) 指定された条件が TRUE (真) のとき 真の場合 を返し、FALSE (偽) のとき 偽の場合 を返します。 簡単なIF関数として =IF(A1=0,"○","×") 「A1セルが0の場合は○をその他は×を表示する」という意味になります。 ※IF関数は入れ子にできます。 =IF(論理式, 真の場合,IF(論理式, 真の場合, 偽の場合)) という感じに。 ■AND関数 =AND(論理式1, 論理式2, …論理式30) すべての引数が TRUE のとき、TRUE を返します。引数が 1 つでも FALSE である場合、戻り値は FALSE になります。 簡単なAND関数として =AND(A1=0,B1=0) 「A1とB1が0の場合はTRUEを、その他はFALSを表示する」という意味になります。 ■FIXED関数 =FIXED(数値, 桁数, (桁区切り)) 数値を四捨五入し、ピリオド (.) とカンマ (,) を使って書式設定した文字列に変換します。 簡単なFIXED関数として =FIXED(1234.56,0) 「1234.56を小数点第0位(整数)に四捨五入する」という意味になります。 回答は「1,235」となり、文字列に変換されます。 ■RIGHT関数 =RIGHT(文字列, 文字数) 文字列の末尾 (右端) から指定された数の文字を返します。 簡単なRIGHT関数として =RIGHT("あいうえお",2) 「あいうえおの右から2番目まで表示する」という意味になります。 回答は「あい」となります。 この4つの関数を組み合わせています。 関数の意味はヘルプで見れるので参考にしてみてください。
その他の回答 (3)
- kukkychan
- ベストアンサー率12% (23/190)
こんにちは! 上記式に関する解説は何人かの方が書いているので 書きません。 「よいホームページがありましたら教えてください」 との事ですが、 エクセルのヘルプ機能は活用していますか?? エクセル関数はすべてヘルプ機能で検索すれば 丁寧な解説が書いてあります。 あとはその個々の関数を応用すれば 上記のような式になるので、 自分で1個1個関数の使用方法を検索し、見てみるのも 結構勉強になるんじゃないでしょうか!!
- yanmaa
- ベストアンサー率45% (207/457)
つまらんから上の式を展開しちゃいましょう。 1.もし「B35とC34とC35のセルが空白(何も値が入っていなかったら)」の場合は"空白"を設定する。 以下処理A 2.1の条件以外なら「C35が0以上でC35が空白でない」の場合は"C35を四捨五入"する。 3.1,2の条件以外なら「C34が0以上」の場合は"C34を四捨五入"する 4.3以外なら"0"を設定する。 以下処理B 処理A & "×" 以下処理C 5.「B35が0以上」の時"B35"のセル値をそれ以外はB4のセルの値を100で割り、少数点第2位で四捨五入する。 6.その結果を「右から1文字取った結果が0」の場合、7の結果をそれ以外なら8結果 7.「B35が0以上」の時は"B35"のセルの値をそれ以外の場合は「B4が0以上」なら"B4"のセル値をそれ以外なら"100"を100で割り小数点第1位で四捨五入する。 8.「B35が0以上」の時は"B35"のセルの値をそれ以外の場合は「B4が0以上」なら"B4"のセル値をそれ以外なら"100"を100で割り小数点第2位で四捨五入する。 ※式が間違ってないかい?※で囲んでいる所がない。 >))&"×"&IF(RIGHT(FIXED(IF(B35>0,B35,$B$4)/100,2),※1※)="0", 結果 B35、C34、C35が空白の時は空白 それ以外は処理A × 処理C ですね。 厄介というか見難いというか 式をばらして別セルに書いてみれば分かりますよ。
- himehime
- ベストアンサー率37% (133/354)
こ、これは高度な関数だな~(-_-;) 関数だけでなく、中身も高度です。 ちんぷんかんぷんでも無理ないかも(-_-;) ネストって方法が使われています。 関数は引数としても使えるので。 しかも、これ、パレットでできない(手入力せざるをえない)数式だ(-_-;) ここで意味、説明しても、多分、わからないと思いますので、アドバイスを。 市販の、初歩的なExcelの本には載っていないと思いますので、 Excel関数専門の本が本屋に行けばあると思いますから、 それ買った方がいいようにおもいます。 (ネストはともかく、単体の関数の説明はわかるとおもいます。) とりあえずですね、 B35と、C34と、C35以外のセルのどこか一つをアクティブセルにしてその数式そのまま、コピーしちゃってください。 F35に数式コピーしたとしますね。 C35に、0と入れてみてくださいね。 で次に、C35をDeleteキーでいったん消して、1って入れてみてください。 で次に、C35をDeleteキーでいったん消して、2って入れてみてください。 F35に結果がでるので、 これで、結果はどうなるかはわかりますので。 まあ、他にもいろいろ入っているんですけど。 数式は、数字や、""の「中」の文字や数字を変えて、実験して、どう変わるか確認した方が早いと思いますよ。 (でも、最初に練習するべき数式ではないですね(-_-;)これ。高度すぎます。) とりあえず、有名どころのHPを二つ入れておきますね。 前者は、個人ユーザー、後者は、Excelの本の著者のホームページです。 後者は、スクロールすると、「関数の極意」というところがありますので、そこをクリック。 ただ、二つとも、多分、現段階では、高度すぎるとおもいます。