[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『抽出について』(ゆう)
Sheet1の A列に日付が入ってます B列に数量が入ってます
Sheet2 A1に”火”って入力したらB1にsheet1のB列のmaxの数字 C列にminの数字が抽出できるようにしたいのですがどうすればよいのでしょうか
もしかして、"火"と入力したら、シート1のA列のなかの「火曜日」の数字のなかのMAXとかMINを出したいの? だから、「金」と入力したら、「金曜日の中のMAX,MIN」?
それと、「C列にminの数字」じゃなく「C1にminの数字」だね。
(ぶらっと)
ぶらっとさんの予想が当たっていれば B1セル =MAX(IF(TEXT(A2:A32,"aaa")=A1,B2:B32)) C1セル =MIN(IF(TEXT(A2:A32,"aaa")=A1,B2:B32)) どちらも Ctrl + Shift + Enter で確定
でどうでしょうか?
(se_9)
いいですねぇ。で、元データはSheet1らしいので
B1セル =MAX(IF(TEXT(Sheet1!A2:A32,"aaa")=A1,Sheet1!B2:B32)) C1セル =MIN(IF(TEXT(Sheet1!A2:A32,"aaa")=A1,Sheet1!B2:B32))
ですかね。日付が1行目から入っているならA1:A31 B1:B31 ですか。
To (ゆう)さん
このように関数で充分だけど、マクロでということなら、シートのチェンジイベントで この式をEvaluateしたものをB1とC1にセットするのかな。
(ぶらっと)
別のシートに表示させるというのを見落としていました。 ぶらっとさん、補足ありがとうございます。
(se_9)
この質問文だけではわかりませんが、曜日別の最小値・最大値だとして
(1)範囲内に日付がすべて埋まっていない場合(日付未入力のセルがある場合) ※月単位なら小の月、月単位でなくても今後の入力を見越して範囲を広めにしたい場合等 (2)日付だけ入力されていて数量が未入力になっているセルがある場合
数式変更の必要ありだと思います。 ちなみに(1)は土曜日を指定したときの最小値で問題発生(数量が正数の場合) 曜日別の最小値・最大値なら文字列の曜日の列を設けて、ピボットテーブルでやるのが一番簡単だと思います。 ところで質問者さんは ↓ と同じ人? [[20120321195553]]『計算方法』(ゆう)
(JPN)
To JPNさん
関数は詳しくないのですが、なるほどですね。シリアル値で「0日」にあたる大昔の日が土曜日だったんですね。 A列最終行については、最終行を取得して、それを Evaluateに与えればいいと思いますが、上記があるので 不備ということですね。
ということで To ゆうさん
JPNさんからはピボットのリコメンドがでてるけど、もし(そんな希望は無いだろうけど)マクロでやるなら
Sub Sample() Dim c As Range Dim MaxMin(1 To 2) As Double Dim d As String Dim n As Double
d = Sheets("Sheet2").Range("A1").Value With Sheets("Sheet1") With .Range("A2", .Range("A" & .Rows.Count).End(xlUp)) MaxMin(2) = WorksheetFunction.Max(.Cells) For Each c In .Cells If c.Value <> vbNullString Then If Format(c.Value, "aaa") = d Then n = c.Offset(, 1).Value If n > MaxMin(1) Then MaxMin(1) = n If n < MaxMin(2) Then MaxMin(2) = n End If End If Next End With End With
Sheets("Sheet2").Range("B1:C1").Value = MaxMin
End Sub
(ぶらっと)
If c.Value <> vbNullString Then これを If c.Value <> vbNullString And c.Offset(, 1).Value <> vbNullString Then
(ぶらっと)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.