- ベストアンサー
エクセル関数について
時間を区切ってカウント、計算をしたいのですが・・・。 13時以降作成は200円、13時以前のものは150円で計算をしたいのです。 エクセルで表は作成済みですが、時間はランダムに入力(11:00の形式で入力)されています。 よろしくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
計算結果をどこに表示させたいのかが明記されていませんので、取り敢えず仮に、D列の2行目以下に全ての商品番号を一つずつ並べて入力しておくと、E列には商品毎の13:00よりも前の個数が表示され、F列には商品毎の13:00以降の個数、G列にはその商品の全数、H列には商品毎の13:00よりも前の金額の合計、I列には商品毎の13:00以降の金額の合計、J列にはその商品の金額の合計、が表示される様にするものとして話を進めさせて頂きます。 まず、E2セルに次の数式を入力して下さい。 =IF($D2="","",SUMPRODUCT(($A$1:INDEX($A:$A,MATCH(9^9,$A:$A))<"13:00"+0)*($B$1:INDEX($B:$B,MATCH(9^9,$A:$A))=$D2))) 次に、G2セルに次の数式を入力して下さい。 =IF($D2="","",COUNTIF($B:$B,$D2)) 次に、F2セルに次の数式を入力して下さい。 =IF($D2="","",$G2-$E2) 次に、H2セルに次の数式を入力して下さい。 =IF($D2="","",$E2*150) 次に、I2セルに次の数式を入力して下さい。 =IF($D2="","",$E2*200) 次に、J2セルに次の数式を入力して下さい。 =IF($D2="","",SUM($H2:$I2)) 次に、E2セルにカーソルを合わせてからマウスの左ボタンを押して下さい。 次に、そのままマウスの左ボタンを押しっ放しにしたままで、カーソルをJ2セルに移動させ、そこでボタンを放して下さい。 次に、選択範囲を示す黒い太枠の右下端にある黒点にカーソルを合わせて下さい。 するとカーソルの形が「+」に変わりますから、その状態でマウスの左ボタンを押しっ放しにしてから、カーソルを下方向に移動させ、E2~J2に入力されている内容を、3行目以下にコピーして下さい。(この操作の事を「ドラッグ アンド ドロップ」と言います) これで、欲しい情報をまとめた表が自動的に表示されると思います。 尚、御使用になられているExcelのバージョンが、もしExcel2007以降である場合には、COUNTIFS関数が使用可能ですので、その場合には、E2セルに入力する数式を、上記のものではなく、次の様な数式とする事をお勧めします。 =IF($D2="","",COUNTIFS($A:$A,"<"&"13:00"+0,$B:$B,$D2))
その他の回答 (7)
- esupuresso
- ベストアンサー率44% (257/579)
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばA2セルから下方に時間が入力されている、B2セルから下方に商品番号が入力されているとします。 そこで答えとなる表ですが例えばF1セルには13:00未満、G1セルには13:00以上とでも項目名を入力します。 E2セルには合計金額とでも入力します。E3セルから下行にはB列に入力してある商品番号を入力します。 そこでF2セルには次の式を入力して下行にオートフィルドラッグします。 =IF(ROW(A1)=1,SUM(F$3:F$100)*150,IF($E2="","",SUMPRODUCT(($A$2:$A$1000<"13:00"*1)*($B$2:$B$1000=$E2)))) G2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(ROW(B1)=1,SUM(G$3:G$100)*200,IF($E2="","",SUMPRODUCT(($A$2:$A$1000>="13:00"*1)*($B$2:$B$1000=$E2)))) これでF3セルから下の行には13:00未満の時間になっている各商品番号ごとの件数が表示され、F2セルにはそれらの件数に150円を乗じた金額が表示されます。G列についても同じようなデータが表示されます。
お礼
回答ありがとうございました! 下手な質問で申し訳ありませんでした。。 とても参考になりました。
- mu2011
- ベストアンサー率38% (1910/4994)
仮に2列追加(午前・午後、単価)してピボットテーブルとしては如何でしょうか。 エクセルグレードを記載されていないので操作はweb検索してみて下さい。
お礼
回答ありがとうございました! 下手な質問で申し訳ありませんでした。。
- chonami
- ベストアンサー率43% (448/1036)
う~ん、まだよく把握しきってませんが、 私の回答でつくったA1:B2の表をどこか別の場所につくっておき、 A列→時刻 B列→商品番号 C列→No.2の回答の式(参照範囲などは変えて) 時間帯の区分が2つしかないのならC列にはNo.3の方の式を入れれば一覧表を作らなくてもできますね。 商品番号の数はこれもNo.3の方の式を参考にCOUNTIFを使えばできます。
お礼
回答ありがとうございました! 下手な質問で申し訳ありませんでした。。 とても参考になりました。 いろいろと考えてみます。 どうにか完成しそうです!
- KURUMITO
- ベストアンサー率42% (1835/4283)
例えばA列に時間が入力されており、そのデータをもとに金額を求めるのでしたら次のような式になりますね。 13時以前のものは =COUNTIF(A:A,"<=13:00")*150 13時を過ぎたものは =COUNTIF(A:A,">13:00")*200
お礼
回答ありがとうございました! 下手な質問で申し訳ありませんでした。。 とても参考になりました。
- chonami
- ベストアンサー率43% (448/1036)
本当に、単純に、質問文の内容を処理します。 あと、13:00ぴったりの時がどちらかわからないので、200円とします。 A1→0:00 B1→200 A2→13:01 B2→150 という表を作っておき、 A5→時刻を入力 B5→=VLOOKUP(A5,$A$1:$B$2,2,1) これで如何でしょうか?
お礼
回答ありがとうございました! 下手な質問で申し訳ありませんでした。。 とても参考になりました。
補足
ありがとうございます。 13:00は200円です。 作成されている表を利用したいというのが希望です。 以降、時間を入力すれば、自動的に単価が計算されるという風に。。 A1→10:30 B2→商品番号A A2→16:00 B2→商品番号B A3→09:00 B2→商品番号A このような表で、13時以降は200円、13時以前は150円で計算して、できれば、その中で、商品番号Bは何件ある。。というのがわかるように作成したいのです。 すみません。。 分かりにくい質問内容ですが、よろしくお願いします。
- titosan
- ベストアンサー率20% (4/20)
問題の意味が理解できません。何かの単価が200円や300円で、それで価格をけいさんするとか、具体的に問題を設定してください。
お礼
回答ありがとうございました! 下手な質問で申し訳ありませんでした。。 とても参考になりました。 いろいろ考えてみたいと思います。