• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルIF文をROUNDUPで短く書き)

エクセルIF文をROUNDUPで短く書き

このQ&Aのポイント
  • エクセルのIF文を使用して、ROUNDUP関数を使って短く書く方法について質問があります。
  • シート1のI列O列の値に応じて、シート2のE3に判定結果を表示するセル式を作成したいです。
  • Iの値が0の場合はE3を空白表示し、それ以外の場合はO列の値を計算して表示するルールをセル式にしたいです。

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

  • ベストアンサー
  • don9don9
  • ベストアンサー率47% (299/624)
回答No.2

I列とO列は500件程度のデータが入っているんですよね。 シート2のE3に判定結果とおっしゃいますが、その判定とは500件のデータ1件1件に対して個別に判定を行うのか、500件すべての合計や平均などから判定を行うのかがまずわかりません。 >40より小さかったら24、 >35より小さかったら21、 >30より小さかったら18 >の調子で5増えるごとに3の倍数で値が減っていき0以上なら0とする、セル式を作成したいです。 具体例と説明が一致していません。 これでは、5「減る」ごとに3の倍数で値が減っているようにしか見えません。 >5<O<0→0 >10<O<-5→3 >15<O<-10→6 >20<O<-15→9 >25<O<-20→12 >30<O<-25→15 >35<O<-30→18 >40<O<-35→21 この条件式も不等号が全部おかしいです。 仮に不等号の向きが逆であっても、下の式が上の式を全て包括する条件になっています。 結局、Oの値が何の場合に何の値を返したいのかわかりません。 そもそもO列に入りうる値の範囲はどのくらいなのでしょうか。 上記条件式を見るに、マイナスの値が入ってくる可能性もあるということですか? やりたいことをもっと整理して、正確に記述してください。 申し訳ないですが、この質問内容では何をしたいのか理解できません。 O1の値が5増える毎に3増えるような値を返すなら =LOOKUP(O1,{0,1,6,11,16,21,26,31,36},{0,3,6,9,12,15,18,21,24}) このような方法もありますが、やりたいことと適合するかはわかりません。 (上記式の場合、O1が0より小さい値の場合はエラー、36以上の値の場合は全て24を返します)

noname#145883
質問者

お礼

500件のデータ1件1件に対して個別に判定を行います。 不等号で判定する数値にマイナスが抜けています ご指摘のとおり、今のままでは、他者が理解できません。 しっかり整理したいと思います

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

その他の回答 (3)

回答No.4

=IF(A1=0,"",MAX(0,ROUNDUP(A1/-5,0)*3-3)) ととらえてみた。

noname#145883
質問者

お礼

おそらく、この形が正解に近いかとは思いますが、まだよくわかっていません。ご教授感謝します

全文を見る
すると、全ての回答が全文表示されます。
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート2のE3セルには次の式を入力してはどうでしょう。 =IF(SUMPRODUCT((Sheet1!I$1:I$1000<>"")*(Sheet1!O$1:O$1000))>0,IF(MOD(SUMPRODUCT((Sheet1!I$1:I$1000<>"")*(Sheet1!O$1:O$1000)),5)=0,(SUMPRODUCT((Sheet1!I$1:I$1000<>"")*(Sheet1!O$1:O$1000))/5+1)*3,ROUNDUP(SUMPRODUCT((Sheet1!I$1:I$1000<>"")*(Sheet1!O$1:O$1000))/5,0)*3),0)

noname#145883
質問者

お礼

すぐには理解できないですが、参考にさせていただきます。 感謝します

全文を見る
すると、全ての回答が全文表示されます。
  • DJ-Potato
  • ベストアンサー率36% (692/1917)
回答No.1

