[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数条件の最小値、最大値』(アマゾネス)
下記の表から、Sheet2の温度2の最小値と最大値をSheet1のE列、F列に 抽出したいです。
条件は、Sheet1のサイズ範囲をSheet2の直径から Sheet1の機種は、Sheet2の機種から Sheet2からはG列、型番Sだけを。M列、温度1を200度以下 です。 最小値、最大値がない時には空白にしたいです。 複雑なレイアウトで恐縮ですが、ご指導お願いします。
Sheet1 Sheet2
C D E F B G H M N 1 サイズ範囲 機種 MIN MAX 機種 型番 直径 温度1 温度2 2 4.01〜4.59 2号 61 63 2号 S 4.2 135 61 3 3号 62 68 2号 S 4.5 250 65 4 4号 2号 M 4.5 120 69 5 5号 2号 S 4.4 160 63 6 4.60〜5.30 2号 3号 S 4.3 110 62 7 3号 3号 S 4.1 102 68 8 4号 64 66 4号 S 4.7 160 64 9 5号 4号 S 5.2 152 66
< 使用 Excel:Excel2010、使用 OS:Windows8 >
サイズ 機種毎行えば出来そうですね
(Q::) 2017/12/06(水) 09:13
Dim c As Range, d As Range, size1 As Variant, size2 As Variant Sheets("Sheet1").Range("E2:F" & Rows.Count).ClearContents For Each c In Sheets("Sheet2").Range("B2:B" & Rows.Count).SpecialCells(xlCellTypeConstants) If StrConv(c.Offset(, 5).Value, vbNarrow) = "S" And Val(c.Offset(, 11).Value) <= 200 Then For Each d In Sheets("Sheet1").Range("D2:D" & Rows.Count).SpecialCells(xlCellTypeConstants) If d.Offset(, -1).Value <> "" Then size1 = Val(Split(d.Offset(, -1).Value, "〜")(0)) size2 = Val(Split(d.Offset(, -1).Value, "〜")(1)) End If If c.Value = d.Value And Val(c.Offset(, 6).Value) >= size1 And Val(c.Offset(, 6).Value) <= size2 Then If Val(c.Offset(, 12).Value) >= Val(d.Offset(, 2).Value) Then d.Offset(, 2).Value = Val(c.Offset(, 12).Value) If d.Offset(, 1).Value = "" Then d.Offset(, 1).Value = Val(c.Offset(, 12).Value) Else If Val(c.Offset(, 12).Value) <= Val(d.Offset(, 1).Value) Then d.Offset(, 1).Value = Val(c.Offset(, 12).Value) End If Exit For End If Next d End If Next c End Sub (mm) 2017/12/06(水) 09:24
長ったらしい式になってしまいますが
E2:=MIN(IF((Sheet2!H$2:H$101>=LEFT(INDEX(C$2:C$101,MATCH("ー",C$2:C2)),4)*1)*(Sheet2!H$2:H$101<=RIGHT(INDEX(C$2:C$101,MATCH("ー",C$2:C2)),4)*1)*(Sheet2!B$2:B$101=D2)*(Sheet2!G$2:G$101="S")*(Sheet2!M$2:M$101<=200),Sheet2!N$2:N$101)) F2:=MAX(IF((Sheet2!H$2:H$101>=LEFT(INDEX(C$2:C$101,MATCH("ー",C$2:C2)),4)*1)*(Sheet2!H$2:H$101<=RIGHT(INDEX(C$2:C$101,MATCH("ー",C$2:C2)),4)*1)*(Sheet2!B$2:B$101=D2)*(Sheet2!G$2:G$101="S")*(Sheet2!M$2:M$101<=200),Sheet2!N$2:N$101))
CtrlキーとShiftキーとEnterキーを同時押しして確定 E2、F2ともセルの表示形式を0;;;にして下方向にコピー (bi) 2017/12/06(水) 10:08
Q::さん、mmさん、biさんありがとうございました。 (アマゾネス) 2017/12/06(水) 22:30
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.