以下の式での結果を、小数点切捨てで表示させたいと思います。
=IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5)))))
上の式にROUNDDOWN()関数を使って見ました。
一応2つ目の式は元の関数も括弧して試してみました。
=ROUNDDOWN(IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))))),0)
=ROUNDDOWN((IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),I(M5>0,$O$5/$P$5*M5,$O$5)))))),0)
ここで質問ですが、セルE5の数字を消す(空白)とエラーになってしまいますので、エラーの回避方法をお願いします。(式の通りE5が空白であれば結果も空白にさせたい)
ROUNDDOWN()関数を使用する前はエラーにはなりません。
補足
・上記はG5セルの関数です
・$O$5には小数点以下3桁までの数字が入っています
・$P$5には必ず正整数が入ります
・F列には=ROUNDDOWN($N$5*E5,0)の式が入っており、$N$5には小数点以下2桁までの数字が入っています(※質問式とは直接関係ありません)
・同じ行でL列とM列同時に数字が入ることはありません。またどちらも空白になることはあります。何れも正整数か空白です。
・その他セルには正整数か空白が入ります
=IF(ISERROR(ROUNDDOWN(IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))))),0)),"",ROUNDDOWN(IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))))),0))
と入力するとエラーは回避できますが、式がとても長くなり見づらいです。条件付書式も使用しないで考えたいです。
質問に元式を使用していますので分かり難いかもしれませんが、回答の方宜しくお願いします。
No.1ベストアンサー
- 回答日時:
最初の
=IF(E5="","",IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5)))))
を見るとIFが
IF(E5="",
IF($O$5/$P$5*($P$5-L5+1)="",
IF($O$5/$P$5*M5="",
IF(L5>0,
IF(M5>0,
これだけあるけど2番目と3番目は意味がありません。計算結果が""になることがありませんから。だから
=IF(E5="","",IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5)))
で十分だけど、この結果はE5が""でないときは
IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))
になります。これだけが意味のある数字でしょうから、ここにROUNDDOWNを適用します。
=IF(E5="","",ROUNDDOWN(IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5)),0))
ただし
IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5))
にエラーがあるときは考慮していませんので。
回答有難うございます。
確かに2,3番目の式に意味はありませんね。
即席で式を作ったので深く考えておりませんでした。
f272様の式を使用させて頂いたところ、エラーも無く計算されました。
解決出来ましたので質問は締め切らせて頂きます。
No.2
- 回答日時:
E5が空白の時、""に対してROUNDDOWNを行うことになるからエラーになるのです。
E5が空白では無い時の計算結果にROUNDDOWNを行いましょう
=IF(E5="","",ROUNDDOWN(IF($O$5/$P$5*($P$5-L5+1)="",$O$5,IF($O$5/$P$5*M5="",$O$5,IF(L5>0,$O$5/$P$5*($P$5-L5+1),IF(M5>0,$O$5/$P$5*M5,$O$5)))),0))
回答有難うございます。
>E5が空白の時、""に対してROUNDDOWNを行うことになるからエラーになるのです。
そうでしたか、""は文字列扱いでしたね。
今後は気をつけます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 出退勤管理の早退時間について 4 2023/08/21 15:22
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- Excel(エクセル) WORKDAY関数 4 2023/06/08 13:23
- Excel(エクセル) RANK.EQとCOUNTIFSの組み合わせで同ポイントの場合、違う条件を加えて順位を付けたい。 1 2022/08/30 19:49
- Visual Basic(VBA) Excel VBA マクロ ブロック崩しのコードについて。 1 2022/06/22 12:33
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- JavaScript 条件に該当した時のみ定数を宣言する事はできますか 8 2023/03/15 05:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
Excelのセルを飛ばして入力する
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excel 2019 のピボットテーブル...
-
エクセルの行の抽出について質...
-
【マクロ】エクセルにかいてあ...
-
スプレッドシート クエリ関数 1...
-
エクセルでセルに「氏名を入力...
-
MOS365 Excel Expert / Excel R...
-
excelの不要な行の削除ができな...
-
EXACT関数とIF関数の組み合わせ...
-
スプレッドシートの関数VLOOKUP...
-
Excelで全角を半角にしたいので...
-
Excel初心者です。 詳しい方、...
-
エクセルの数式で教えてください。
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報