オンライン講座 質問と回答

無料・有料のオンライン講座で寄せられたメッセージの一部を紹介致します。

[11495]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2019-07-07 14:26:00 ほとさんからの投稿です。

小川先生

こんにちわ
先生の講義はわかりやくすてすらすら頭に入ってきます。
この調子で進めていきたいと思います。

[2]の回答を復習したとき、最後のfor next構文でお団子のとる範囲を間違えて最後の行を取りこぼしてしまいました。
間違いだということはすぐ理解できたのですが、
その時のマクロの実行結果が私の推測と違っていたので、質問させていただきました。私の推測では、F6に6が表示されると思ったのですが、実際はF7に表示されました。理由をお教えいただけますでしょうか。

復習で書いたマクロは以下のものとなります。
Sub countif_3()
Dim goukei

Dim gyo2
For gyo2 = 4 To 6
goukei = 0
Dim gyo
For gyo = 4 To 18
If Range(“c” & gyo).Value = Range(“e” & gyo2).Value Then
goukei = goukei + 1
End If
Next


Next
Range(“f” & gyo2) = goukei

End Sub

[ 続きを読む ]  返信件数:2件  [ 動画を見る] 

[11386]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2019-05-05 10:01:47 藤村英夫さんからの投稿です。

一回目に見たときに感動したのですが、土日だけ復習しているとすぐに忘れてしますので、思い切ってスマホを大型に買い替えて、ゴールデンウィーク明けからは、電車のなかでこの動画を通勤中に見るようにします。

ところで、質問ですが、ドットバリュー(.value)は入力しなくても、
今のところ支障なく作動するようですが、この先 発展編にすすむとまずいことはでてきますか? 書店で購入した本が、range(“A1”).value等の
入力の場合、ドットバリュー(.value)は打たなくても問題がないという記述があったので、今まで入力していません。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[11228]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2019-03-07 19:37:18 マサラさんからの投稿です。

マクロの実行に伴って変数の値が推移する。
講義中で行われていたように、変数の値を丁寧に追いかけることで理解につながりました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[11180]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2019-02-17 21:36:21 jinoseさんからの投稿です。

[感想]
最初は理解できなかった(for next構文の中にfor next構文)が、復習するにつれだんだんとわかってきた。リアルでの例えがわかりやすくて納得できました!

[質問]
countif関数で=COUNTIF(C:C,”=” & E4)をなっておりますが、第2引数に”=” & をつけるのはなぜでしょうか(E4だけで動くと思うのですが)?

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10826]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-12-22 15:32:30 ゲストさんからの投稿です。

小川先生
こんにちわ
[2]の回答を作ったのですが、このような形でもいいのでしょうか?
Sub mondai2()
Dim siso
Dim kanpyo
Dim nomimono
Dim gyo
For gyo = 4 To 18
If Range(“C” & gyo).Value = “しそ巻き無料” Then
siso = siso + 1
ElseIf Range(“C” & gyo).Value = “飲みもの無料” Then
nomimono = nomimono + 1
ElseIf Range(“C” & gyo).Value = “かんぴょう巻き無料” Then
kanpyo = kanpyo + 1
End If
Next
Range(“F4”).Value = siso
Range(“F5”).Value = nomimono
Range(“F6”).Value = kanpyo
End Sub

[ 続きを読む ]  返信件数:3件  [ 動画を見る] 

[10541]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-09-02 14:38:52 Matsumotoさんからの投稿です。

答えを見るまで自力では解くことができませんでした。
一気に難易度が上がった感覚があるのですが、
おそらく基礎編の理解が不十分だからなのだと思います。

先生の言葉にあったように、回答を鵜呑みにしてとにかく練習を繰り返そうと思います。フォローアップ講座を進めながら、同時並行で本編の復習を開始します。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10216]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-07-04 23:28:10 あおちゃんさんからの投稿です。

