アプリ版:「スタンプのみでお礼する」機能のリリースについて

 よろしくお願いします。
データー
   A      B     C     D
1 1/1    20   19    50
2 1/2    65   55    89
3 1/3    88   80    89
4 1/7    25   02    80
5 1/8    44   13    99
6 1/10   93   23    95
7 1/14   12   -2    46
8 1/15   23   11    45

 というデーターがあります。
このデーターのB列の数字を基準にし、C列の数字とD列の数字の二つを比べ、C列の数字と近い場合とD列の数字と近い場合のデーターを抜き出せるようにしたいと思います。
 B列の数字がC列の数字と近い場合の結果
   A      B     C     D
1 1/1    20   19    50
2 1/7    25   02    80
3 1/8    44   13    99
4 1/14   12   -2    46
5 1/15   23   11    45

 B列の数字がD列の数字と近い場合の結果
1 1/2    65   55    68
2 1/3    88   80    89
3 1/10   93   23    95


 できる方、よろしくお願いします。

A 回答 (5件)

回答ではありません。

補足してください。

1/16 71 51 91

というデータがあった場合は、どうします?
それとも、こういうデータは無い?
(両方とも、基準から同じだけ離れている場合。)

この回答への補足

 補足要求ありがとうございます。この場合C,D両方に表されれば、ありがたいです。

補足日時:2008/06/15 15:30
    • good
    • 0

1行目に適当な見出しを加えて、E列に下記の式を入れ、オートフィルターで、TRUEかFALSEかで分ければいかがでしょう。

A No.1の方の言われる通り、等号をつけるかどうかはご自分で変更下さい。
E2の式の例:=IF(ABS(B2-C2)<=ABS(B2-D2),TRUE,FALSE)
...............A....B....C....D...............E
..1.........日付....B....C....D.........判定
..2.......1月1日..20...19..50.........TRUE
..3......1月2日..65..55..89.........TRUE
..4......1月3日..88..80..89.......FALSE
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。振り分けで判断するやり方ですね。参考にさせて頂きたいと思います。

お礼日時:2008/06/15 15:54

元データをSheet1、振り分け先をSheet2とSheet3にします。



Dim j As Integer
Dim k As Integer

Set Data = Sheets("Sheet1").Range("a1").CurrentRegion

j = 1
k = 1

With Data
For i = 1 To Data.Rows.Count
If Abs(.Cells(i, 2) - .Cells(i, 3)) > _
Abs(.Cells(i, 2) - .Cells(i, 4)) Then
.Rows(i).Copy Destination:=Sheets("Sheet2").Cells(j, 1)
j = j + 1
Else
.Rows(i).Copy Destination:=Sheets("Sheet3").Cells(k, 1)
k = k + 1
End If
Next
End With

Set Data = Nothing

End Sub

以上です
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。参考にさせていただきたいと思います。

お礼日時:2008/06/15 16:09

例データ 質問例どおり


ABCDEFG
11月1日20195019A
21月2日65 55 8955A
31月3日88 80 8989B
41月7日25 2 802A
51月8日44 13 9913A
61月10日93 23 9595B
71月14日12 -2 46-2A
81月15日23 11 4511A
G列G2は =IF(ABS(D2-C2)<ABS(E2-C2),"A","B")
(参考:F列F2は=IF(ABS(D2-C2)<ABS(E2-C2),D2,E2))
このG列でソートし、Aの行だけ他シートにコピペ。
ーー
関数でも、抜き出し等できるが、(過去質問をimogasi方式でGoogleで照会すると、1条件抜き出しの質問回答例が多数出てくる)今回はこの辺でとどめたら。
    • good
    • 0
この回答へのお礼

 回答ありがとうございます。基本的にはANo.2と同じ解決方法ですね、参考にさせて頂きたいと思います。

お礼日時:2008/06/15 15:56

#4です。


>基本的にはANo.2と同じ解決方法ですね
違います。ABSの利用が売りのつもりです。
    • good
    • 0
この回答へのお礼

 失礼しました。

お礼日時:2008/06/17 21:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!