不等号の向きが全然意味不明なことになってます。 5より大きく0より小さい数はありません。 10より大きく-5より小さい数もありません。 以下同様。 ROUNDUP関数で5ではなく-5で割っているのか、よくかわりません。 この場合、計算結果はすべて負の数で表示されると思いますが。 I列には45以上の値が入ることはないのですか? 40以上で24に落とし込む要素が入っていません。 =IF(A1=0,"",MAX(MIN(ROUNDDOWN(A1/5,0)*3,24),0)) あたりでどうですか?

noname#145883
質問者

お礼

初歩的なミスです。やりたいことがまだ整理できていないようです ありがとうございます

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

関連するQ&A

  • エクセルIF文をROUNDUPで短く書きたい

    質問があります シート1のI列O列の値(データは500件程度)に応じて、シート2のE3 に判定結果を表示するセル式を作成しようとしています。まずI列の値でE3を空白表示するか決めます。その後O列の値が -40より小さかったら24、 -35より小さかったら21、 -30より小さかったら18 の調子で5増えるごとに3の倍数で値が減っていき0以上なら0とする、セル式を作成したいです。 以下の式を作成しましたが、文章で記述したとおりに動いてくれません (特に5<O<0→0のあたり)、この記述に何か問題がありますでしょうか? =IF('シート1'!I:I=0,“ “, ROUNDUP(シート1!O:O/-5,0)*3) ---------------------------------------------------------------------- I=0     →“ “ I=0でなければOの値で判定 0=>O→0 -5<O<0→0 -10<O<-5→3 -15<O<-10→6 -20<O<-15→9 -25<O<-20→12 -30<O<-25→15 -35<O<-30→18 -40<O<-35→21 O<-40     →24 -------------------------------------------------------------------

  • エクセル ROUNDUP 組み合わせ

    いつもお世話になります。 エクセル関数初心者です。 ROUNDUPの組み合わせについてご教授くださいませ。 セルE10に、=ROUNDUP(E9*1.1,-2) セルE11に、=ROUNDUP(C15,-3) とあります。 せるE10とセルE11の切り上げた数字を足したいのですが、 SUMをしても、数式は上のバーに表示されるのですが、数字が表示されません。 どのような数式なら切り上げた数字を足せるのでしょうか? ROUNDUPの組み合わせなどでしょうか?

  • エクセルのROUNDUP関数について

    お世話になります。 ExcelのROUNDUP関数についてアドバイスください。 【例】 C3のセルに =ROUNDUP(B3,5) このときB3の値が0.15678423 なら C3のセルは0.15679になる ここまでは何の問題もないのですが B3のセルが 0.1730909… のように小数点第6位の値が0のときも C3のセルが 0.17310 となります。 私としては小数点第6位の値が0のときだけは切り上げず C3のセルが 0.17309 と表示されるようにしたいのですがどうすればよいのでしょか。 いいかえるなら 第6位が1~9なら切り上げ、0のときだけ切り捨てという感じです。 なおセルの書式設定で小数点は第5位まで表示と設定しているので 0.17310 のように 0 が表示されますがこれについては問題ないです。 Excel2000使用です。

  • Excelでfor文とif文の操作をしたいです

    Excelについての質問です。 Excelで、画像のようにシート1のA列にアルファベットと数字のデータがあり(重複はありません)、B列に1~5の数字が入っているとします。 この時、シート2のB列に、シート2のA列で指定したものと一致する、シートAのB列の値を入力したいです。 (この例の場合、上から順に5、4、1です) プログラミング言語でいう、いわゆるfor文とif文の併用で for(i=1;i<4;i++){ for (j=1;j<8;j++){ if(シート1のセルAj==シート2のセルAi){   シート2のセルBiにシート1のセルBjを値を入れる   ループを抜ける } } } というような感じになると思います。(間違っていたら申し訳ないです。) こういった処理は、Excelのマクロで可能でしょうか? また、できればどうすれば実現できるか、教えていただけると助かります。 よろしくお願いいたします。

  • Excel Roundupしたはずが変わってない

    お世話になります。 A1セルに198.865という値が入っています。 B1セルにA1の値を少数第3位で切り上げた数字を表示させるためにROUNDUP(A1,3)と入力しました。 B1には少数第3位で切り上げられた198.87という値が正常に表示されますが、この値をVLOOKUPなどで参照すると198.865になってしまいます。 カーソルを置くと関数のバーのところに表示される数字が198.865のままなのです。 VLOOKUPで参照しても正しい198..87と表示させるようにするにはどうしたらよいでしょうか? Windows XP SP3 Excel2003

  • エクセルのIF文の質問

    お世話になります。 エクセルの条件分岐で、 ・値が0、もしくは空白のときは空白を表示、違ったら値を参照 ・一つ上の行と次の行の値が同じなら空白を表示、違ったら値を参照 という二つのIFを組み合わしたいのですが、どうにもうまくいきません。   A|B|C| 1|あ|い| | 2|あ|0 |う| 3| |0 |う| 例えばこんなデータなら、シート2にその結果を表示させたとして   A|B|C| 1|あ|い| | 2| | |う| 3| | | | こんな感じにしたいのです。 現在、 ・1行目に、空白か0なら空白を表示させる式を入力し IF(OR(A1="",A1=0),"",A1) ・2~データの終わりの行に、上と同じなら空白を表示させる式を入力しています。 IF(A1=A2,"",A2) でもこれをするとなぜかうまくいきません。 A2の値が空白だった時に0が表示してしまいます。 それに、自分の作った計算式もなんかスマートじゃない気がしてなりません。 もっと良い方法はないでしょうか?

  • Excel IF関数

    宜しくお願いします。IF関数なのですが、 例えば、A1~X1まで数字が記載されてるセルもあれば、記載されてないセルもあります。それかランダムに200行ぐらいまであるとします。そこで (1)例えばI列とP列、V列の数字の比較をするとして、I列を基準に考えるとします。 (2)I列に入力がなければ空白 (3)P列とV列両方共記載がなければ空白 (4)P列とV列どちらかに記載があればIと比較してI列の方が小さければ〇大きければ空白とします どのような式をつくればいいでしょうか?お力お貸し下さい。 (4)

  • エクセルVBAのIF・・・Else文について

    A列に日付が入っていて、それが12月の時はF列に"○"、 それ以外は"×"と表示したいのですが、下記を実行すると、 A列の空白セルの時もF列に"○"が表示されます。 何故でしょうか。Offsetを使って作成したいのですが、 すみませんが、宜しく御願いします。 Sub Test()  Dim i   For i = 2 To 20    If Month(Cells(i, 1)) = 12 Then     Cells(i, 1).Offset(0, 6) = "○"    Else     Cells(i, 1).Offset(0, 6) = "×"    End If   Next End Sub

  • エクセル関数でif文の作成の仕方

    if文の論理式にセルに何も入力されていない場合、別のセルに「-」を表示させようと、=IF(" ","-",・・・とするとエラーとなりました。 空白のセルはどのように表現すればよいのでしょうか?

  • EXCELのIF関数について

    9セルA1~J1に1~15の数のうちの10個が一つずつ入っており、セルA3~J3にも1~15の数が入っています。またA2~J2には、A~Jまでの英字が入っています      1 2 15 9 7 6 5 4 11 3        A B C D E F G  H  I  J       2 3 5 7 9 10 11 12  13 15   のとき                                          B J G E D    I        C   のようにA3列の値と同じ1列の数字の下の値を            A5 列に表示したいのですが、何度やってもできません。      良い知恵をお持ちの方、よろしくおねがいします。

このQ&Aのポイント
  • 無線LAN接続で時間がたつとオフラインになり、PCなどから印刷不可になる問題について相談したい。
  • Windows10を使用し、無線LANで接続している環境での問題。
  • ブラザー製のプリンターで初めての事象で、困惑している。解決策を教えてほしい。
回答を見る

専門家に質問してみよう