小川先生、何度も質問すみません。setステートメントと言うのは、どこの講座で出てきますか?ご紹介頂いたところまでまず勉強してから、質問すべきだなと思いました。しかし、時々setの変数が出てくるので、読んで理解したいのです。小川先生の講座のお陰で本当に仕事が捗り、仕事が楽しくなりました。ありがとうございます。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[10205]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-07-02 19:47:15 あおちゃんさんからの投稿です。

小川先生、こんにちは。
2月に基礎編を申し込んで、やっと基礎編フォローアップになりました。奥が深く大変為になります。すみません、教えて頂きたいのですが、出勤簿の精査をしていますが、人数が5.60にんいて、それを毎回一覧表に転記してから、画面と見比べてチェックしています。それぞれのブックを開いて、一覧表に転記すると言うマクロの講座はありますか?このブックを開く関数や変数の使い方が難しくて、さっぱりわかりません。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[9979]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-05-16 02:05:06 morimotoさんからの投稿です。

ふれあい広場の例えはほんとわかりやすい。初期値goukei=0と
goukei=goukei+1 どこにコードを書くかゆっくり考えればできそうです。
だめならどこかに入れてf9で1つ1つどうなるか検証ですね。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[9965]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-05-13 17:07:05 ゲストさんからの投稿です。

変数が複数出てくると途中で混乱してしまい、なかなかついていくのが難しいですが、ひとつづつ説明いただいているので構造的には理解できそうです!落ち着いて、構造を把握してひとつずつ検証するのと、トライアンドエラーの繰り返しが必要そうです

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[9931]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2018-05-06 21:38:56 ゲストさんからの投稿です。

お世話になります。

講義は有難いのに、私が吸収できません。
申し訳ございません。

講義動画、4分26秒の箇所で質問です。

C4から18までの「しそ巻き無料」の回数を数えたかったので
添付ファイルのような式を書きました。

すると、
エクセルシート名:キャンペーン名簿1のセルF4に
「1」という答えが出て、間違えました。

小川先生の回答は、

‘ If Range(“C4”).Value = “しそ巻き無料” Then の後が、
‘goukei = goukei + 1

になっています。

私が書いた式だと、
どういう意味になってしまうのでしょうか??

もしかして、
goukei = goukei + 1 の部分で、
「しそ巻き無料」の回数を累計させているのでしょうか??

ご指導、お願い致します。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[9249]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2017-12-19 23:04:53 受講生さんからの投稿です。

しそ巻きカウントの問題に、1年半ぶりに取り組みました。フォローアップで一番悩み、記憶に刻まれていたのがこの問題です。本当に、先生にも大変お世話になりました。今回私が書いたプログラムは以下のとおりです。

Sub rensyu1219_001()
'しそ巻きカウント

Dim gokei   'カウント数
Dim migi    ' カウント数を記入する場所の行位置の値
Dim hidari  ' 項目が書かれているリストの行位置の値
For migi = 4 To 6   'カウント数を記入する行位置範囲の指定
    gokei = 0       '一つループが終わったらgokeiを初期化する

    For hidari = 4 To 18        '一つの項目について該当したらgokeiに加算する
        If Range("c" & hidari).Value = Range("E" & migi).Value Then
            gokei = gokei + 1
        End If
        Range("F" & migi).Value = gokei  'この時点での加算結果を書き込む
    Next
Next
End Sub


正解と異なる点は、1項目のカウントが終了した時点で
合計値を書き込むタイミングです。
endIfで個別の行の判別を終えた後、nextで次の行へ移る前に
カウント値を書き込んでいます。
こうすると、1行ごとのカウント値が「見える化」し、
上書きを繰り返すことによって、最終的には正しいカウントが
書き込まれますね。

これは確信犯的にそうしたわけではなく、
「どこでカウント値を書き出すか」のタイミングにまだ迷いがあったため
nextで戻る前に置いてみただけなのです。
どこでgokeiを初期化するかで迷うのと似ていますね。

入れ子のnextから抜けるときにgokeiを記入し、初期化し、
それから次の行の項目に移動する、が正しい流れですね。

でも、1行ごとの結果をそのたびに書き出し、上書きする仕組みは
それ自体面白いし、使える局面があるかもと思ったので、
ご紹介しました。

