[[20110708171306]] 『検索結果表示について』(マツ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『検索結果表示について』(マツ)

 高速料金リストを利用して、検索結果を1クリックで表示させたいのですが、
 マクロが苦手で、アドバイスをいただきたく何卒よろしくお願いします。

 まずは、下記のとおり、ピボットテーブルにて集計した高速料金リストがあります。
 【リスト】

 	【A】	              【B】	     【C】	       【D】
1	高速入口			
2	高速出口			
3				
4	合計 / 点検時料金(平日)			
5	■事業所No	         ■高速入口	■高速出口	■高速料金税抜(休日)
6	      1000	          八草	        猿投              285
7			                        加納              285
8			            枝下	          380
9			           西広瀬	          380
10			            力石	          380
11		           本郷	      阿久比	        1,333
12			            伊勢	        2,571
13			           一宮東	          667
14			            蟹江	          523
15			            亀山	        1,380
16			            久居	        1,714
17			            玉城	        2,380

 【B1】に高速入口名、【B2】に出口名をINPUTし、【D2】セルに金額表示をさせたいのです。
 ボタンの表示をさせマクロの登録をしたいと思うのですが、可能でしょうか?

 (まつ)

 D2セルへ
 =SUMPRODUCT((IF(B6:B17="",C5:C16,B6:B17)=B1)*(D6:D17=B2)*(E6:E17))
 とし、Ctrl + Shift + Enterで式を確定すれば金額表示されると思いますが、マクロのほうが良いですか?

 (Jera)

 Jeraさん

 コメントありがとうございます。
 早速関数を貼り付けてみましたが、#VALUEとなってしまいました・・・。
 関数についても解読できず、詳しく教えてください。

 (まつ)

 ああああ、ごめんなさい間違えて組んでしまいました。
 大変申し訳ありませんが本日は考え直す時間がありませんので、他の回答者の返答をお待ち下さい。

 (Jera)

 表の見方を教えて。
本郷から入って、加納で出るといくらなのかな?
八草から入って亀山まで行くと?

 ぶらっと立ち寄り

          猿投 加納 枝下 西広瀬 力石 本郷  伊勢 一宮東 蟹江 亀山 久居  玉城
 猿投										 
 加納										  
 枝下										 
 西広瀬
 力石
 本郷
 伊勢
 一宮東
 蟹江
 亀山
 久居
 玉城
 リストをこのような形にできませんか。鉄道の運賃表など普通に使われています。(NB)

 載せて居られる表の感じだと、
 「■高速料金税抜(休日)」
 の列が行のフィールドに有る様に思います。

 これをデータアイテムに来る様にすれば
 GETPIVOTDATA関数が使えるように成りますが
 変更は出来ないのでしょうか?

   例えば、
    行のフィールドに「■事業所No」「■高速入口」「■高速出口」
    データアイテムに「■高速料金税抜(休日)」
   を入れます。
    ピボットテーブルは、A4セルから配置

   D2セルをアクティブにして「=」を入力後
   D6セル(事業所No 1000 高速入口 八草 高速出口 猿投 の合計セル)をクリックすると
  =GETPIVOTDATA("■高速料金税抜(休日)",$A$4,"■事業所No",1000,"■高速入口","八草","■高速出口","猿投")
   の式が出来るので、一旦 Enter で確定。

   数式内の、「八草」「猿投」部分をB1,B2セルをそれぞれ参照する様に変更すると
  =GETPIVOTDATA("■高速料金税抜(休日)",$A$4,"■事業所No",1000,"■高速入口",B1,"■高速出口",B2)
   B1,B2セルのデータに連動して、D2セルの値が参照される様に成ります。

 また、ピボットテーブルの元のデータはどの様に成っていて
 データ量はどの程度有るのでしょう?

 場合によっては、そちらから探す方が簡単かもしれません。

 (HANA)

 (HANA)さん
 コメントありがとうございます。
 早速やってみました。
 結果は…#REF!となってしまいました。
 HANAさんが書き込んで下さったとおりに操作をしたら
 >数式内の、「八草」「猿投」部分をB1,B2セルをそれぞれ参照する様に変更すると
 エラーとなってしまうのです。
 B1、B2に変更する前は確かに金額が出ていました。

 また、元のデータは下記のとおりです。

 	A	B	C	D	E	F	G	H	I	J	K
1	■事業所No	事業所名	交通料区分	パターンNo	■高速入口	■高速出口	高速料金税抜(平日)	■高速料金税抜(休日)	■点検50km以上	点検時料金(平日)	■点検時料金(休日)
2	1000    本社	20	1	八草	猿投	285	285	          0	0
3	1000	本社	20	2	八草	加納	285	285	          0	0
4	1000	本社	20	3	八草	西広瀬	380	380	          0	0
5	1000	本社	20	4	八草	枝下	380	380	          0	0
6	1000	本社	20	5	本郷	勝川	333	333	          0	0
7	1000	本社	20	6	本郷	清州東	333	333	          0	0
8	1000	本社	20	7	本郷	大治南	333	333	          0	0
9	1000	本社	20	8	本郷	楠	333	333	          0	0
10	1000	本社	20	9	名古屋	三好	285	285	          0	0
11	1000	本社	20	10	名古屋	春日井	285	285	          0	0
12	1000	本社	20	11	名古屋	勝川	333	333	          0	0
13	1000	本社	20	12	名古屋	豊田	380	380	         	0	0
14	1000	本社	20	13	八草	力石	380	380	          0	0
15	1000	本社	20	14	本郷	小牧南	667	667	          0	0
16	1000	本社	20	15	本郷	山田東	333	333	          0	0
17	1000	本社	30	1	本郷	阿久比	1333	1333	          0	0
18	1000	本社	30	2	本郷	蟹江	523	523	          0	0
19	1000	本社	30	3	本郷	山田東	333	333	          0	0

 文字と数字がうまく表示させられませんがA1=事業場NO B1=事業場名 C1=交通料区分と続いていきます。
 データ量については全部で308行あります。

 こちらのほうが速いのでしょうか?

 (マツ)

 >結果は…#REF!となってしまいました。
 B1,B2に入力した物と 元データの文字が一致していないのでは?
  元データの方は、後ろにスペースが入っている 等

 確実に一緒に成る様に、元データのセルをコピーして貼り付けてみるとどうでしょう?

 >データ量については全部で308行あります。
 データ量が固定と言う事は、「重複は無い」と思えば良いですか?

 ちなみに、エクセルのバージョンは何でしょう?

 (HANA)

 (HANA)さん

 もう一度やってみました・・・。
 ご指摘どおり、元データの文字が一致していないのかと思い、元データのスペースを
 編集(E)-置換(E)ですべてのスペースをなくして、ピボットテーブルのデータを更新してみましたが、
 やはり#REFとなってしまいました。
 また、元データのセルをコピーして貼り付けもしてみましたが、同じ結果です。
 B1、B2に変更する前は確かに金額が出ているわけですから、あと少し!!って感じです(汗)
 何か他に考えられる不具合はありませんか??

 >データ量が固定と言う事は、「重複は無い」と思えば良いですか?
 そうですね。
 高速の入り口・出口の名前は一緒でも、交通量区分が違っていますので、重複はないです。

 >ちなみに、エクセルのバージョンは何でしょう?
 EXCEL2003です・・・。

 関数がうまくいくといいのですが・・・。私が想像していたとおりの処理方法です。

 もう少しお付き合いください。よろしくお願いします。

 (マツ)

 >何か他に考えられる不具合はありませんか??
 う〜ん、分かりませんので。。。
 簡単なサンプルデータを作って、それを使って同じ事をし
 それでは上手く行く事を確認してみて下さい。

 その後、データを現在の物に近づけて行きながら試した時
 どの時点で#REF!エラーが出るのか、探ってみて下さい。

 >関数がうまくいくといいのですが・・・。私が想像していたとおりの処理方法です。
 この検索をする為だけにピボットテーブルを作製されるのですか?
 でしたら、使わなくて済めば 手間が減りますね。

 >高速の入り口・出口の名前は一緒でも、交通量区分が違っていますので、重複はないです。
 と言う事は、マッチングするためには
  事業所区分・交通量区分・入口・出口
 の4つの項目の確認が必要ですか?

 ご使用のエクセルが2003と言う事なので、SUMPRODUCT関数を使ってみて下さい。
http://www.excel.studio-kazu.jp/lib/e3h/e3h.html
 ↑ライブラリの「SUMIFとSUMPRODUCT」です。

 基本的には
 =SUMPRODUCT((事業所区分の範囲=事業所区分)*(交通量区分の範囲=交通量区分)*(入口の範囲=入口)*(出口の範囲=出口),金額の範囲)
 と言う形に成ります。

 ○○の範囲 の方は 元データの対応する範囲
 =の後は 条件を入力したセル番地にして下さい。

 例えば、(入口の範囲=入口) の部分は (元データ!E1:E308=B1) と言った感じになって
 これらの条件を「*」で繋げて、最後に「,」の後に金額の範囲 です。
 括弧の数に注意して式を作ってみて下さい。
 念のため、条件を書くセルには元データからセルをコピーして下さい。
 上手く行くと良いですが。

 (HANA) 

 (HANA)さん

 HANAさんはうまくいくのでしょうか?
 一度サンプルを作ってトライしてみます。

 また、マクロという方法は使えませんか?
 それほどのデータでもないと承知はしていますが・・・。

 (マツ)

 元のリストでオートフィルタしたほうが早いのでは・・・?
(みやほりん)(-_∂)b

 (みやほりん)さん

 アドバイスありがとうございます。
 オートフィルタでは駄目な理由があるので、なんとか関数及びマクロで結果を求めたいのです。

 コメントありがとうございました。

 (マツ)

 (HANA)さん

 できました!!
 凡ミスです・・・B1とB2に変更した箇所で、ダブルクォーテーションを削除し忘れていました。
 正常に結果が求められました。
 大変助かりました。
 ありがとうございます。

 (マツ)

 	【A】	              【B】	     【C】	       【D】
1	高速入口			
2	高速出口			
3				
4	合計 / 点検時料金(平日)			
5	■事業所No	         ■高速入口	■高速出口	■高速料金税抜(休日)
6	      1000	          八草	        猿投              285
7			                        加納              285
8			            枝下	          380
9			           西広瀬	          380
10			            力石	          380
11		           本郷	      阿久比	        1,333
12			            伊勢	        2,571
13			           一宮東	          667
14			            蟹江	          523
15       1000                               合計             ******
16	   2000               久居	        1,714
17			            玉城	        2,380

 となった場合、
 =GETPIVOTDATA("■高速料金税抜(休日)",$A$4,"■事業所No",1000,"■高速入口",B1,"■高速出口",B2)
 だと■事業所Noが2000以降、つまり1000以外の検索をかけるとエラーになってしまいます。
 15行目のように合計が出るようなピボットでは上記の関数は利用できないのでしょうか?

 (マツ)

 >ダブルクォーテーションを削除し忘れていました。
 修正するときは、関数ダイアログを出して修正した方が
 簡単だった(間違いに気づきやすかった)かもしれないですね。。。

 =GETPIVOTDATA(・・・・・)
 の式が出来たら、数式バーの左にある[Fx]を押すと ダイアログが出てきます。
 設定毎に入力する場所が有るのでどの""がどこに対応するのか
 判断が簡単に成ったのかもしれません。

 >1000以外の検索をかけるとエラーになってしまいます。
 それは
 =GETPIVOTDATA("■高速料金税抜(休日)",$A$4,"■事業所No",1000,"■高速入口",B1,"■高速出口",B2)
 事業所Noが1000の中から探しているからでは。。。? __/~~~~

 (HANA)


 (HANA)さん

 早速の回答ありがとうございます。
 >正するときは、関数ダイアログを出して修正した方が
 >簡単だった(間違いに気づきやすかった)かもしれないですね。。。
 そうだったかもしれません・・・。
 今後気をつけたいと思います。

 >=GETPIVOTDATA("■高速料金税抜(休日)",$A$4,"■事業所No",1000,"■高速入口",B1,"■高速出口",B2)
 >事業所Noが1000の中から探しているからでは。。。?
 そうゆうことですか。
 1000以外すべての事業所NOについても検索できるよう変更するにはどうすればよいのでしょうか?

 (マツ)

 事業所Noを指定しなくても、データは重複しませんか?
 重複が無いなら、その部分を消してみてはどうでしょう?

 =GETPIVOTDATA("■高速料金税抜(休日)",$A$4,"■高速入口",B1,"■高速出口",B2)
                                          ↑要らない条件は まるっと消してみる。

 (HANA)


 事業所NOを指定しないと、データは重複してしまいます。
 ので、現状の条件で検索できるようになると助かるのですが・・・。

 (マツ)

 どちらが表示されれば良いのですか?
 両方?
 それとも、両方は同じなのでどちらかが出れば良い?

 (HANA)

 (HANA)さん

 重複しているものについてはどちらか1方が表示されれば問題ないです。
 現状ですと、重複していないものについても、事業所NOが違うものは
 エラーとなってしまいますので、それを改善したいと思っています。

 よろしくお願いいたします。

 (マツ)

 重複が有った場合、どちらでも良いのなら
 事業所NOを行のフィールドに入れないピボットテーブル
  (金額を表示する為だけに使うピボットテーブル)を
 一つ作製されてはどうでしょう?

 その場合、「合計」にすると全部が合計されてしまうので
 「最小値」とか「最大値」とか「平均」とかに変更。

 (HANA)


 (HANA)さん

 コメントありがとうございました。
 ご指摘どおり、事業所区分等のくくりをはずし、単に入口出口名の表示と、
 金額欄は平均値にし実行しました。
 長い時間お付き合いくださいましてありがとうございました。

 (マツ)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.