ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:nicmoney choose関数の使い方について
困り度:
  • 困っています
はじめまして。
下記の項目をchoose関数を使ってまとめたいのですが、
お解りの方がおりましたら、教えてください。

他の数式でも出来るのかも知れませんが、chooseが一番近いのかと思い、投稿しました。
どの数式でも構わないのですが、具体的に入れる数式を教えて頂けると助かります。

シート(1)の運転手(佐藤)は1月1日に15t車に乗ってA社に配送している。
シート(2)の運転手(田中)は1月2日に15t車に乗ってE社に配送している。
シート(3)の運転手(斉藤)は1月3日に15t車に乗ってI社に配送している。
シート(4)で15車の集計を取りたいのです。
※この数式で他の集計も引用したいと思っております。

具体的には下記のように、それぞれのシート(1)〜(3)から拾い出して、シート(4)に集計できるよう、シート(4)に数式を入れたいのです。
目的としては、配車表を車種別、または運転手別などに移行できるようにしたいのです。

シート(1)(佐藤)
1/1  A社   15t
1/2  B社   4t
1/3  C社   6t

シート(2)(田中)
1/1  D社   8t
1/2  E社  15t
1/3  F社   6t

シート(3)(斉藤)
1/1  G社   8t
1/2  H社   4t
1/3  I社  15t

シート(4)(15t 集計)
1/1  A社
1/2  E社
1/3  I社
     ↑この列に数式を入れたい。


解りにくい文章で申し訳ありません。よろしくお願いします。
質問投稿日時:08/05/03 19:05
質問番号:3995128
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

良回答10pt

回答者:sakuuuuu >目的としては、配車表を車種別、または運転手別などに移行できるようにしたいのです。

車種別、運転種別の集計がとりたいのであれば
エクセルシートの項目名に氏名を足して1つのシートにまとめることをお勧めします。
(下記参照)

1つのシートにまとめることで
エクセルの強力な集計機能(並び替え、集計、フィルタリング、ピボットテーブル等)を
フル活用することができます。

エクセルの初心者だと見やすくなるように
複数のシートを使ったり、マトリックス形式で表現しようとします。
これはエクセルの作業効率を著しく下げますのでお勧めできません。
(何よりも集計機能が使えません。関数やVBAを使えば可能ですが・・・)

今回の場合

【現状】
日付、配送先会社、車種

↓↓↓↓↓↓↓

【修正後】
日付、配送先会社、車種、運転手

にして1つのシートにまとめてみましょう。

★表を作るポイントは
データを追加した場合、シート行の下に増加する表にすることです。

1つのシートにまとめた後は
集計機能を使おうがフィルタリングを使おうがピボットテーブルを使おうが
自由自在です。
やり方はいろいろあるので、個人で調べてみてください。(申し訳ないのですが・・)
「集計」「ピボットテーブル」「フィルタリング」等で検索すれば引っかかります。
ちなみに私だったらピボットテーブルを使うでしょうね。

正直、10000行ぐらい迄だったら全然大丈夫です。
下に伸びる表になるので見てくれは悪いですが操作性は向上します。

お客さんに集計結果を見せる場合は
このままじゃ見づらいので見やすいように別に表を作成しましょう。
種類:アドバイス
どんな人:専門家
自信:自信あり
回答日時:08/05/07 04:18
回答番号:No.3
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

良回答20pt

回答者:sevenless まず最初に、こういう風に複数のデータセットをまとめて、そこから特定のキーを手がかりに残りのデータを引っ張り出したい、というような目的にはリレーショナルデータベースの得意分野です。Mac ならファイルメーカーを使えばごく簡単に実現できますし、信頼性も高いです。私なら Excel でこの種のデータ処理をしようとは思わないでしょう。

その上で、どうしても Excel でやりたいのであれば、私なら以下のようにします。
・まず、シート(会社)とシート(車)を別に作成し、シート1,2,3を参照して以下のように設定します。

◎シート(会社)
佐藤      田中       斉藤
=シート1!B1  =シート2!B1  =シート3!B1
=シート1!B2  =シート2!B2  =シート3!B2
=シート1!B3  =シート2!B3  =シート3!B3
そうすれば以下のようなデータになるはずです。
佐藤  田中  斉藤
A社  D社  G社
B社  E社  H社
C社  F社  I社

同様に
◎シート(車)
佐藤      田中       斉藤
=シート1!C1  =シート2!C1  =シート3!C1
=シート1!C2  =シート2!C2  =シート3!C2
=シート1!C3  =シート2!C3  =シート3!C3
として、表示されたデータは
佐藤  田中  斉藤
15t 8t  8t
4t  15t 4t
6t  6t  15t

・そしてシート4として
1/1  =INDEX(シート(会社)!A2:C2,MATCH("15t",シート(車)!A2:C2,0))
1/2  =INDEX(シート(会社)!A3:C3,MATCH("15t",シート(車)!A3:C3,0))
1/3  =INDEX(シート(会社)!A4:C4,MATCH("15t",シート(車)!A4:C4,0))
とすれば、期待通り
1/1  A社
1/2  E社
1/3  I社
となるはずです。シート(車)の中から条件(15t)に合致するデータの位置を探し出し、シート(会社)から同じ位置のデータを読み取れば会社名が分かるというわけです。

ただ、例えば15tならうまく行きますが、8tにすると 1/1 ではD社とG社の2個に該当するのでうまく行きませんし、1/2 や 1/3 は該当がないのでそれはそれでエラーが出ます。実際に使うには、色々な場合を想定して全てのケースで正常に働くようにかなり手直しをする必要があるでしょう。場合によっては単純な関数ではなく VBA マクロを組む必要があるかもしれません (Excel 2008 では使えませんが)。リレーショナルデータベースソフトなら、その辺ははるかに簡単ですし、機能や項目を拡張したいというような場合にも柔軟に対応できます。
種類:回答
どんな人:経験者
自信:自信あり
回答日時:08/05/04 01:04
回答番号:No.2
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:grumpy_the_dwarf 文章がわかりにくいどころか、使っているソフトの名前すら書いてありま
せんが、Excelだとすると、こういうのは関数では出来ません。

まず、ドライバー別にバラバラに入力というのがダメです。集計のために
あっちこっちから条件にあう物をもれなく見つけてくるってのは、表計算
ソフトには向いていません。全部同じところに入力してあれば、オート
フィルタを使って必要な行だけを表示させることも出来るんで、Excelで
あることが重要なら、その手を考慮してみて下さい。

基本的にはファイルメーカーなどのデータベースソフトを使うのが簡単で
判りやすくて見栄えもずっといいです。
種類:アドバイス
どんな人:経験者
自信:自信あり
回答日時:08/05/03 23:54
回答番号:No.1
この回答へのお礼この回答にお礼をつける(質問者のみ)
 
最新から表示回答順に表示良回答のみ表示