gooska


[ 続きを読む ]  返信件数:2件  [ 動画を見る] 

[9185]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2017-12-07 16:41:34 ガラパゴスタディー吉川さんからの投稿です。

変数が増えると、何を入れたいのかがわかりづらくなってくるので、
今回の問題のようなステップで、一旦”しそ巻き無料”のように文字をいれてある程度形にしてからのセルを指定した方が間違いにくいと思いました。


[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[9074]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2017-10-18 00:35:52 受講生さんからの投稿です。

解説の前半で、goukei=0 ・・・ goukei=goukei+1 とありますが、前半だけの話で完結した場合、最初の「goukei=0」は必要でしょうか?
たとえば、goukei=0 を書かなくても、goukei=0+1 ということになり、結果的には同じことにはなると思いますが。

後半では、goukeiを0にしておかないと一旦クリアにならないので必要だというのは分かりました。

よろしくお願いいたします。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[8829]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2017-09-05 21:20:18 受講生さんからの投稿です。

変数がたくさん出てきて整理するのが大変だけど
学びがいがあります。

何度も見て、理解していきます。
どんどんかくぞ!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[8149]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2017-05-22 13:37:42 受講生さんからの投稿です。

Sub nantoka()
Dim goukei
Dim gyo
Dim migi

For migi = 4 To 6
goukei = 0
For gyo = 4 To 18
If Range(“C” & gyo).Value = Range(“E” & migi) Then
goukei = goukei + 1

End If
Next
Range(“F” & migi).Value = goukei
Next
End Sub

お世話になります。
Range(“F” & migi).Value = goukei
のプログラムを書くときに、
NextとNextの間に書くことが、
自力で書くときに迷います。
homeshift↓↓↓で選択するとき
最初のForNext構文が完成させたときに、
出力先を書くことで、別物と判断している
みたいで、ワンポイントアドバイス
よろしくおねがいします。

[ 続きを読む ]  返信件数:3件  [ 動画を見る] 

[6137]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2016-03-26 20:53:37 受講生さんからの投稿です。

ちょっと振り返りました。
しそ巻きカウント(と私が名づけました)は、
migiとhidaと2種類のカウント変数が同時に動くあたり、
今までの学習だけでは、なかなか理解しにくい部分だと思います。
記憶がとぎれず連日学習している私でもここが難しかったので、
仕事の合間に間隔をあけながら学習される方ならば、
「あれっ急に講座が難しくなった、どうしよう?」
と感じるヤマではないかと・・・(;´・ω・)

私が自分の理解を深めるために思いついた方法、
それは、時計の2つの針です。
長針choは、分刻みの for cho=1 to 60 のカウンタ変数。
短針tanは、時間刻みの、for tan= 1 to 12 のカウンタ変数。
choのカウンタが60になると、
tan=tan+1となって短針が動き、
next → fun=0 となり、
ふたたび長針が0から分を刻んで行くわけです。 
こう考えると、短針が動くと同時に長針のカウンタが初期化される動きも
分かりやすくなります。

こういうイメージでF8を動かし、特に変数の入れ替わりや行の移動などを
1行ずつ目で追いながら、マウスオンで確認する作業が大事だなと。

作業レベルでいえば、ハナコの応用として、
集計行(しそ巻き動画のhida行)の、つまり2個目のnextの箱を作ると
同時に、カウンタ初期化(変数=0 の行を、箱の最初に書き加える)、
という作業も連動させて行うと解釈し、覚えてしまって良いのではないかと
思いました。 いかがでしょうか(n*´ω`*n)
by gooska

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[6112]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2016-03-24 20:37:33 受講生さんからの投稿です。

小川先生、
わかりやすいたとえ話をありがとうございます。

現実にカウンターで計測する時のことを考えると、直前に初期化するのが自然ですね。

私がnextの前に初期化を入れてみたのは、nextが入れ子になっているとステップが複雑なので、
どこで初期化されるのか慣れない私には まだ分かりにくかったからです。
集計表に書き込んだ直後であれば、カウンタ変数の役目はいったん終わるわけですから、そこで0にしてしまおうかと。
メリットは、初心者にわかりやすい場所かなと思えたことです。

通常の、新しいカウントを始める直前での初期化、メリットは通常のFORNEXT構文での位置と同じなので、
時間が経って自分で振り返ったり他人が見た場合、理解しにくい。
同様に、next前の初期化はたぶんあまり他の人がそう書かないので、わかりにくい。

自分が今思いつけるメリッ・トデメリットはこのくらいしかありません。
もっとForNextの経験を積んだら思いつくかも。
by gooska

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[6048]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2016-03-23 15:01:56 受講生さんからの投稿です。

カウントの初期化についてですが、合計数を記述した後に初期化してから次のNextに行くように
書いても問題ないでしょうか。一応試してみたら同じ数値は得られましたが。

     Range("F" & syurui).Value = gokei
        gokei = 0
    Next

gooska

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[5496]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-12-23 18:40:35 古川智之さんからの投稿です。

この出現回数の数え方の説明、めちゃくちゃわかりやすいです!!感動しました!

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[5411]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-12-09 22:19:48 受講生さんからの投稿です。

小川様 お世話になっております。勉強方法について質問させてください。
1.動画を見る前に問題を自分で考えてから解いてみて、動画をみる。
2.動画を見てから自分で同じように書いて練習する。
私は、1でやるとまったく想像力がないので。。手が止まってしまいやる気を失ってしまいます。
2の方法でも上達するでしょうか。それともおすすめはやはり1の方法でしょうか。
個人個人で最適な勉強方法は違うと思いますが。。先生のご意見を教えていただけましたら幸いです。
あと、数学や算数がまったく得意でないのですが。。それにマクロの取得は関係ありますか?
得意不得意関係なくある程度のところまではマクロは書けるようになりますか。
動画のおかげで確実に上達しているとは思うのですが、不安な気持ちです。励ましてください!

どうぞよろしくお願いいたします。

[ 続きを読む ]  返信件数:3件  [ 動画を見る] 

[4996]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-09-03 00:06:36 仲村 修治さんからの投稿です。

多くの方が書いていますが、シンプルな書き方が参考になりました。

Sub sisomaki()
    Dim siso
    Dim nomi
    Dim kanpyo
    Dim gyo
    For gyo = 4 To 33
        If Range("C" & gyo).Value = "しそ巻き無料" Then
            siso = siso + 1
        ElseIf Range("C" & gyo).Value = "飲みもの無料" Then
            nomi = nomi + 1
        ElseIf Range("C" & gyo).Value = "かんぴょう巻き無料" Then
            kanpyo = kanpyo + 1
        End If
    Next
    Range("F4").Value = siso
    Range("F5").Value = nomi
    Range("F6").Value = kanpyo
End Sub

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[4672]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-07-11 23:51:24 鈴木優子さんからの投稿です。

自力で書いた時は 直前の問題まで使っていた instrを使っていました(^^ゞ
応用力が足りませんね。。。
回答の動画をみて あんなにあっさりできるなんて びっくりでした。

Sub rensyu2()
    Dim count1
    Dim count2
    Dim count3
    Dim gyo
    For gyo = 4 To 33
        If (InStr(Range("C" & gyo).Value, "しそ巻き無料")) > 0 Then
            count1 = count1 + 1
        ElseIf (InStr(Range("C" & gyo).Value, "飲みもの無料")) > 0 Then
                count2 = count2 + 1
        ElseIf (InStr(Range("C" & gyo).Value, "かんぴょう巻き無料")) > 0 Then
                count3 = count3 + 1
        Else
        
        End If
        

    Next
        Range("F4").Value = count1
        Range("F5").Value = count2
        Range("F6").Value = count3
    
End Sub

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[3772]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-02-08 11:13:15 受講生さんからの投稿です。

こんにちは。
最初に自力でやった時は、For~Next構文を1回しか使わずにやりました。

Sub count2()
Dim siso
Dim drink
Dim kanpyo
Dim gyo

    For gyo = 4 To 33
        If Range("C" & gyo).Value = Range("E4").Value Then
            siso = siso + 1
            
        ElseIf Range("C" & gyo).Value = "Range("E5").Value Then
            drink = drink + 1
            
        ElseIf Range("C" & gyo).Value = Range("E6").Value Then
            kanpyo = kanpyo + 1
            
        End If

        Range("F4").Value = siso
        Range("F5").Value = drink
        Range("F6").Value = kanpyo
    Next
   
End Sub


最初に解説動画を拝見した時は、
「For~Next構文の中に、さらにFor~Next構文が入ると言うことだろか?」
と考えました。
そこで、migiとgyoの値に注目しながら、紙に書いてみて確認しました。
最初は、migi=4、gyo=4からスタートし、gyoの1回目のループが終わった地点では、migi= 4、gyo= 33で、
次にRange(“F” & migi).Value = goukeiをした後、migi=5となり、migiの1回目のループが終わり、
2回目のループは、migi=5、gyo=4から始まるのだと確認しました。
何だか、すごく手間のかかることをしていますね(^_^;)

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[3721]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-02-01 19:02:42 watanbe daichiさんからの投稿です。

いつもありがとうございます。
3回くらい書いてみるとなんとなく、形が見えてきました。
変数は、使用する数と場所を要注意だと解りました。
このバランスで、いろんな事もシンプルに考えることができました。

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[3720]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2015-02-01 09:35:54 佐藤 あゆむさんからの投稿です。

前回の動画の知識も使いつつ、簡素にIfThenElseを使って自分で書いてから動画を見るとやはり学ぶところがありました.゚+.(o´∀`o)゚+.゚

[ 続きを読む ]  返信件数:1件  [ 動画を見る] 

[3383]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2014-12-03 15:58:20 井上 聡さんからの投稿です。

Sub hindo() ‘全く駄目です。単純に変数を3つ作成し、3回ループしてみました。
Dim siso
Dim count
Dim gyou
Dim kanpyou
Dim nomimono
For gyou = 4 To 33
siso = Range(“C” & gyou).Value
If siso = “しそ巻き無料” Then
count = count + 1
End If
Range(“F4”).Value = count
Next
Dim count1
For gyou = 4 To 33
siso = Range(“C” & gyou).Value
If kanpyou = “かんぴょう巻き無料” Then
count1 = count1 + 1
End If
Range(“F5”).Value = count1
Next
Dim count2
For gyou = 4 To 33
siso = Range(“C” & gyou).Value
If nomimono = “飲み物無料” Then
count2 = count2 + 1
End If
Range(“F6”).Value = count2
Next

End Sub
なぜ変数は、最初のFor~Nextの中でしかカウントされないのでしょうか。
カウントされない理由はなぜですか。?

[ 続きを読む ]  返信件数:3件  [ 動画を見る] 

[2551]出現回数を数える。CountIf関数がやっていることをマクロで書くと?

2014-09-24 21:32:26 受講生さんからの投稿です。

小川先生

>>あと、上級DVDで紹介している「配列」を使うと以下のとおり。
>>出力部分については考えてみてください。
とのことでしたので、一部修正し、出力部分を追加して書いてみました。
修正箇所があれば教えて下さい。

Sub hairetu()
Dim gyo As Long
Dim goukei(2) As Long
goukei(0) = 0
goukei(1) = 0
goukei(2) = 0
For gyo = 4 To 33
Select Case Range(“C” & gyo).Value
  Case Range(“E4”).Value
  goukei(0) = goukei(0) + 1
  Case Range(“E5”).Value
  goukei(1) = goukei(1) + 1
  Case Range(“E6”).Value
  goukei(2) = goukei(2) + 1
End Select
Next
For gyo = 4 To 6
Cells(gyo, “F”).Value = goukei(gyo – 4)
Next
End Sub

[ 続きを読む ]  返信件数:5件  [ 動画を見る] 


各講座ごとのメッセージを見る場合はこちら

 

まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