Excelで2行あきのデータの最小値を抽出する方法

このQ&Aのポイント
  • エクセル2007を使って、2行あきのデータの最小金額と、その最小値の品物を表示させたい方法を教えてください。
  • 品物購入シートと最小値抽出シートの2つのシートがあり、品物購入シートの2行おきの最小値を最小値抽出シートに表示したいと思っています。
  • INDEXやMATCH関数を使ってみましたが、エラーが出てしまいました。詳しい方に教えていただけると幸いです。
回答を見る
  • ベストアンサー

エクセルで2行あきのデータの最小値を抽出したいです

エクセル2007を使って、2行あきのデータの最小金額と、 その最小値の品物を表示させたいと思っています。 ↓データはこのようになっています。 ファイルは、 ・品物購入シート ・最小値抽出シート の2シートあり、 品物購入シートの2行おきの最小値を 最小値抽出シートへ 表示させたいと思っています。  2行おきにしたいのは、品物の名前が、順番に合板、ペンキ、ネジ、 合板、ペンキ、ネジ...と同じ順番んで並んでいるためなのですが、 INDEXやMATCH関数を使ってみましたが、エラーで結果がでません でした。 《品物購入シート》    A、  B、  C、 1 金額、品物、購入日 2 120、合板、7/1 3 400、ペンキ、7/1 4 100、ネジ、6/1 5 240、合板、6/1 6 200、ペンキ、6/2 7 150、ネジ、7/2 ・ ・ データが40行くらいあります。 《最小値抽出シート》    A、  B、  C、 1 金額、品物、購入日 2 120、合板、7/1 3 200、ペンキ、6/2 4 150、ネジ、7/2 最少金額を↓このように考えてみましたが、VALUEのエラーがでてしまいました。 =IF(COUNT(MOD(ROW(),2)),MIN(MOD(ROW(),2),"-")) 説明がうまくできず申し訳ないですが、詳しい方どうか教えてください よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

「2行おき」のように不確定な計算ではなく,しっかり品目名をキーにして集計してみます。 手順: 抽出シートのB2,B3,B4にそれぞれ「合板」「ペンキ」「ねじ」を記入します。 A2には =MIN(IF(購入!B:B=B2,購入!A:A)) と記入し,コントロールキーとシフトキーを押しながらEnterします C2には =MIN(IF((購入!A:A=A2)*(購入!B:B=B2),購入!C:C)) と記入し,コントロールキーとシフトキーを押しながらEnterします 日付の書式を施し,下向けにコピーします

lilosthitch
質問者

お礼

早い回答ありがとうございました。 試してみたらうまくできました。 すごく助かりました。 ありがとうございました。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

配列数式で許される件数なら 例データ A2:E13 だたし、C,D,E列は参考のためにB列と同じ数字を列をずらして書いているだけ。 元データはA,B列 a 12 12 b 21 - 21 c 14 - - 14 a 12 12 b 9 - 9 c 24 - - 24 a 7 7 b 15 - 15 c 13 - - 13 a 32 32 b 14 - 14 c 23 - - 23 ーーーー 最大値と最小値を出してみると S+C+EはShifttpCTRLとEnterキーを同時押しすること F3の式 =MAX(IF(MOD(ROW($A$2:$A$14),3)=0,$B$2:$B$13,0)) と入れて S+C+E G3は =MIN(IF(MOD(ROW($A$2:$A$14),3)=0,$B$2:$B$13,"")) と入れて S+C+E F4は =MAX(IF(MOD(ROW($A$2:$A$13),3)=1,$B$2:$B$13,0)) と入れて S+C+E G4は =MIN(IF(MOD(ROW($A$2:$A$13),3)=1,$B$2:$B$13,"")) と入れて S+C+E F5は =MAX(IF(MOD(ROW($A$2:$A$13),3)=2,$B$2:$B$13,0)) と入れて S+C+E G5は =MIN(IF(MOD(ROW($A$2:$A$13),3)=2,$B$2:$B$13,"")) と入れて S+C+E ーー 結果 F3:G5 21 9 24 13 32 7 上記データ例のC,D,E列のデータで確認できる。

lilosthitch
質問者

お礼

配列関数詳しくキーボードの打ち方も書いてくださり ありがとうございます。 質問以外の応用できる 最大値の出し方も書いてくださてありがとうございました。 配列関数はかなり多いデータでもできるのですね。 回答ありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

関数を使用しない方法は如何でしょうか。 (1)最小値抽出シートにデータコピー (2)金額列で並び替え(昇順) (3)金額列で重複削除 因みにマクロ記録させておくと操作が簡単です。

lilosthitch
質問者

お礼

回答ありがとうございます。 関数やピボットテーブル以外にも 方法があるのですね 勉強しなります。 ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

