• ベストアンサー

execl2010 if関数について

いつもお世話になっています。 EXECL2010でIF関数を設定しようとしています。 漢字かブランクでデータを入力させたいと考えています。 =IF(AND(CODE(I11)>=12322,CODE(I11)<=29734),(I11)""),"","1:00") 片方ずつは動きますが、ブランクを条件に足すとエラーとなります。 どこがダメなのかご教授頂けたら幸いです。 どうぞよろしくお願いします。

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

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

正しくは =IF(OR(AND(CODE(I11)>=12322,CODE(I11)<=29734),ISBLANK(I11),I11=""),"1:00","") じゃないの? 漢字「または」ブランクなのだから「または」を意味する「OR関数」じゃないと。 OR( AND(CODE(I11)>=12322,CODE(I11)<=29734) ←漢字? , ISBLANK(I11) ←ブランク? , I11="" ←空文字列? ) 「AND関数」が使われているのは「漢字はコードが、12322以上で、かつ、29734以下」と言う「かつ」で判断しないといけないからですよ。AND関数は「かつ」を意味する関数です。

その他の回答 (2)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

=IF(AND(CODE(I11)>=12322,CODE(I11)<=29734),(I11)""),"","1:00") 上記の数式は引数に誤りがあります。 =IF(AND(論理式1,倫理式2),正のとき, 誤のとき) 論理式1 CODE(I11)>=12322 論理式2 CODE(I11)<=29734 ∴ AND(CODE(I11)>=12322,CODE(I11)<=29734) は正しいと考えられます。 正のとき (I11)"") このような数式はありませんので数式として成立しません。 (I11)"" → I11&"" に訂正すればI11セルが数値のとき文字列に変換されます。 誤のとき "","1;00" これはタイプミスでしょうか? IF関数に第4引数はありませんので成立しません。 "",""1:00" → "" に訂正すれば文字数0の文字列が代入されます。 =IF(AND(CODE(I11)>=12322,CODE(I11)<=29734),(I11)""),"","1:00")     ↓ =IF(AND(CODE(I11)>=12322,CODE(I11)<=29734),I11&"","") 但し、「漢字かブランクでデータを入力させたいと考えています。」になるか否かは検証していません。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

やりたいのがI11のアスキーコードが12322と29734の間かブランクの場合なら =IF(OR(AND(CODE(I11)>=12322,CODE(I11)<=29734),I11=""),"","1:00") ではないでしょうか?