循環参照を極める |
(5)循環参照で複数条件に合致するデータ数を求める 下準備: 1.メニューを「ツール」「オプション」と辿り、ダイアログボックスをだす。「計算方法」タブを選択。 2.「計算方法」タブを選択し「反復計算」にチェックをし、「最大反復回数」を100にして「OK」をクリック。 3.下図のようにB2に=IF(A1,A2+1,0)と入力する。 4.チェックボックスをワークシートに貼り付けて「コントロールの書式設定」から「リンクするセル」をA1にする。 |
【´・ω・`】:CountIf関数では設定できる条件の数はひとつなので60点以上の者の数を求めることはできるが60点以上70点未満の者の数を求めることはできない。そこでよくある手は多少、トリッキーだがSumProduct関数を使う手がよく用いられる。 (●`ε´●):こんな感じだ。セルE2に |
=SUMPRODUCT(((C2:C43)>=60)*((C2:C43)<70)) |
何て式を入力する。他には配列数式を使って |
{=SUM(((C2:C43)>=60)*((C2:C43)<70))} |
・・・とする。蛇足だが配列数式の{}は手入力しない。=SUM(((C2:C43)>=60)*((C2:C43)<70)) とセルに入力して確定時にShift+Ctrl+ENTERを同時に押下する。 |
【´・ω・`】:そして第三の手が循環参照による反復計算。SumProductや配列数式は質問掲示板でよく見かけるが循環参照はまだ珍しいと思う。下が循環参照による数式だ。 |
=IF(A1,IF(AND(INDIRECT("C" & $A$2)>=60,INDIRECT("C" & $A$2)<70),D2+1,D2),0) |
【´・ω・`】:これでチェックボックス「実行」にチェックをいれれば複数条件に合致するデータ数が求められるはずだ。 |
サンプルファイルはこちら:Ref_CountIfsをダウンロード |
(初出 2007/03/11)
中学の教務をしています。
くまぷ-さんの「マクロ初心者奮戦記」を手がかりに、エクセルマクロから一太郎マクロをコントロールする簡単なファイルマネージャーが完成しました。
「マクロ初心者奮戦記」を参考に作りました。大変感謝しております。
投稿情報: のものも | 2019年3 月 7日 (木曜日) 午後 10時54分
のものもさん、こんばんは。
>中学の教務をしています。
入試が終わって、新入生を迎える準備と時間割作成というところでしょうか?
息つく暇もありませんね。お仕事ご苦労様です。
>エクセルマクロから一太郎マクロをコントロールする簡単なファイルマネージャー。
どんな分掌で、どういう風に使うんでしょうかね?
ぜんぜん、想像がつきません。
>大変感謝しております。
何か使えるところが、あったらどんどん使ってください、遠慮なく。
投稿情報: くまぷー | 2019年3 月 8日 (金曜日) 午後 08時36分
くまぷーさん、ありがとうございます。
大抵の教務は学校の文書ファイルを大量に管理していると思います。中でも大切な文書は、保護者宛文書です。
一太郎はエクセルと同様のシートタブがついており、年度ごとの文書を保管するに大変優れています。また、罫線関係のショートカットキーが非常に強力で、現時点でもワードに対して大きなアドバンテージがあり、文書が手際よく作成できます。
今回、ファイルマネージャーで保護者宛文書を管理しようとしています。
ファイルマネージャーについて簡単に述べますと、
「エクセルの行事予定シートから行事名と実施日を関数で検索し、配布日、準備日の順に値を導く。準備日が近くなったら、エクセルマクロで一太郎マクロをコントロールして、一太郎ひな形文書に、実施日や配布日等を置換で記述させ、自動で文書を完成させる。」
というものです。
作成に当たり多くの難関がありましたが、くまぷーさんのaddsheetやsendkeysに対する苦言が大きなヒントとなりました。一太郎のマクロ全盛時代、copy命令はまだ黎明期だったことを考えると、自然と解決の糸口が見えてきました。ありがとうございます。
投稿情報: のものも | 2019年3 月 8日 (金曜日) 午後 10時54分