人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelに関する質問です。
子どもが利用する施設があり、「施設間距離」と「学年別空き人数」を
管理する2つの表があります。黄色のセル(ドロップダウンリスト)で起点施設と
学年を選択すると水色のセルに1人以上の空きのある施設を起点施設からの距離が
近い順に自動表示させたいのですがやり方を教えて下さい。よろしくお願いします。
(実際のところ、施設数は100以上あり、施設間距離と学年別空き人数は別シート
ですがわかりやすく1つの画像にするため簡略化しています)

1396019191
●拡大する

●質問者: lovefukuyama
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● jan8
●150ポイント ベストアンサー

黄色のセル(ドロップダウンリスト)で起点施設と学年を選択すると

上記の要求には応えられませんが、やりたい事はExcelの機能だけで出来ます。
f:id:jan8:20140329022033:image
上のように「学年別空き人数」表と「施設間距離」表を横に並べて、
「施設間距離」表の「起点施設」を最優先キーとし、降順で並べ替えを行います。
f:id:jan8:20140329023542:image
並べ替えると「学年別空き人数」表が、起点施設からの距離が近い順に並んでいます。
後は、オートフィルタ機能を使って、1人以上の空きのある施設をフィルタリングすれば完了です。

以上、Excelの関数もマクロも一切使わない方法です。
マクロでの自動化をお望みなのでしょうか。


jan8さんのコメント
挿入した画像が表示されませんが、クリックするとはてなフォトで画像が表示されます

lovefukuyamaさんのコメント
回答ありがとうございます。素晴らしいです。私だけが使うならこれでいいんですが、私以外のITに詳しくない者も使うのでできればマクロでの自動化などでより簡単に利用できる方法があれば教えていただきたいです。よろしくお願いします。

2 ● foobar_777
●50ポイント

1番目の回答が良いと思います。
何故ならば、マクロで不具合が起こったときに他人が書いたマクロだと
手の打ちようが無くなる可能性が高いからです。
自分で作業して結果を出すようにした方が、トラブルに対して強いと考えます。


それはさておき、自分でマクロを書くならこんな感じです。
[]内は使う機能
ここにVBAの全文を貼るのはきついので概要だけ:
=================
1)シートから該当する施設間距離および空き人数データ読み込み
・データ数(施設数)取得 [Range().End().Row]
・(学年数取得) [Range().End().Column]

・指定された学年の空き人数データを施設数分読み込み [HLookup]
・指定された施設からの施設間距離データを施設数分読み込み [HLookup]


2)データをソートする [ActiveWorkbook.Worksheets().Sort]
・空き人数が0の施設を除外するために、該当する距離データは∞にする
-> ソートしたときに範囲外になる
・施設名、施設間距離、(空き人数)のデータの組を距離でソートする
このとき、Excelの機能を使うので一旦シートに出力してソート実行

3)ソート結果を出力する
面倒なので略
マクロではなくセル関数で作業用にソート実行した結果の上位いくつか分を参照する

=================


lovefukuyamaさんのコメント
ご回答ありがとうございます。 確かにマクロにすると利用は簡単になるかもしれませんが、メンテが難しくなる側面はありますね。 1番目の回答のやり方でいこうと思います。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