- ベストアンサー
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社 ↑この列に数式を入れたい。 解りにくい文章で申し訳ありません。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まず最初に、こういう風に複数のデータセットをまとめて、そこから特定のキーを手がかりに残りのデータを引っ張り出したい、というような目的にはリレーショナルデータベースの得意分野です。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 では使えませんが)。リレーショナルデータベースソフトなら、その辺ははるかに簡単ですし、機能や項目を拡張したいというような場合にも柔軟に対応できます。
その他の回答 (2)
- sakuuuuu
- ベストアンサー率32% (67/209)
>目的としては、配車表を車種別、または運転手別などに移行できるようにしたいのです。 車種別、運転種別の集計がとりたいのであれば エクセルシートの項目名に氏名を足して1つのシートにまとめることをお勧めします。 (下記参照) 1つのシートにまとめることで エクセルの強力な集計機能(並び替え、集計、フィルタリング、ピボットテーブル等)を フル活用することができます。 エクセルの初心者だと見やすくなるように 複数のシートを使ったり、マトリックス形式で表現しようとします。 これはエクセルの作業効率を著しく下げますのでお勧めできません。 (何よりも集計機能が使えません。関数やVBAを使えば可能ですが・・・) 今回の場合 【現状】 日付、配送先会社、車種 ↓↓↓↓↓↓↓ 【修正後】 日付、配送先会社、車種、運転手 にして1つのシートにまとめてみましょう。 ★表を作るポイントは データを追加した場合、シート行の下に増加する表にすることです。 1つのシートにまとめた後は 集計機能を使おうがフィルタリングを使おうがピボットテーブルを使おうが 自由自在です。 やり方はいろいろあるので、個人で調べてみてください。(申し訳ないのですが・・) 「集計」「ピボットテーブル」「フィルタリング」等で検索すれば引っかかります。 ちなみに私だったらピボットテーブルを使うでしょうね。 正直、10000行ぐらい迄だったら全然大丈夫です。 下に伸びる表になるので見てくれは悪いですが操作性は向上します。 お客さんに集計結果を見せる場合は このままじゃ見づらいので見やすいように別に表を作成しましょう。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
文章がわかりにくいどころか、使っているソフトの名前すら書いてありま せんが、Excelだとすると、こういうのは関数では出来ません。 まず、ドライバー別にバラバラに入力というのがダメです。集計のために あっちこっちから条件にあう物をもれなく見つけてくるってのは、表計算 ソフトには向いていません。全部同じところに入力してあれば、オート フィルタを使って必要な行だけを表示させることも出来るんで、Excelで あることが重要なら、その手を考慮してみて下さい。 基本的にはファイルメーカーなどのデータベースソフトを使うのが簡単で 判りやすくて見栄えもずっといいです。