アプリ版:「スタンプのみでお礼する」機能のリリースについて

1年10ヶ月以上なら10。
それ未満は0という式を作りたいです。

2年10ヶ月が入力されているセルがA1とすると
=if(A1 >=1年10ヶ月,"10","0")
といった感じで作りました。

A1の部分と1年10ヶ月の部分がおかしいのだと思いますが、どのように修正すればよいのか教えていただければ幸いです。

A 回答 (7件)

=if(a1 > = date(yare(getdate()-1,month(getdate()-10),day(getdate(

))),"10","0")
    • good
    • 0

間違えました。


=(a1 > date(yare(getdate())-1,month(getdate())-10,day(getdate())),"10","0")
    • good
    • 0

何度もすいません。

ifが抜けてました。
    • good
    • 0

>2年10ヶ月が入力されているセル


これは文字列でそのまま入力されているのですか?
それとも式で出しているのですか?式だったらそれを書いて下さい。
    • good
    • 0

「2年10ヶ月」と入力されているセルの値が「シリアル値」なら、


 =IF(A1 >=DATEVALUE("1901/10/1"),"10","0")
でOK。
1年10ヶ月に相当する「シリアル値」を用意してそれと比較すれば良いんです。

「2年10ヶ月」と入力されているセルの値が「シリアル値」以外であれば、それなりに文字列を分解して「シリアル値」相当の値に直す必要があります。
    • good
    • 0

最初に、No.4さんがおっしゃっていることを含め、「何年何ヶ月」をどうやって出すか、それがはっきりしていないように思いますね。



あまり、まとまっていませんが、私なりに考えてみました。

「何年何ヶ月」を出す
A1からA3、    その数式内容
2017/6/30  
2019/3/30  =TODAY()
1年9ヶ月   =DATEDIF(A1,A2,"y") &"年"& DATEDIF(A1,A2,"ym")&"ヶ月"
----------------

このようにした場合に、そのままA3 を使うことはできません。それを月数にして計算したらどうかと思います。

文字列の場合、月数に戻す方法
1年10ヶ月
22   =LEFT(A1,FIND("年",A1)-1)*12+MID(LEFT(A1,LEN(A1)-2),FIND("年",A1)+1,2)

これを、今回のIF式にいれます。
=IF(LEFT(A1,FIND("年",A1)-1)*12+MID(LEFT(A1,LEN(A1)-2),FIND("年",A1)+1,2)>21,10,0)

日付がある場合、当然、DATEDIFを使って

=IF(DATEDIF("2017/5/30"*1,TODAY(),"M")>21,10,0)
2017/5/30 は、実際はセルを参照。
    • good
    • 1

最初の関門は、A1の「2年10ヶ月」という値の実体です。

文字列なら"02年10ヶ月"とか"10年01ヶ月”と桁を揃えて入力しないと大小の比較がうまくいきません。「2年10月」と入力して2002年10月1日のシリアル値になったものを表示形式でごまかすと、2年0ヶ月が存在せず1年12ヶ月が存在する問題外なことになります。

そして、if関数の使い方ですが、1年10ヶ月が引用符なしで"10","0"が引用符付きなのは逆です。数値と文字列の区別をつけられるようになりましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A