- 締切済み
Excelでの複数条件検索について教えてください。
Excelでの複数条件検索について教えてください。 以下の様に日付毎に値段が変わる様なデータがある際に、 りんご・なしの日付毎の値段を一覧化することは可能でしょうか。 関数で検討してみましたが、検討もつかずにおります。 A列 B列 C列 1行 りんご 8/10 100円 2行 りんご 8/2 120円 3行 りんご 7/25 90円 4行 なし 8/3 110円 5行 なし 8/1 99円 6行 なし 7/31 100円 以下の様に日付単位で一覧化できればと考えております。 (A列及び1行は固定で記載として、B2:D3に関数などで出力 したいです) A列 B列 C列 D列 1行 8/1 8/2 8/3 … 2行 りんご 90円 120円 120円 3行 なし 99円 99円 110円 初心者の質問で申し訳ありませんが、宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
日付による行列の並べ替えも伴う処理ということで、統合とかの機能でもできないので、皆さんのおっしゃるとおり、ピボットテーブルが最も普通の手段と考えられます。ベストアンサーは辞退します。 表から表に並べ替えるだけのそのような処理を行っても、それだけではあまり意味がなさそうですから(元の表において行の並べ替えはいつでもパッとできます)、目的は多分、折れ線グラフで経時変化を描くとかですかね。だとしたら、いきなりグラフを作ってくれる、ピボットグラフという機能もありますね。 グラフにしない場合もそうですが、グラフにするならば特に、各金額に「円」は付けません。No.3 さんもおっしゃっているとおり、必要ならセルの書式で対応します。 よりお勧めなのは、各セルに「円」を書くこと自体をやめて、表の項目の部分などにまとめて書く形にすることです。繰り返しの記述を避ければ、文字数が少なくて読みやすい、より合理的な表になります。 また、グラフ化せずに表を人に見せる場合、日付を縦に並べ、「りんご」、「なし」などは横に並べていくと、見やすい表になります。「りんご」という箇所に何文字くらいの項目が何種類くらい載ってくるかにもよるのかもしれませんが(あまり多いと横長の表になってしまうので、それも好ましくありません)。つまり、要望されている表とは行列が逆になっている、転置行列の表ということです。 人間の目は、よく比較するデータ同士を縦に並べるほうが見やすいです。ですから経時変化が縦に並んでいるほうが分かりやすくなります。単語などのデータでもそうですが、とりわけ桁数の多い数のデータでは、横より縦で並んでいるほうが遥かに比較しやすいです。人が表を見るとき、「りんご」と「なし」の間での比較を行う頻度は、日付と日付での比較より少ないだろうと想像して、作表するわけです。
- KURUMITO
- ベストアンサー率42% (1835/4283)
分かり易く簡単な方法は作業列を作って対応することです。 シート1は元の表で、例えば作業列をE列としてE1セルには次の式を入力して下方にドラッグコピーします。 =A1&B1 4万台の数値が付いた形で表示されますが、その数値は日付のデータがシリアル値として表示されているのです。 次にお求めの表ですがシート2に作成するとします。 A2セルから下方にはりんご、なしなどのデータを入力します。 B1セルから右横の列には日付を入力します。 そこで値段の表示ですがB2セルには次の式を入力してから右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR($A2="",B$1="",COUNTIF(Sheet1!$A:$A,$A2)=0,COUNTIF(Sheet1!$E:$E,$A2&B$1)=0),"",INDEX(Sheet1!$C:$C,MATCH($A2&B$1,Sheet1!$E:$E,0))) 式の意味はA列のセルが空白、1行目の日付のセルが空白、A列に入力した品名がシート1のA列に無い場合、A列の品名と1行目の日付を合体した値がシート1のE列に無い場合にはセルを空白にしなさい。そうでない場合にはINDEX関数でA列の品名と1行目の日付を合体した値をシート1のE列で探しその該当する行にあるC列のデータを表示しなさいとの意味になります。 関数を使った方法は一旦表を完成した後では入力のデータに対応して何らの操作もしないで即座に表が完成することでしょう。
- keithin
- ベストアンサー率66% (5278/7941)
手順: 添付図左のようにデータを作成する できる方法その1: ご利用のエクセルのバージョンに応じた方法で「ピボットテーブルレポート」の作成を開始する 商品を行に、日付を列に、金額をデータ(Σ値)に放り込むと、あと何もしなくても勝手に集計表が出来上がる。 必要に応じて日付をグループ化して8月の日付だけに絞り込んだり、表示アイテムを調整する できる方法その2: エクセル2007以降を使う シート2のA列に商品を固定で羅列する シート2の1行目に日付を固定で羅列する シート2のB2に =SUMIFS(Sheet1!$C:$C,Sheet1!$A:$A,$A2,Sheet1!$B:$B,B$1) と記入、右にコピー、下にコピーする 必要に応じて、セルの書式設定の表示形式のユーザー定義で 0円;;; と設定する #エクセル2003以前を使っているときは、SUMPRODUCT関数を使う。別途ご相談を投稿の事。 #以下余談:五月蠅ければスルーしてください >初心者の質問で申し訳ありません エクセルの基本的な使い方その1: 1行目からいきなりデータを羅列しない。 1行目はタイトル行として、2行目からデータを記入する。 エクセルの基本的な使い方その2: 金額を「110円」と記入しない。 数字は数字として「110」だけ記入する。 必要ならセルの書式設定の表示形式のユーザー定義で 0円 のように設定して、円を表示で取り付ける。 初心者さんのご質問でよく見かける失敗その1: 説明のための説明を書いているので、たとえば「品目」と「日付」に一つもダブりが無い事になっている。 ホントにそういうデータしか無いのか、もしも「同じ品目」「同じ日付」の金額が現れたらどーしたいのか(合計したいのか平均したいのかなど)説明されてない。 初心者さんのご質問でとてもよく見かける失敗その2: ご利用のエクセルのバージョンが書いてません。 実データがどうなってるのかにもよりますが、ご利用のエクセルのバージョンによって使える(使えると便利な)関数とか、操作の手順とか違います。 初心者さんのご質問で大変多く見かける失敗その3: 「教わった関数を(理解しなくても)コピーして使えたらそれでいい」のか、とにかく関数関数なんでも関数なご相談です。
- 大明神(@bathbadya)
- ベストアンサー率19% (769/3963)
サンプルは綺麗にりんごとなしが分かれていますが・・ 混じっているとして まずは、行と列を入れ替え。範囲を指定してコピーし、違うシートに貼り付け。 貼り付けるときには「行列の入れ替え」をする IF文を作成し、りんごデータを抜き出して下行に複写 おなじくなしはその下に複写 複写したデータにはIF文が残っているので、 他の場所へ「数値だけコピー」してやる