[[20120322000710]] 『抽出について』(ゆう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『抽出について』(ゆう)

 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

 (ぶらっと)

ありがとうございます。
マクロ大変助かりました。
一つ聞きたいんですが日付だけ入力されていて数量が未入力になっているセルがあるとき
minの数字が0という表示になってしまい正しく抽出してくれないんですが・・・


 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.