最小値抽出シートのA列には品物名を入力することにしてA2セルには合板、A3セルにはペンキ、A4セルにはネジのように入力します。 B列には金額を表示させることにしてB2セルには次の式を入力し式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。その後に式を下方にオートフィルドラッグします。 =IF(A2="","",MIN(IF(品物購入!B$1:B$50=A2,品物購入!A$1:A$50))) C列には購入日を表示させることにしてC2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",INDEX(品物購入!C$1:C$50,SUMPRODUCT((品物購入!B$1:B$50=A2)*(品物購入!A$1:A$50=B2)*ROW(A$1:A$50)))) なお、C列の表示形式は日付にします。

lilosthitch
質問者

お礼

丁寧に回答いただいてすごくわかりやすかったです。 ありがとうございます。 試してみたらうまくいきました。 回答ありがとうございました。

  • muunoy
  • ベストアンサー率38% (70/183)
回答No.2

関数ではなく、ピボットテーブルを使ってみてはどうですか? 結果をどのように使用しているかわからないので、参考にならなかったらごめんなさい。 全データあわせて、何行あるのかわからないので、最良の方法とは言えないかもしれません。

lilosthitch
質問者

お礼

ピボットテーブル知らなかったので検索してみました、 初めて機能をしりました。 エクセル=関数みたいに思っていたので 勉強になりました。 たくさんデータ、抽出項目がある時 また勉強して使ってみたいです。 回答ありがとうございました。

