pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


「Yahoo路線情報」のクエリーパラメータを解析してみる

1年ほど前にこんな記事を書きました。

pslabo.hatenablog.com

このときは交通費精算用のシートに入力したFromとToから料金検索できればよいなあ、という程度で関数を使ってみましたが、検索結果をもうちょっとうまくコントロールしたくなりました。

そこでYahoo路線情報のクエリーパラメータを調べてみたのでメモとしてまとめておきます。
なお、これらは2016/08/07時点でのメモです。

出発地点、到着地点、経由地

from= 出発地点
to= 到着地点
via= 経由地

経由地は3つまで記述可能。

料金種別(現金/ICカード

ticket=ic ICカード料金優先
ticket=normal 現金優先

未指定の場合はICカード料金優先で検索が行われます。

日時指定

y=2016&m=08&d=07 日付
hh=17&m1=2&m2=4 時刻
type=1 出発時刻
type=4 到着時刻
type=3 始発
type=2 終電
type=5 指定なし

交通機関指定

al=1 空路
shin=1 新幹線
ex=1 有料特急
hb=1 高速バス
lb=1 路線バス
sr=1 フェリー

表示順序

s=0 到着時間優先
s=1 料金優先
s=2 乗換回数優先

自由席、指定席、グリーン車

expkind=1 自由席
expkind=2 指定席
expkind=2 グリーン車

歩く速度

ws=1 歩く速度:急いで
ws=2 標準
ws=3 少しゆっくり
ws=4 ゆっくり

運賃検索用の関数記述を作りなおす。

パラメータの種類と意味が分かったので、運賃検索用のリンクを作る関数を改めて作ってみます。

今回の作り変えの目的は以下の要件を満たすためです。

  • 乗車日を指定して検索したい(以前に作成した方法だと、たとえば4月1日に3月分の精算をしようとした場合に、もしも4月1日から料金が改定されていると改定後の料金が表示されるので都合が悪い。)
  • 新幹線は指定席優先で検索したい(ビジネス目的の場合に自由席で乗ることはありえないだろうから、指定席優先の料金を確認したい。ただし通常は精算時に領収書が必要なので、Yahooの検索で指定席有線で検索すること自体は必須ではない。)
  • 料金種別をICカード優先で検索したい(本来は特に意識しなくともICカード優先の検索となるけれど、念のためにこれを明示しておきたい。)
  • 使用する交通機関は予め指定しておきたい。(空路、新幹線等の路線を使う指定で検索を確実に行いたい。)

さて、今回使用するシートはデータを以下のセルに格納します。

A8 乗車日
C8 乗車地点
D8 下車地点
K8 運賃記入欄


そうすると上記の要件を満たす式は以下のようになります。この式はL8あたりに入れておきます。

=IF(AND(A8<>"",C8<>"",D8<>"",K8=""),HYPERLINK("http://transit.yahoo.co.jp/search/result?flatlon=&ticket=ic&s=0&expkind=2&al=1&shin=1&ex=1&hb=1&lb=1&sr=1&" & TEXT(A8, """y""=yyyy&""m""=mm&""d""=dd") & "&from=" & ENCODEURL(C8) & "&to=" & ENCODEURL(D8),"運賃検索"),"")

この式では、乗車日、乗車地点、下車地点が記入されていて、運賃が未記入の場合に限って検索用のリンクを表示します。運賃を入力したら検索リンクは表示されません。