スプレッドシート。
こんにちは 自分は水泳部に入っていて、タイムを頻繁に記録してます。そこで、googleスプレッドシートを使っているのですが、関数に詳しい方教えていただけないでしょうか。 ↓に再現します。 記録 距離 長水路or短水路 長水路換算値 1:13:02 100m 短水路 この長水路換算値を求めたいのですが、だいたい記録に0:02:00を足すと求まります。 でも関数が苦手でIF関数とかがよくわからないので誰か教えていただけると助かります! 短水路と答えたときは2秒足した値が出て、長水路と答えたときは-と表記されるものがいいです。 よろしくお願いします
みんなの答え
※きびしいコメントを見たくない人は
「見ない」をおすと表示されなくなるよ!
スミマセン一部訂正…
スミマセン、元のご相談の >短水路と答えたときは2秒足した値が出て、 >長水路と答えたときは-と表記される >ものがいいです。 という部分を見落としていました。 自分からは >D2の「長水路換算値」は >=IF(C2="短水路",A2+TIME(0,0,2),"-") … >最後の"-"は「A2」としてもいいです。 と提案してしまいましたが、この式の"-"をA2に変更すると当然ながら、長水路の場合にはA2の生データがD2セルにそのまま書き写されてしまいます。 ☆ ☆ ☆ ちなみに、D2に"-"を出すようにした場合は、また別のセルに =IF(ISNUMBER(D2),D2,A2) のように書けば、それを使って平均などを色々と計算できます。 ご参考までに。
気になった点&細かいテクニック(3/3)
これで最後。 ●最初の式だと、C列の中身が正確に"短水路"の3文字になっている場合のみ2秒加算されます。つまり、「短水路」「長水路」以外の誤ったデータが入っている場合は、その文面に関わらず長水路として扱われてしまいます。 その手の入力ミスを防ぐ対策としては、1つ前の投稿の最後に書いた式のように「C2="短水路"」と「C2="長水路"」の両方の判定をしてもいですし、表の外側のどこかにこんな感じの検算式: =IF(AND(C2<>"短水路",C2<>"長水路",C2<>""),"[水路長?]","") を仕込んでおくという方法もあります。 他にも入力ミスのチェック方法は色々とありますので、もし機会があれば調べてみてください。 ☆ ☆ ☆ ではでは、長くなりましたのでこのあたりで。
気になった点&細かいテクニック(2/3)
続きです。 ②既に「xx:xx:xx」の形になっているデータは、こんな感じで正しいデータに変換できます。 X1 1:13:02 ←「1時間13分2秒」の意味になっている Y1 =TIME(0,HOUR(X1),MINUTE(X1))+SECOND(X1)/24/60/60/100 ☆☆☆ ③あとは細かい話をいくつか。ここから先はパスしていただいても大丈夫です。 ●同じ表の中に100m以外のタイムも混在している場合、B列を「100m」ではなく単に「100」としておくと、B列でソート(並べ替え)した時に正しく「25→50→100→200→400→…」となってくれます。 さらには、B列の数値を使ってこんな計算もできます: E1 "速度(m/s)" E2 =B2/(A2*60*60*24) ←あとで表示形式を変更してください 長水路換算値もたとえばこんな感じに: D2 =IF(C2="短水路",A2+TIME(0,0,B2/50),IF(C2="長水路",A2,"?")) …また文字数。次で最後。
気になった点&細かいテクニック(1/3)
実際に試してみて、気になった点などを。 ①例題の「1:13:02」は「1分32秒02」の意味でしょうか? その場合たとえば、「0分48秒90」の意味で「0:48:90」と入れると「0:49:30」に化けてしまいませんか?「0:48:90」は本来、「48秒90」でなく「48分90秒」の意味なんです。 なのでまず、今後のデータはこんな感じで: A1 "記録" B1 "距離" C1 "長水路or短水路" D1 "長水路換算値" A2 (タイム入力欄) B2 "100m" C2 "短水路" A2セルを選択して、メニューから「表示形式→数字→カスタム数値形式」。ウィンドウ上部の入力欄に「h:mm:ss.00」と入れて「適用」。そのあとA2に「0:1:13.02」と入力します。(最初の「0:」を忘れずに!) 「時」の情報が無駄に表示されて悔しいのですが、スミマセン、自分にはここまでしかわかりません。 D2の「長水路換算値」は =IF(C2="短水路",A2+TIME(0,0,2),"-") です('2'の位置は3番目)。 最後の"-"は「A2」としてもいいです。 文字数。続く。
多分これでOK!
それぞれのセルに次のように入力した場合… A1 記録 B1 距離 C1 長水路or短水路 D1 長水路換算値 A2 1:13:02 B2 100m C2 短水路 D2 =IF(C2="短水路",A2+TIME(0,2,0), "-") D2に用いた数式では、C2セルが「短水路」の場合、記録の値であるA2に2秒を足した値が表示されます。それ以外の場合、「-」が表示されます。 2行目以降にもタイムを記録したい場合は、関数をオートフィルしてください。 オートフィルの方法が分からない場合は、Googleで調べてみてください!