Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12041 / 13646 ツリー ←次へ | 前へ→

【12715】関数 yukko 04/4/13(火) 11:55 質問
【12716】Re:関数 Asaki 04/4/13(火) 12:40 回答
【12719】Re:関数 ハマゾウ 04/4/13(火) 12:57 回答
【12732】Re:関数 yukko 04/4/13(火) 14:39 質問

【12715】関数
質問  yukko  - 04/4/13(火) 11:55 -

引用なし
パスワード
    皆さんこんにちは、お知恵を拝借したいのですが。
エクセルで下記のような表がありB列が○のA列のデ−タは採用しA1からA6の間で
MAXを抽出するのですがB列に×があればそこを除いた間でMaxを抽出したいのですが
どうすればよいでしょうか?
   A列 B列 
1行 80      ×
2  60      ○
3  70  ○
4  50  ○
5  40  ○
6  30  ○
7  70←B列1行に×があるのでA2からA6の間でMAXを抽出します


 

【12716】Re:関数
回答  Asaki  - 04/4/13(火) 12:40 -

引用なし
パスワード
   こんにちは。

A7 に
=MAX(($B$1:$B$6="○")*$A$1:$A$6)
と入力して、Shift+Ctrl+Enter で確定します。(配列数式)
では、如何でしょうか?

【12719】Re:関数
回答  ハマゾウ E-MAIL  - 04/4/13(火) 12:57 -

引用なし
パスワード
   ▼yukko さん:
標準モジュールに以下のコードをコピー後、"A7"のセルに"=test(A1:B6)"と入力してみてください。

Function test(RG As Range)
  Dim Data
  Dim i As Long
  Dim MData As Double
  
  Data = RG
  
  '初期値の設定
  For i = 1 To UBound(Data, 1)
    If Data(i, 2) = "○" Then
      MData = Data(i, 1)
      Exit For
    End If
  Next
  
  '最大値を調査
  For i = 1 To UBound(Data, 1)
    If MData < Data(i, 1) And Data(i, 2) = "○" Then
      MData = Data(i, 1)
    End If
  Next i
  test = MData
End Function

【12732】Re:関数
質問  yukko  - 04/4/13(火) 14:39 -

引用なし
パスワード
    Asakiさんハマゾウさんありがとうございます。
今回はAsakiさんの方が仕事上利用しやすいので
そちらを参考にします。
 ハマゾウさんごめんなさい・・・・・・・・
またよろしくお願いします。

12041 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free