過去ログ

                                Page     237
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼方法を伝授して下さい。  TAKA 02/10/21(月) 13:59
   ┣Re:方法を伝授して下さい。  Hirofumi 02/10/21(月) 21:05
   ┗Re:方法を伝授して下さい。  Ron 02/10/21(月) 23:30
      ┗Re:方法を伝授して下さい。  TAKA 02/10/22(火) 9:00

 ───────────────────────────────────────
 ■題名 : 方法を伝授して下さい。
 ■名前 : TAKA
 ■日付 : 02/10/21(月) 13:59
 -------------------------------------------------------------------------
      A   B    C     E    F    G   H
1   1   5    2         最小  最大 合計
2   2   6   0.5      a    5    10
3   3   9   0.4      b    10   15
4   4  11   0.3     c   15    20
5   5  14   0.5    
6   6  16   0.4    
7   7  18   0.5    
8   8  19   0.9    
9   9  20   1.1    


A,B,C列は、TXTファイルを読み込んだ状態です。            
F1最小5〜G1最大10             
F2最小10〜G2最大15    
F3最小15〜G3最大20
こちらは、固定値です。

E2 (a)の例 5〜10
B1,2,3が該当その該当した隣C列 C1,2,3の合計をH2に合計させる。

・読み込み時にB,C列に入ってくる値が固定で無いので
このような読み込み時、変動するファイルを計算させる方法などは御座いますでしょうか?
 ───────────────────────────────────────  ■題名 : Re:方法を伝授して下さい。  ■名前 : Hirofumi <hirofumi@venus.dti.ne.jp>  ■日付 : 02/10/21(月) 21:05  -------------------------------------------------------------------------
   >読み込み時にB,C列に入ってくる値が固定で無いので
> このような読み込み時、変動するファイルを計算させる方法などは御座いますでしょうか?

この意味が善く解りませんが

単純なやり方としてはこんな感じかな?
Openステートメントを使って、InputモードでCSVファイルを読みこんでいます
ただ、最大、最小と言うのを、
例 (a)に就いて
B列で、5以上、10を超えないC列の値を集計
と言う事でコードを組んでいます

Public Sub Test()

  Dim i As Long
  Dim lngRow As Long
  Dim dfn As Integer
  Dim strFileName As String
  Dim vntWrite(1 To 1, 1 To 3) As Variant
  Dim vntTotal(1 To 3, 1 To 1) As Variant
  Dim strTmp As String
  
  strFileName = ThisWorkbook.Path & "\" & "TestData64.csv"
  lngRow = 1
  
  dfn = FreeFile
  Open strFileName For Input As dfn
  
  Do Until EOF(dfn)
    For i = 1 To 3
      Input #dfn, strTmp
      vntWrite(1, i) = Val(strTmp)
    Next i
    Range(Cells(lngRow, 1), Cells(lngRow, 3)).Value = vntWrite
    lngRow = lngRow + 1
    Select Case Val(vntWrite(1, 2))
      Case Is >= 20
        '
      Case Is >= 15
        vntTotal(3, 1) = vntTotal(3, 1) + Val(vntWrite(1, 3))
      Case Is >= 10
        vntTotal(2, 1) = vntTotal(2, 1) + Val(vntWrite(1, 3))
      Case Is >= 5
        vntTotal(1, 1) = vntTotal(1, 1) + Val(vntWrite(1, 3))
    End Select
  Loop
  
  Close #dfn
  
  Range(Cells(2, 7), Cells(4, 7)).Value = vntTotal
    
End Sub
 ───────────────────────────────────────  ■題名 : Re:方法を伝授して下さい。  ■名前 : Ron  ■日付 : 02/10/21(月) 23:30  -------------------------------------------------------------------------
   こんばんは。
関数で。
H2に=SUMIF(B:B,">=" & F2,C:C)-SUMIF(B:B,">" & G2,C:C)
後は下へコピー
では。
 ───────────────────────────────────────  ■題名 : Re:方法を伝授して下さい。  ■名前 : TAKA  ■日付 : 02/10/22(火) 9:00  -------------------------------------------------------------------------
   Hirofumiさん Ronさん
私の説明が不十分でも理解していただき、本当に有難う御座いました。

教えていただいた式を元に少し変えて 試してみます。

有難う御座いました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 237