- 締切済み
エクセル ある文字列を入れるとある文字列を返す
エクセルでの関数、ど素人です。一応自分で調べたのですが、無理なので質問させていただきます。よろしくお願いいたします。 エクセルで、時刻ですが文字列として1745~2345までを手入力します(1745,とか2000とか2330とか。。。。。) 入れた文字列によって、すぐ横のセルに1745、1800、1815であれば8.00、1830からは0.25刻みで8.25、1845であれば8.50、1900であれば8.75。。。。2330であれば13.25、2345であれば13.50と言ったように、入力した文字列に対しある特定の文字列を自動的に入れたいのですが、どのような関数を使えばよろしいのでしょうか。 私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 どなたか教えていただきたく、お願いいたします。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、文字列を入力するセルがA1セルであるものとしますと、次の様な関数にされると良いと思います。 =IF(OR(ISERROR(1/(MOD($A1,100)<60)),$A1<1745,$A1>2345),"",IF($A1<1815,8,INT($A1/100)+FLOOR(MOD($A1,100),15)/60-10.25))
- keithin
- ベストアンサー率66% (5278/7941)
間違い: >1830からは0.25刻みで8.25、1845であれば8.50 正解? 1830からは15刻みに,1830~1844は8.25,1845~1900は8.50……と0.25ずつ増やしていきたい? 方法1: A1に4桁の数字を(文字列じゃなく数値で)記入するとして =IF(OR(A1<1745,2345<A1),"",INT(MAX(0,TEXT(A1,"0!:00")-"18:15")/"0:15")*0.25+8) 方法2:じつは「15刻み」じゃない場合 シート2のA1以下に,15分刻みの 1745 1800 1815 1830 1845 1900 : 2345 まで記入する その隣のB1以下に 8.00 8.00 8.00 8.25 8.50 8.75 : 13.50 まで記入する シート1にもどり,数式は =IF(AND(1845<=A1,A1<=2345),VLOOKUP(A1,Sheet2!A:B,2),"") とする。
- MackyNo1
- ベストアンサー率53% (1521/2850)
>私が行おうとしたのは、別シートに文字列一覧を作り、if(特定のセル(手入力するセル)=別シートの1745~2345まで、横のセル=別シートの8.00、8.00、8.00~13.50まで)や、sumif、lookupを使ってみましたが撃沈です。 A列に1745~2345までの数字、その横のB列に8.00、8.00、8.00~13.50までの数字を入力しておけば、VLOOKUP関数でA列に対応するB列の数値を引っ張ってくることができます。 =VLOOKUP(検索するセル番地,A:B,2,0)
- oct1290
- ベストアンサー率35% (75/213)
タイムカードか勤務時間管理だと思います、 最初に数値を時間に変えることからはじめ時間を管理することです 下記サイトでサンプルを見るか関数を理解してください、
- 参考URL:
- http://www.juno-e.com/
- mshr1962
- ベストアンサー率39% (7417/18945)
時刻表示でなく4桁の数字なら A1に入力として =IF(A1<1745,"",TEXT(FLOOR(MAX(A1-1815),15),"00:00")*24+8)