関連するQ&A

  • エクセルで指定した行数毎に行データを抽出したい

    いつもお世話になっております。 最近データ処理で何度も表題にある処理をしているのですが、何とか簡単にできないかと質問させて頂きます。 決まった書式のデータシートから、指定した行から指定した行までの間で指定した行数置きに別のシートに抜出したいのですが。 例えば、18行目から1500行目迄の間で、3行おきに抽出したい、というような感じです。 現在は、条件付き書式で=MOD(ROW(),3)=1というような式でセルに着色して、色フィルタで不要な行を削除してそれを別シートにコピペして・・・ で何とか処理しています。 尚、贅沢を言えば、シート上の決まったセル(A1、B1、C1・・)に上記の条件(開始行、最終行、行間隔)を入力して、「新規Sheet」に抽出出来れば最高です。 また、例えば手作業で簡単に出来る作業(空白行を削除したシートで・・)等はその旨の条件付きで全くOKですのでよろしくお願いします。

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • EXCELで100行に1行ずつ抽出したい

    現在卒業研究中でエクセルを使っています。 そこで分からない事があるんですが、約10万行のデータがある列から100行に1行ずつ抽出し、横に1000行の列を作りたいと思ってます。 抽出する行は[1,101,201...]や、[100,200,300]等、番号は問いません。ただランダムではなく、100行ずつ順番に並べたいです。 どなたか詳しい方いらっしゃいましたら、教えていただけないでしょうか? よろしくお願いいたします。

  • EXCELでの行の抽出

    sheet1に   A    B    C    D 1 日付 金額  備考  コード 2 01  1000 あいう    1 3 10  2000 えおか    3 4 20  3000 きくけ    4 5 30  4000 こさし    1 . . . という感じで元データ(100行ほど)が入っています。 これを元にしてsheet2に   A    B    C    D 1  1 2 日付 金額  備考  コード 3 01  1000 あいう    1 4 30  4000 こさし    1 . . . というふうに表示したいのです。 sheet2のセルA1に入っているコードと一致するコードが入っているsheet1の行を抽出してsheet2に行の隙間なく表示させたいのです。 こんなことはできるのでしょうか? メニューからコマンドを選択して・・・という方法ではなく、計算式かマクロで実現したいのです。 エクセル2000、Win98です。よろしくお願いします。

  • エクセルで空白を詰めデーター抽出について

    こちらのサイトで前にあった質問なのですが…うまく活用できないので詳しく教えて下さい。 http://okwave.jp/qa4199738.html ↑の質問の活用方法なのですが、質問の方と同じような事で回答での数式で試してみました。 =IF(ROW()>MAX(Sheet1!$C$1:$C$100),"",INDEX(Sheet1!$A$1:$B$100,MATCH(ROW(),Sheet1!$C$1:$C$100,0),1)) この数式を元にしてみましたがうまくいきません。 見出しや項目を3行目までいれているので、4行目から抽出したデータを表記したいのですが、1~3行分が表記されません。 シート1でカウントをつけた1~3までが見出しや項目の所に入るようになっているのだという事はわかるのですが、項目等をはずしてしまうと見づらくなるので4行目から表記される為には、上の数式のどこを直せば良いのでしょう? ご回答お願い致します。

  • エクセルで20万行あるシートから100行ずつ抽出したいのですが

    お世話になります。 エクセルで20万行のデーターがあります(時刻と温度のデーター)。 これを100行ずつ抽出し、別のシートにコピーしたいのですがどうすればいいでしょうか? +’sheet’A1 +’sheet’A101 +’sheet’A201 ・・・ と手入力では大変ですので、ドラッグで一度に出来るやり方を教えて頂けると幸いです。 よろしくお願いします。

  • エクセルでデータ抽出するには?

    まったくのエクセル初心者です。 エクセルで、シート1のデータの特定科目を抽出してシート2にコピーしたいのです。 シート1のデータは 5/1 消耗品    2500 5/3 水道光熱費  8000 5/5 消耗品     700 5/7 消耗品    1200 この中から消耗品と記入されている行をシート2に抽出したいのです。 マクロは全然わかりません。。簡単にできる方法は無いでしょうか?よろしくお願いします。

  • エクセルの最小値抽出方法について

    エクセルで最小値を抽出する方法 みなさん教えてください。 今エクセルで下図のような正弦波のグラフ図中の赤矢印部(ピーク値) で一番小さくなる最小値を抽出したいと思っています。 しかし、方法がわかりません。 MIN関数を使用すると、一番小さい0が出てきます。 データの境目(~以上)と指定してオートフィルタでデータを抽出しようとしても、 データのプロット数が多すぎて境目をみつけるだけでも苦労し、うまくいきませんでした。 何か簡単に抽出できる良い方法はないでしょうか。 みなさんお力をかしてください。よろしくお願いします。 <波形元データ> ※オシロスコープで測定したデータ(CSVファイル:データ数2000行弱) 時間 電圧 0 0.03626667 0.0002 0.037975 0.0004 0.035025 0.0006 0.03514167 0.0008 0.03781667 0.001 0.03830833 0.0012 0.03346667 0.0014 0.03460833 0.0016 0.03616667 0.0018 0.0342 0.002 0.03035 ・ ・ ・ ・ ・ ・

  • 「エクセルでデータのある行だけを他のシートに抽出する」を参考にしたのですが・・・

    下記過去の質問・回答を見つけ私も参考にさせて頂きましたが手詰まって困っています。 http://okwave.jp/qa943364.html なおこの質問の数式・例は全て過去質問の回答者:imogasiの回答を参考にさせて頂きました。 やりたい事→データを抽出する場所(A1をA3/B1をB3)を変更したいのです。 現状は(例データ)Sheet2のA1:B9(C列は関数式を入れた結果) A  B C 210 伊藤 1 211 山田 2 212 0 2 214 2 216 近藤 3 217 鈴木 4 219 0 4 220 4 221 大田 5 Sheets2の C1に=IF(A1="","",COUNTA($B$1:B1)-COUNTIF($B$1:B1,0))がはいり下にコピーしてます。 抽出するSheets3の A1に=IF(ROW()>MAX(Sheet2!C:C),"",OFFSET(Sheet2!$A$1,MATCH(ROW(),Sheet2!$C$1:$C$30,0)-1,0)) B1に=IF(ROW()>MAX(Sheet2!C:C),"",OFFSET(Sheet2!$A$1,MATCH(ROW(),Sheet2!$C$1:$C$30,0)-1,1)) 上記でうまくデータを抽出できるのですが、抽出する場所をA1及びB1を変更するとうまく抽出できません。 抽出場所をA3及びB3にする為にはどのような工夫が必要になるのでしょうか?

  • エクセルでの~データの抽出~

    本などを読んでも何で調べたらいいのか分かりません。 お詳しい方どうかご教示下さい。 仕事でエクセルのみを使用してデータの管理をしています。以下の ようなことをしたい場合、エクセルで出来るのか、またどうすれば よいですか? (Q1)例えば、Aのシートに何百人という名前のデータがあるの ですが、そこには同じ人(同じ名前)がほぼ2~3個重複してたりも します。Bのシートにも同様のようなデータがあり、Aのシートにいる 人もまた同じようにBのシートにも重複してたりもします。そこで、 「AのシートにはなくてBのシートにだけいる人を抽出したい」場合どうすればよいのでしょうか? 3月の顧客一覧をAのシート、4月の顧客 一覧をBのシートとしていて、毎月ほぼ同じだけれど、4月に 新たに発生した顧客だけを知りたい、という場合です。。。 (金額も管理してるので一シートに同じ顧客が連なってたりもします) この場合、いちいち見比べずにさっと抽出したりすることは可能 でしょうか…?      (Q2)各シートに沢山あるデータのある一つのデータだけを、どこかに 抽出することはできます?例えば、名前・金額などのデータを月毎に 各シートで管理しているのですが、一年なら、12枚あるシートの 中で、ある一人だけのデータを知りたい場合(例えば何月に来ていくら 購入している…等)、12シートを一枚づつ開いて名前を探す方法以外に何かありますか? 分かりにくい説明で申し訳ありません。お詳しい方、どうか知恵と 知識をご教示ください。よろしくお願いいたします。      

専門家に質問してみよう