• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excelのIFfunctionについて)

excelのIFfunctionについて

このQ&Aのポイント
  • excel 2003でのIF関数について質問です。分かりにくいところがあります。
  • AU6に0が表示されるべきですが、-2が表示されます。なぜAA6と違う結果になるのかわかりません。
  • AA6を消して0を入力すると、AU6は0になりますが、AA6の式は残したいです。どこが問題なのでしょうか?

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

  • ベストアンサー
  • YSNR-HRN
  • ベストアンサー率36% (40/111)
回答No.1

> AA6は、 > =IF(AND(Z6=0,G6>=2),G6-2,IF(AND(G6=1,Z6=0),G6-1,IF(Z6>=1,Z6+G6,IF(Z6+G6=0,"0")))) > (z6は0で、g6は空白です) > 結果、0です。 このAA6の0は文字の0で数値ではないことが原因です。 数式の最後の"0"が"で囲まれているため文字と認識します。 だと思います。

shika_lime
質問者

お礼

直りました! 数字として表示したい時は、""はいらないんですねー・・・勉強になりました。 有難う御座います!!!

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

関連するQ&A

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

    エクセルの関数についてです エクセルで出勤簿を作っているのですが、関数の数式がわかりません。 結論から申しますと、退勤時間を24:00と書いても0:00←(24時のこと)と書いても同じ処理をしてほしいということです。 詳細を以下に記載していきます C9出勤:手入力 D9退勤:手入力  ←問題はココ 休憩セルには=AN9 AN9には「=SUM($AD9:$AM9)」 AD9には「=IF(OR(($C9=$D9),(設定!$A$4=設定!$C$4),COUNT($C9,$D9,設定!$A$4,設定!$C$4)<4),0, IF(AND(設定!$A$4<=$C9,$C9<=設定!$C$4,設定!$A$4<=$D9,$D9<=設定!$C$4),($D9-$C9), IF(AND(設定!$A$4>$C9,設定!$A$4<$D9,$D9<=設定!$C$4),($D9-設定!$A$4), IF(AND(設定!$A$4<=$C9,$C9<設定!$C$4,設定!$C$4<$D9),(設定!$C$4-$C9), IF(AND(設定!$A$4>$C9,設定!$C$4<$D9),(設定!$C$4-設定!$A$4),0)))))」 AM9には「=IF(OR(($C9=$D9),(設定!$A$14=設定!$C$14),COUNT($C9,$D9,設定!$A$14,設定!$C$14)<4),0, IF(AND(設定!$A$14<=$C9,$C9<=設定!$C$14,設定!$A$14<=$D9,$D9<=設定!$C$14),($D9-$C9), IF(AND(設定!$A$14>$C9,設定!$A$14<$D9,$D9<=設定!$C$14),($D9-設定!$A$14), IF(AND(設定!$A$14<=$C9,$C9<設定!$C$14,設定!$C$14<$D9),(設定!$C$14-$C9), IF(AND(設定!$A$14>$C9,設定!$C$14<$D9),(設定!$C$14-設定!$A$14),0)))))」 AD9~AN9までは同じようなことが書いてあります。 設定!$A$4には「12:00」 設定!$C$4には「13:00」 以上までが、休憩セルです H9拘束時間には、=AS9 AS9には、「=AC9」 AC9には、「=IF(COUNT($C9:$D9)<2,0,IF($AA9*24>$AB9*24,0,TEXT($AB9-$AA9,"[h]:mm")))」 AA9には、「=IF(COUNT($C9:$D9)<2,0,TEXT(CEILING($C9,"0:10"),"[h]:mm"))」 AB9には、「=IF(COUNT($C9:$D9)<2,0,TEXT(FLOOR($D9,"0:10"),"[h]:mm"))」 以上が拘束時間 I9普通残業セルには、=AT9 AT9には、「=IF(D9-設定!$C$2<0,"0:00",D9-設定!$C$2)」 設定!$C$2には、「18:00」 以上が普通残業時間 J9深夜残業時間セルには、「=AU9」 AU9には、「=AQ9」 AQ9には、「=SUM($AO9:$AO9)」 AO9には、「=IF( COUNT($C9:$D9)<2, 0, IF( AND(22<=$AA9*24,$AA9*24<29,22<$AB9*24,$AB9*24<=29), ($AB9-$AA9), IF( AND($AA9*24<=22,22<$AB9*24,$AB9*24<=29), ($AB9-"22:00"), IF( AND(22<=$AA9*24,$AA9*24<29,29<=$AB9*24), ("29:00"-$AA9), IF( AND($AA9*24<22,29<$AB9*24), ("29:00"-"22:00"), 0 )))))」 以上が深夜残業時間 ということで、分かる方ご教授願います。

  • エクセル2010、VBAや関数について

    Private Sub CommandButton1_Click() Worksheets("商品マスタ").Activate Application.Calculation = xlCalculationManual If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData ActiveWindow.ScrollRow = 3 Range("AI1:AQ4").ClearContents Range("AI1:AQ4").NumberFormatLocal = "@" Range("AJ2:AK2").Value = Range("B2:C2").Value Range("AL2:AM2").Value = Range("D2").Value Range("AO2").Value = Range("E2").Value Range("AP2").Value = Range("V2").Value Range("AQ2").Value = Range("W2").Value Range("AN2").Value = Range("D2").Value If Me.TextBox1.Value <> "" Then ' コード Range("AK3").Value = "*" & Me.TextBox1.Value End If If Me.TextBox2.Value <> "" Then ' メーカー Range("AL3").Value = "*" & Me.TextBox2.Value & "*" End If If Me.TextBox3.Value <> "" Then ' <--シリーズ Range("AM3").Value = "*" & Me.TextBox3.Value & "*" End If If Me.TextBox4.Value <> "" Then ' <--サイズ Range("AN3").Value = "*" & Me.TextBox4.Value & "*" End If If Me.TextBox5.Value <> "" Then ' 入荷日 Range("AJ3").Value = Me.TextBox5.Value End If If Me.TextBox9.Value <> "" Then ' 仕入れ先 Range("AP3").Value = Me.TextBox9.Value End If If Me.TextBox12.Value <> "" Then ' 単体価格 Range("AQ3").Value = Me.TextBox12.Value End If If Me.TextBox6.Value <> "" Then ' 在庫数 Range("AO3").Value = Me.TextBox6.Value End If If Cells(3, Columns.Count).End(xlToLeft).Column > 34 Then Range("A2:W" & Rows.Count).AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=Range("AI2").CurrentRegion, Unique:=False End If Range("AI1:AQ4").ClearContents ActiveWindow.ScrollColumn = 4 Range("A2").Activate Application.Calculation = xlCalculationAutomatic End Sub このようなマクロを組んでいるのですが、とても反応が遅いのですが、 シートにはA4-AG2000にデータが入っていて、 G4-U2000には =SUMIFS('[在庫.xlsx]02'!$AD:$AD,'[在庫.xlsx]02'!$AQ:$AQ,$A421,'[在庫.xlsx]02'!$AS:$AS,$F$2,'[在庫.xlsx]02'!$AT:$AT,G$2) このような関数が入っております。 これが原因で、動作が遅くなっているのでしょうか? 行の挿入等もとても遅いのですが、 G-U列の関数をやめてVBAで転記してから、検索をかけたら、早くなるのでしょうか? G-U列には関数での表記しかわからなかったため、関数をいれております。 解決法があれば教えてください。

  • エクセルでどうしてもVALUEになります。

    宜しくお願いします。 ちょっと長いですが N18  に =IF(AND(OR(D18="",D18=0),E18="",H18="",J18=""),"",D18+E18-F18-H18-J18-K18-M18) X18 に =IF(AND(OR(N18="",N18=0),O18="",R18="",T18=""),"",N18+O18-P18-R18-T18-U18-W18) Y18 に 数値 25,000を入れると AH18 の =IF(AND(OR(X18="",X18=0),Y18="",AB18="",AD18=""),"",X18+Y18-Z18-AB18-AD18-AE18-AG18) がVALUEになります。 どうしたら、数式の意味を変えずにエラー回避できるのでしょうか?

  • EXCLでVALUEを出さない方法は?

    エクセルで例えば=(AA5*56000+AC5*76000+AE5*136000)*0.6+(E5*2000)+(F5*3000)+(G5*1000)+(H5*1000)-(AG5*1000)+(AH5*1400)+(AI5*2400) とこんな感じで式を入れてるんですが、セルに0を入れると大丈夫なんですが空白にするとVALUEと表示します。空白でもVALUEと表示させない方法ありますでしょうか?

  • Excelの数式について教えてください。

    =IF(AND($A7="",$I7="",),"",IF($X7=$AA$13,IF(AND(NOT($A7=""),NOT($I7="")),$H7+$P7,IF($X7=$AA$13,IF(NOT($A7=""),$H7,IF($X7=$AA$13,IF(NOT($I7=""),$P7))))))) 何とか上記の数式を作ったのですが、 (X列、AA列は色々な店名が入力されています。)X列の店名が、AA列の店名に合致すると、正常に計算されますが、合致しないと"FALSE"が表示されます。 合致しない場合は、"FALSE"でなくセルを空白表示にしたいのでが、数式を教えてください。 Excel2003 セルの書式設定:X列、AA列は標準、他の列は数値です。この式はQ列に入力されています。 よろしくお願いいたします。

  • MATCH LARGE などで重複を防ぐには

    いつもお世話になります。 WIN7 EXCELL2010 です。 次のような問題点があります。 シート「記入」から シート「月別」AC列 AD列を作業列に。 この時、例えば シート「月別」AD6 AD7 に同じ金額の20,000があり Z5 Z6 に「佐々木」が重複し 「星野」が表示されません。 これを防ぐ方法で何かいい解決策はありませんでしょうか。 ご指導いただければ幸甚です。 よろしくお願いします。 参考 Y4 =IF(OR(記入!C2="",AA2=0),"",COUNTA(記入!$C$2:$C2)) Z4 =IF(COUNTIF($AC$4:$AC$100,"?*")<ROW(G1),"",INDEX(AC$4:AC$100,MATCH(LARGE($AD$4:$AD$100,ROW(G1)),$AD$4:$AD$100,0))) AA4 =IF(AC4="","",SUMIF($AC$3:$AC$100,Z4,$AD$3:$AD$100)) AC4 =IF(COUNT(記入!$G$1:$G$3000)<ROW($A1),"",INDEX(記入!$C$1:$C$3000,SMALL(記入!G$1:G$3000,ROW(A1)))) AD4 =IF(AC4="","",SUMPRODUCT((記入!$B$2:$B$3000>=DATEVALUE($AB$2))*(記入!$B$2:$B$3000<DATEVALUE($AH$2))*(記入!$C$2:$C$3000=AC4),記入!$D$2:$D$3000))

  • リストに一致した列に同じ値か1を返す方法

    散々調べましたが、一向に解決しないため教えて下さい。 セルAA1~AZ1に『あ』から順に『は』まで入っているとします。 たとえば、   A  B  C  D  E  F  G・・・ 1 2 い  さ  た 3 く  す  て  に  は 4 た  ぬ 5 あ  え  か  け  さ  せ  と 6 こ このような状態になっているとき、 2行目の『い、さ、た』を、リストAA1~AZ1と一致する同じ行内(この場合、AB2、AK2、AP2)に それぞれ『い』『さ』『た』か、若しくは1を返したいと思っています。 量が少ないのなら手作業でやってもいいかな・・・と考えたのですが、 1000件ぐらいあるため、何かいい方法はないものかと思っています。 関数で『=if(A2="あ",1,if(B2="あ",1,if(C2="あ",1,if(D2="あ",1,if(…省略…)』 というのをAA2に入れるというのを作ったのですが、 例のように数多くあると式が長くなりすぎるのかエラーになってしまいます。 マクロか関数などで何とか処理できないものでしょうか。 すみませんが、よろしくお願いします。

  • IF関数で出来ないのかな?

    E13のセルにa,i,u,e,oが入力されたら、AA2:AA28から参照してZ2:Z28を現す事は以下の式でやっとこさ出来ました。 =IF(E13="a",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13:E13="i",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="u",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="e",(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(E13="o",(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) が!!! 今度はその逆でE13のセルにa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す事が出来ません!! NOT関数で出来ると思って以下の式を作ったんですけど、 =IF(NOT(E13="a"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="i"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="u"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="e"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),IF(NOT(E13="o"),(LOOKUP(E13,AA2:AA28,Z2:Z28)),""))))) これだと何故かa,i,u,e,oを含め全てで参照して表してしまいます。 また他にも IF(C13="i",IF(C13="u",IF(C13="e",IF(C13="o","",(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))),(LOOKUP(C13,AA2:AA28,Z2:Z28))), (LOOKUP(C13,AA2:AA28,Z2:Z28))) というようにNOT関数を使わずに"真"と"偽"逆にしてみたんですけど 結果はNOT関数と同じでした。 なぜ?分らない・・・。 とりあえずa,i,u,e,o以外が入力されたらAA2:AA28から参照してZ2:Z28を現す方法を教えて下さい。 そして余裕があれば、NOT関数と"真"と"偽"逆にした時に全てで参照して表してしまうのかも教えて欲しいっす!! ちなみにE13=MID(B3,2,1)となっていて、B3にある文字列から一文字抜いた状態です。

  • 次のマクロコードがわかりません

    Q~U、W~AA、AC~AG、AK~AO、AQ~AU、AW~BA 、BE~BI BK~BO、BQ~BU の各列にそれぞれ下記のように(一例)データが入っています  Q  R S T U   W X Y Z AA ・・・ BQ BR BS BT BU いか 3 7 1 5   たこ 3 5 2 10              えび 5 2 5 10 ここで仮にいかと同じ行にあるWで”1”と入力したら丁度同じ行の左のQ~Uの5つのデータをコピーできるようにしたいです。おなじようにえびが記入してある行のBQで” 1”と入力すればBQ~BUにえび~10までのデータがコピーされます。まとめると、各W、AC、AK、AQ、AW、BE列の任意のセルで” 1”と入力すれば左隣の5つのセルをコピーする感じです。

  • Excelで二つの関数をヒトツの関数に収めたい

    =IF(AND(T$3>=$D9,T$3<$E9),1,"")という式と =IF(AND(T$3>=$F9,T$3<$G9),-1,"")という式をヒトツにまとめたいです。 ちなみにD9は出勤時間、E9は退勤時間、F9は休憩始めの時間、G9は休憩終わりの時間 そしてT3には時刻が入力されており、塗りつぶす事によってグラフになるようになっています。 現在は1つ目の式のみを使い、条件式書式にて「1と等しい時にセルを塗りつぶす」としています。 これに休憩時間の間はグラフを塗りつぶさないという条件をプラスしたいと思っています。 補足としては、他のセルにてCOUNT関数を使っており、その時間に何人が働いているか表示出来るようにしています。 二つ目の式の真の場合の-1に深い意味はありません。 結果、何人働いているか表示出来ればと思っての数字です。 よろしくお願いします。

専門家に質問してみよう