advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 13158 for 日付 (0.003 sec.)
[[20130325172522]]
#score: 2423
@digest: 26a10c8202169b18eb429cac85a2c673
@id: 61882
@mdate: 2013-03-26T08:29:48Z
@size: 8358
@type: text/plain
#keywords: 終退 (35279), 退出 (16094), 付時 (14321), 出時 (10873), 時刻 (5233), 日付 (3570), 一引 (3298), 2013 (3057), 解説 (2459), 昇順 (1815), 扱わ (1786), 大値 (1681), 整数 (1653), と時 (1645), 算結 (1545), 日時 (1525), 最大 (1429), 時間 (1396), small (1357), 配列 (1313), 第一 (1307), 付と (1254), gobgob (1239), て扱 (1207), 区切 (1184), 最終 (1071), 見出 (1015), 間は (1013), ピボ (961), り位 (864), 列数 (813), た! (778)
『最終退出時間を取り出したい』(いとう)
よろしくお願いします。 ある部屋に入退出にカードが必要で、そのカードの記録があります。 ID 日時 100001 2013/3/1 10:54 100002 2013/3/1 12:12 100003 2013/3/1 13:28 100004 2013/3/1 14:35 100005 2013/3/1 17:46 100006 2013/3/1 17:56 100007 2013/3/4 8:57 100004 2013/3/4 11:35 100002 2013/3/4 17:01 こんな感じで1か月分あります。 記録の数は日付によって違います。 この中から、各日付で一番最後の時間を出したいです。 別のシートに 2013/3/1の最終退出時間は17:56 2013/3/4の最終退出時間は17:01 とわかるようにしたいです。 計算式ででるでしょうか? よろしくお願いします。 Windows 7 の Excel2010 です。 ---- Sheet1のB列に日時、C列に退出時刻、1行目は見出しとして 別シートののA1へ3/1、A2へ3/4と入力されている場合 別シートのB1セルへ =IF(A1,MAX(INDEX((Sheet1!B$2:B$100=A1)*(Sheet1!C$2:C$100),)),"") 下へコピー、かな? (Jera) ---- Jeraさん、さっそくありがとうございます。 そしてごめんなさい。 日付と時間は同じセルなんです。 書式設定が「yyyy/m/d h:mm」になっていて、実際は秒まで入っています。 これ、別のセルに日付と時間を取り出したほうがいいでしょうか? あ、でもこれ、見かけだけだから、区切り位置でわけられないですよね? ちょっと調べてきます。 (いとう) ---- 区切り位置で分けられました!びっくりしました!区切り位置すごい。 そしてJeraさんの数式で計算されました!ありがとうございます。 どうして掛け算で出るのかが謎なのですが、これを手掛かりに調べます。 (あと、IFの条件文のところがA1だけでOKなのもなぜ!) 本当にありがとうございました。 (いとう) ---- D列に D1:{=SMALL(IF(INT($B$1:$B$200)<>INT($B$2:$B$201),$B$1:$B$200,""),ROW(A1))} 配列数式なので Ctrl+Shift+Enterで確定 書式 「yyyy/m/d"の退出時間は" h:mm」 下へコピー (NB) ---- NBさん、ありがとうございます。 なんだか不思議です。 範囲が1セルずれてないとダメなんですね。 最大の整数と範囲のずれた最大の整数がイコールじゃないところの数値で一番小さいもの? なぜそれで結果が出るのかがすごく不思議です。 明日からExcelの本をにらめっこです。 とにもかくにも、yyyy/m/d h:mmの状態で計算できました! ありがとうございます。 しかも書式もご指導いただいて。 こんな書式もできるんですね!&でくっつけてましたよ。 ありがとうございました。 (いとう) ---- なるほど…私がやると、結局こんな風になっちゃいましたorz 入力セルはさっきと同じです。 =IF(A1,MAX(INDEX((TIME(HOUR(Sheet1!B$2:B$100),MINUTE(Sheet1!B$2:B$100),SECOND(Sheet1!B$2:B$100)))*(INT(Sheet1!B$2:B$100)=A1),)),"") けどまぁ、時間表示を分けれるなら分けた方がいいですね。 >どうして掛け算で出るのかが謎なのですが 分けた表で、簡単な例で簡単に説明します。 A B C D E F 1 見出1 見出2 見出3 2 3/1 2 3/1 * 3 3/1 8 3/2 * 4 3/4 9 5 3/4 1 6 3/4 10 こんな表がある時にF2セルへ =(B$2:B$6=E2)*(C$2:C$6)として下へコピーして下さい。 F2セルの計算結果について説明します。 前半の(B$2:B$6=E2)の計算結果として {TRUE;TRUE;FALSE;FALSE;FALSE} という配列が返ります。 後半の(C$2:C$6)の計算結果として {2;8;9;1;10} という配列が返ります。 四則演算を行うとTRUE=1、FALSE=0として扱われるので、二つの配列を掛け合わせる事で {2;8;0;0;0} となります。 これにMAX関数を合わせる事で、[E列で指定した日付]且つ[その中の時間の最大値]を求めています。 IF関数については、第一引数が「0以外の数値」の場合は、TRUEとして扱われます。 この場合は1じゃなくてもTRUEとして扱われるわけですが、内部事情はよく知りません。 (Jera) ---- 少し解説します。配列数式なので、途中の計算結果は、"データの連なり"となります。 " 2013/3/1 10:54"は書式を「標準」とすると"41334.45416"となり、数値のデータです。 また日付までが整数で、小数点以下が時刻を表します。 なので=INT(B1)="2013/3/1"で日付のみになります。 ある日付での最終時刻はある日付時刻の「日付」と次の日付時刻の「日付」が異なっている場合のその日付時刻になります。 IF式では、条件に合っている場合はその日付時刻を返し、合わない場合は""となります。 数値データはその条件に合致した(求める)日付時刻の連なりが得られます。この日付時刻を小さい順に求めていきます。 作業列として C1:=IF(INT(B1)<>INT(B2),B1,"") 下へコピー で C列に求める 日付時効が得られます。 配列数式は同じことを作業列なしで計算します。 (NB) ---- すごい解説に朝から挙動不審となって、先輩に心配されたいとうです。おはようございます。 お二方、ありがとうございます! 実はあの後、Excelの本を読みながら帰ったんですが、さっぱり解らなかったんです… 今日はネットで検索だなーと思っていたら。素晴らしい解説が。 夜遅くまですみません。ありがとうございます。 Jeraさん、yyyy/m/d h:mmの状態での式をありがとうございます! 一度時間のほうを分解しちゃうんですね。こうすればよかったんですね! そして掛け算の解説もありがとうございます。 わかりやすかったです! 配列は高校時に習ったはずですが、解説を見てやっと思い出しました。 当時はこんな役に立たないもの・・・って思っていたんですよね。実は便利だったんだなあ。 あと、 >IF関数については、第一引数が「0以外の数値」の場合は、TRUEとして扱われます そうだったんですか! つまりあの =IF(A1, は =IF(A1<>0, ということに! これは便利ですね。 丁寧な解説、ありがとうございました! NBさん >また日付までが整数で、小数点以下が時刻を表します。 これも知りませんでした! 日付と時間が数値だってことは知ってたんですが・・・ なるほど、それでINTをつかうのですね。 >ある日付での最終時刻はある日付時刻の「日付」と次の日付時刻の「日付」が異なっている場合のその日付時刻になります。 いわれて初めて気が付きました。すごい思い付きです! それで各日付が1つずつが残るからSMALLで取り出すのですね。やっと解りました。 すごいスッキリ感です。 作業列での方法もありがとうございました! これをまとめる(?)と配列になるのですね。 考え方はよくわかりました。が、多分自分ではこのずらせばいい、ということを思いつかないと思います。 しっかりメモして応用もできるよう頑張ります。 詳しい解説、ありがとうございました! (いとう) ---- 日付+時間が昇順でならんでるなら E2に日付 F2 =SMALL(B:B,COUNTIF(B:B,"<"&E2+1)) (GobGob) ---- あぁ、日付も全て自動なんですな。 オイラの回答無視してくださいw。 (GobGob) ---- 気が付くのが遅れまして失礼しました。 GobGobさん、ありがとうございます! >あぁ、日付も全て自動なんですな。 いえ、日付は最初、自分で入力してました。 例でいうならE2に3/1って入れて、F2に時間出して、G2に「2013/3/1の最終退出時間は17:56」って出してたんです。 ですので、GobGobさんのでも出ました! E2が3/1として+1で3/2よりもちいさいものの数を数えて、その数番目の物を出すと。 日付のうちで一番大きいものを出そう、という発想ではなくて、小さいほうから何番目か、ですね。 びっくりいたしました。 あれ、でもこれ、昇順でなきゃだめなんですか? 今回のデータは昇順ですけど、COUNTIFもSMALLも昇順じゃなくてもでますよね? しかし皆さんの発想が素晴らしいです。 とても思いつかないです。 しっかりとノートをとって、ぜひ今後も役立てたいです。 ありがとうございました。 (いとう) ---- そのB列(?)の「日時」は手入力? それともどっかから取り込んだもの? 手入力なら日付と時刻は列を分けて入力する。 外部から取り込んだものなら区切り位置で日付と時刻を分ける。 日付と時刻が分かれていればピボットテーブルでやるのが簡単です。 集計方法を「最大値」にするだけ。 最大値 / 時刻 日付 集計 2013/3/1 17:56 2013/3/4 17:01 日付も含めて入力作業は一切必要なし。 マウス操作だけで一発です。 (よみびとしらず) ---- >日付+時間が昇順でならんでるなら 二分探索での回答を考えてたときの名残りで、消し忘れw。 無視してくださいな。 (GobGob) ---- E列日付入力案で。 オイラの回答、一応、不十分なんで。 F2 =IF(D2="","",TEXT(IF(INT(SMALL(B:B,COUNTIF(B:B,"<"&D2+1)))=D2,SMALL(B:B,COUNTIF(B:B,"<"&D2+1)),""),"yyyy/m/dの最終退出時間はh:mm")) (GobGob) ---- またもや気が付くのが遅くてすみませんでした。 よみびとしらずさん データは「どっかから取り込んだもの」です。 ので、区切り位置でわけてピボット試してみました! 集計方法で「最大値」というのがあるんですね…知りませんでした。 というか、ピボットはマトリクス表をつくる機能だとばかり。 こんなこともできるんですね。勉強になりました! これは覚えておかねば。 ありがとうございます! GobGobさん >消し忘れw。 了解ですw >不十分なんで。 ええ?どこが?って思ったら日付がない場合に対応されてるんですね! しかも書式設定が不要になってる! すごすぎです、ありがとうございます。 皆さんすごすぎです。どの方法も光ってます。わくわくします。 本当にありがとうございました! (いとう) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201303/20130325172522.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97004 documents and 608067 words.

訪問者:カウンタValid HTML 4.01 Transitional