![]() |
Excel: 怎麼做 [班車查詢功能] ? :D 動動腦時間 Part II :D 大家好 !! 洞洞惱時間又來ㄌ~~ (這個板真ㄉ蠻冷ㄉ~~~ 這樣怎麼行ㄋ :D ) (連板主也懶的派ㄌ 一個被冷落ㄉ地方 >< ) 這次ㄉ問題是:如何作〔[b]班車查詢功能[/b]〕?? 班車查詢 !? 做個班車時刻表來查不就好ㄌ~~ 呵~ 如果是這樣 那出這個題目幹嘛 ? 給個範例先:[list][*]已知首班車是 6:30 am 開出, 然後每隔 40 分鐘發一次車, 現在想知道, 下午 5 時左右有沒有車 :confused: :confused:[/list]又是看起來粉簡單ㄉ題目~ (^.^) 裡面包含ㄌ三個時間 看能不能.. 輸入相關的數字就能得到 [有] 或 [沒有] 答案.. GO !!! ~~唉 三更半瞑睏未去...... |
這個不是用Access作比較好嗎? |
:) 你好~ 可是題目就是怎樣用 Excel 做呀 提供不用方向的思考嘛 ^.^ :confused: 不過.. 你可以說說 Access 怎麼做ㄇ :confused: 我也很想知道ㄋ 不好意絲我係 Access 肉腳啦 ^ ^||| |
[QUOTE]原始作者是 : [i] Leon Chou [/i] [B]:) 你好~ 可是題目就是怎樣用 Excel 做呀 提供不用方向的思考嘛 ^.^ :confused: 不過.. 你可以說說 Access 怎麼做ㄇ :confused: 我也很想知道ㄋ 不好意絲我係 Access 肉腳啦 ^ ^||| [/B][/QUOTE] 嘻嘻嘻嘻,ACCESS、VB..這些都可以很輕鬆的做出來,畢竟這是資料庫的基本功能,把班車時間建立到資料庫,然後把使用者KEYIN的班車時間或某一時間範圍抓到變數中,在去做比對,結果就出來了... 我是說真的喔,因為這種查詢,以前是我的作業之一......類似台鐵那種......:)不過我現在要寫的話,要去看一看才能回想起來。 言歸正傳,要用EXECL做吧,好,一句話......讓我死了吧......:) 不是不是啦,我是說:拜託給我一天吧,因為我今天才看到題目.... |
真的只能用三個數字,就要得到yes或no嗎? 可不可以先在欄位建立一些基本資料呢? 我是想成一個數字,例如7,然後累加一個數字,例如11,然後由使用者輸入一個數字,例如520,然後看看520再不在這個整數序列之中,但是......嗚嗚嗚嗚,沒有迴圈真痛苦......:) 嗯嗯,讓我在想想....... |
[img]http://pczone.com.tw/vb/images/icons/icon14.gif[/img] 才兄 (sorry,這樣稱呼比較習慣^^),您真是太用功了~~ 先說一下,請不要侷限在工作表上思考 畢竟 Excel 的應用很多樣化 解決方案也不是只有工作表函數和內建功能而已 小弟只是想藉由這題目 來帶出 Excel 的另一種應用方式... Good Luck ~~ P.S. [u]Access[/u] 真的可以三個數字給答案嗎 ?? 在不建立資料表的狀況下... i really want to know~ :D |
[QUOTE]原始作者是 : [i] Leon Chou [/i] [B][img]http://pczone.com.tw/vb/images/icons/icon14.gif[/img] 才兄 (sorry,這樣稱呼比較習慣^^),您真是太用功了~~ 先說一下,請不要侷限在工作表上思考 畢竟 Excel 的應用很多樣化 解決方案也不是只有工作表函數和內建功能而已 小弟只是想藉由這題目 來帶出 Excel 的另一種應用方式... Good Luck ~~ P.S. [u]Access[/u] 真的可以三個數字給答案嗎 ?? 在不建立資料表的狀況下... i really want to know~ :D [/B][/QUOTE] 是喔,害我跑去書局把架上的EXCEL有關函數的書通通拿來看,還異想天開的找財務函數,看看有沒有可以應用的......原來不可侷限在工作表上面思考........*_* 我原本心中有幾個想法,仔細評量,大致決定往下列方向思考: 1.找出等差級數的函數。 2.啟始值就是頭班車的時間,公差就是班車間隔, 3.找出有"逼近"某一個數的函數 4.然後找一個最接近而不大於"使用者輸入的時間"的數。 5.如果這兩個"時間"一樣,BINGO!如果不一樣,既是NO。 不過,遇到好多困難喔, 第一:在"填滿"的數列中,這個就有等差級數,但我找不到相對應的函數......:) 第二:我找不到有"找到最接近而不大於某數"這個功能的函數......:) 喂喂,各位同學,發揮一下同學愛嘛,有小抄記得要傳到後面來啦,順便公布一下你們的想法,不然我又要摃龜囉......:) |
>Access 真的可以三個數字給答案嗎 ?? 在不建立資料表的狀況... 嗯嗯,應該三個值就可以了,頭班車時間、發車間隔、使用者輸入的時間,不過要寫回圈,這就好幾行了,原則上和我上面的想法一樣: 1.讀入頭班車時間(start_time)、發車間隔(interval_time)、使用者輸入的時間(user_time) 2.do 3.if start_time + interval_time > user_time then exit do 4.strar_time = start_time + interval_time 5.loop 6.if start_time = user_time then 7.print "yes" 8.else 9.print "no" 10.endif 不過,在ACCESS使用這個,這樣算不算犯規阿......好像太奸詐了說......:) |
VLOOKUP應該可以吧! 如果RANGE_LOOKUP不設FALSE就可以找到最接近的值....... 如果有設FALSE的話就必須找到完全符合的值 |
哈哈哈哈,解出來了............:):):) 在只有班車發車時間、發車間隔、要查詢的時間這三個條件下,假設 發車時間是06:20 發車間隔是每格40分鐘發一般車 使用者要查詢的時間是10:20及13:20 1.將發車時間、使用者時間都設公示轉換分鐘,例如06:20就是380,10:20就是620,13:20就是800 2.將查詢時間減去發車時間,在除以發車間隔 3.使用MOD函數,如果剛好整除=0,就表示恰好有班車,YA!,如果不等於0,那就表示沒有班車,OH!NO! 4.核心公式: IF( MOD((查詢時間-發車時間),發車間隔)=0 , "YA!" , "OH!NO!" ) |
[QUOTE]原始作者是 : [i] MS [/i] [B]VLOOKUP應該可以吧! 如果RANGE_LOOKUP不設FALSE就可以找到最接近的值....... 如果有設FALSE的話就必須找到完全符合的值 [/B][/QUOTE] 在有建立"班車時間"的前提下,的確這樣子可以,但是題目說不可已有班車時間表喔,這就是困難的所在........:) |
在我想出來的時候,還蠻緊張的,趕緊上網來大喊"『刀!下!留!人!』",生怕答案已經公布了,幸好還沒公布....:)不過出題老師說不要往工作表函數的方面去找,可是往其他方向去找時,腦袋真的空空的,各種下拉式功能表中的選項,各種增益集都試過了,真的還是空空的,真是美中不足,嘻嘻........ 我的專長是FORTURN語言,以前常常用到MOD這個函數說,現在竟然都沒想到,唉,歲月真是........不過我在EXECL找到了類似"最接近而不超過某數"的函數,就是MROUND,用法是: MROUND(A,B)==>EXECL會幫你找到以B的整數倍,並且最接近A的數字出來 例如:MROUND(45,7)=42 ==>因為7的整數倍有7、14、21、28、35、42、49...其中最接近45,又不超過45的就是42了。 當然,小數也可以找喔,如果有不明白的地方,請查閱HELP,若出現(!NAME#),請安裝分析工具箱,就在"工具/增益集/分析工具箱" |
呵呵 恭喜你答對了∼ 才兄 :D :D :D 什麼老師不老師的.. 別這樣嘛 大家一起交流交流啦 ^.^ 這題有兩個解法:〔工作表函數〕和〔自訂函數〕 自訂函數就如你提到的 Access 程式 只是同樣觀念應用在 Excel~ 這個解法你雖然不是正式答題 但仍算你答對啦 c c c 〔工作表函數:MOD〕 現在代才兄把這公式稍加詳細說明一下(才兄請包涵 ^^): 假設 A1、B1、C1 分別是發車時間、發車間隔、查詢時間, A1 和 C1 以時間格式 (h:mm) 輸入。 則公式如下(真有點給它長 ^ ^): =IF(MOD((HOUR(C1)*60+MINUTE(C1))-(HOUR(A1)*60+MINUTE(A1)),B1)=0,"Yes","No") HOUR 及 MINUTE 函數可把時間轉換為[小時]和[分鐘],兩個時間 換算成總分鐘數... 其餘的就照才兄所解釋的了~~ 〔自訂函數:TimeCheck〕 Function TimeCheck(start, plus, time) a = False Do While start <= 1 If Format(start, "h:mm:ss AM/PM") = Format(time, "h:mm:ss AM/PM") _ Then a = True: Exit Do start = start + plus Loop If a Then TimeCheck = "YES" Else TimeCheck = "NO" End Function 把上述自訂函數置入目前活頁簿中,使用時於任一空白儲存格輸入 =TimeCheck(Timevalue("6:30"),Timevalue("0:40"),Timevalue("17:00")) 就如同使用一般函數的方式,即可知答案。 當然參數也可以用參照位置,但要注意被參照的儲存格內容必須是【時間】格式。 以上述 A1、B1、C1 為例,B1 需改為時間格式,eg. '0:40' 。 則公式為: =TimeCheck(A1,B1,C1) 這個自訂函數內容與才兄的程式碼略有差異,但有異曲同工的結果∼ 就此題而言 自訂函數的解法當然比 MOD 函數麻煩一些,但是呢.. 就當作是〔自訂函數〕的應用,不同方式的思考吧 :D :D :D 謝謝才兄~ 謝謝大家~~ [動動腦時間] 下次見囉∼ ^ ^||| 希望有更多的朋友一起來玩喔 :) |
時間差 假設A1=05:30,A2就輸入所需的時間,方程式如下: =IF(MOD(HOUR(B2-A2)*60+MINUTE(B2-A2),40)=0,"有","沒有") |
| 所有時間均為 +8。現在的時間是 10:47 PM。 |
| XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。