[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで他のファイル参照 COUNTIF関数』(熱血マン)
はじめまして。よろしくお願いします。
VBAにて他のファイルを参照し、COUNTIF関数である文字列をカウントしたいです。
今は、セルに1つずつ数式が入力してあり1000行以上のデータが入っています。最初は数式でいいやと思っていたのですが、どんどんデータを入力していくうちにパソコンがどんどん重くなってきました。そこで、VBAでやってみたいと思うのですが、無知な為どなたか教えてください。これを機に少しずつ勉強したいです。
まず、D列に製品名が入っています。カウントしたいのは切り替え回数で他のがいるに入っています。他のファイルには10年ほどのデータが入っており指定期間のカウントをしています。
=IF($D27="","",COUNTIFS([データベース.xlsm]生産データ!$B:$B,">="&年間生産データ!$I$23,[データベース.xlsm]生産データ!$P:$P,"1",[データベース.xlsm]生産データ!$B:$B,"<="&$T$24,[データベース.xlsm]生産データ!$P:$P,"1",[データベース.xlsm]生産データ!$F:$F,D27))
といった感じの数式がC列に入っています。
データベースの生産データのB列は日付、
年間生産データのI23は指定した開始日
データベースの生産データのP列は切り替え回数
T24は指定した終了日
データベースの生産データのF列はメインファイルのD列に入っている製品名
という感じです。
これをVBAでD列に文字が入力されたらC列にカウントされた数字が
入力されるというのを教えて頂きたいです。
ネットで検索してみたのですが
Sub Sample02_3()
Dim cnt As Long cnt = WorksheetFunction.CountIf(Range("A1:A11"), "A001") MsgBox "A001は、" & cnt & "件です。", vbInformation End Sub といったものがあり、他のファイル参照方法などもよく分からず ここで質問させていただきました。
よろしくお願いします。
< 使用 Excel:unknown、使用 OS:unknown >
普通に他ブックのセルに書き込んだり読み込むのと同じ要領。 (基本) 2021/04/02(金) 12:08
>最初は数式でいいやと思っていたのですが、 >どんどんデータを入力していくうちにパソコンがどんどん重くなってきました。 >そこで、VBAでやってみたいと思うのです
1.この意図は、これまで算出した数式の結果をぜんぶ値に変えて、 今後は「D列に文字が入力された」都度、そのセルだけ数値を計算してC列に出す、と言うことですか?
2.ところで、ご提示の数式に条件のダブりがある様ですが、間違いはないですか?
=IF($D27="","",COUNTIFS( [データベース.xlsm]生産データ!$B:$B,">="&年間生産データ!$I$23, ここ → [データベース.xlsm]生産データ!$P:$P,"1", [データベース.xlsm]生産データ!$B:$B,"<="&$T$24, ここ → [データベース.xlsm]生産データ!$P:$P,"1", [データベース.xlsm]生産データ!$F:$F,D27))
(半平太) 2021/04/02(金) 19:29
1ですが、その通りです。
2ですが、ダブってますが間違いではないです。P列に入力されてる日付を判定しています。
例えば2020/01/01〜2020/12/31までという感じです。
(熱血マン) 2021/04/02(金) 21:42
>1ですが、その通りです。 すると、生産データのデータが修正されたり、追加になったりしても 過去算出した値は不変のままですが、それでいいんですね?
>2ですが、ダブってますが間違いではないです。P列に入力されてる日付を判定しています。 >例えば2020/01/01〜2020/12/31までという感じです。 そういう場合、普通は「間違い」と言ってしまうんですが、 それが刺激的な表現と言う事なら、「無駄」と呼ぶことにはなります。
いずれにしても一つは削除される運命なんですが、納得行かないですか?
(半平太) 2021/04/02(金) 23:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.