目次
エクセルVBAを使って、こんなことをしたいのではありませんか? FORループ を作成する方法をご紹介しました。 FORループ を数式で表現しています。
Excelでコーディングする方法を知っている場合 ブイビーエー でコードを書いたことがないのであれば、あなたは恵まれています🙂。 ブイビーエー またはExcelワークブックをExcelから解放したい。 ブイビーエー を作成する場合、ほとんどの場合、既成概念にとらわれない発想で、シンプルな ループ .
作業用ファイルのダウンロード
下記リンクから作業ファイルをダウンロードしてください。
数式を使ったループの作成.xlsxエクセルで数式を使ってFORループを作る3つの例
ここでは、デモを行います。 3 を作る例です。 FORループ では、具体的な例を見てみましょう。
1.組合せ関数を適用してExcelでFORループを作成する
さて、この例を書くことを後押ししてくれている背景をお知らせします。
私はUdemyでいくつかのコースの著者をしています。 そのうちの1つは、Excelの条件付き書式に関するコースです。 コースのタイトルは次の通りです。 7つの実践問題で学ぶExcelの条件付き書式。 [ このコースに無料でアクセスするには、ここをクリックしてください。 ].
講座のディスカッションボードで、ある学生から以下のような質問を受けました[スクリーンショット画像]。
Udemyの受講生からの質問です。
上記の問題をよく読んで、解いてみてください・・・。
上記の問題を解決するためのステップ。
ここでは オア , オフセット , マックス , ミニ そして 列 をExcel Formulaで作成することができます。 FORループ .
- まず、新しいワークブックを開き、上記の値を1つずつワークシートに入力します[セルから開始]。 C5 ].
- 次に、範囲全体を選択します。 C5:C34 ].
- 3つ目は、から。 ホーム リボン>> をクリックします。 条件付き書式設定 コマンドを使用します。
- 最後に 新ルール オプションをドロップダウンから選択します。
現時点では 新しい書式ルール のダイアログボックスが表示されます。
- さて、その中で ルールの種類を選択する ウィンドウズ>> 選択 数式を使用して、どのセルをフォーマットするかを決定する オプションを使用します。
- そして、その中で この式が真である場合の値のフォーマット フィールドに、この数式を入力してください。
=or(offset(c5,max(row(c$5)-row(c5)+3,0),0,min(row(c5)-row(c$5)+1,4),1)-offset(c5,max(row($c$5)-row(c5),-3),0,min(row(c5)-row(c$5)+1,4),1)=3))
- をクリックして、適切なフォーマットの種類を選択します。 フォーマット... ボタンをクリックすると、ダイアログボックスが表示されます。
このとき、ダイアログボックス セルのフォーマット が表示されます。
- では、その中から 塗りつぶし を選択します。 ライトブルー の背景を見ることができます。 また 試料 瞬時に この場合、任意のものを選んでみてください。 ライト の色が濃いと入力したデータが隠れてしまう可能性があるため、その場合は 文字色 .
- 次に よっしゃー をクリックし、フォーメーションを適用します。
- その後で よっしゃー について 新しい書式ルール ダイアログボックスが表示されます。 ここでは、サンプルを即座に プレビュー ボックスを使用します。
最後に、フォーマットされた数字を取得します。
上記の問題を解くためのアルゴリズムを紹介しよう。
- ここでは、アルゴリズムを簡単に理解してもらうために、2つの参照セルを使って全体を説明します:セル C11 と C17 .細胞内 C11 と C17 の場合、その値は 10 と 20 Excelの数式に慣れている方なら、このような匂いを感じられると思います。 オフセット という関数があります。 オフセット 関数は、参照点で動作します。
- ここで、セル範囲の値を取得することを想像してください。 C8:C11 & C11:C14 そして C14:C17 & C17: C20 リファレンスセルを横に並べます。 C11 と C17 を合計して取っています。 7 のセルを参照セルの周りに置くと、次のような想像図が得られます。 最初の部分から、画像からパターンを見つけることができます。 C9-C12=3 , C10-C13=3 しかし、第2部では、そのようなパターンはありません。
- では、上記のパターンを意識してアルゴリズムを構築してみましょう。 共通の数式を構築する前に、セルに対してどのような数式になるかを示しておきます。 C11 と C17 というように、共通化するように数式を修正します。 基準となるポイント(例えば C11 または C17 )の合計を取ることにする。 7 その周囲にあるセル(基準点を含む)を並べて配列を作り、その配列の差のいずれかが 3 参照セルが 真 を評価しました。
- ここでは、それを簡単にできるように オフセット として機能します。 オフセット 関数は配列を返す。 セル参照と言う C11 のように、数式を書くことができます。 =or(offset(c11, 0, 0, 4, 1)-offset(c11, -3, 0, 4, 1)=3)とする。 この式は何を返すのでしょうか? この式の最初のオフセット関数は、配列を返します。 {10; 11; 12; 15} を、2番目のオフセット関数は配列 {5; 8; 9; 10} そして、あなたは知っている {10; 11; 12; 15} - {5; 8; 9; 10} = {10-5; 11-8; 12-9; 15-10} = {5; 3; 3; 5} この配列を論理的にテストすると =3 とすると、Excelは内部でこのように計算します。 {5=3; 3=3; 5=3} = {偽;真;真;偽}とする。 .その時 オア 関数がこの配列に適用されます。 OR({False; True; False; True}) を取得します。 真 だからセル C11 は、返された値として真値を取得します。
- さて、このアルゴリズムがどのように動作するか、全体のコンセプトは理解できたと思います。 しかし、問題があります。 この式は、セル C8 上記セル C8 があります。 3 しかし、セルについては C5、C6。 と C7 そのため、これらのセルに対して数式を修正する必要があります。
- では、セルについて C5 まで C7 を考慮しない式にしたい。 3 例えば、セル C6 のような数式にはなりません。 C11 : =or(offset(c11, 0, 0, 4, 1)-offset(c11, -3, 0, 4, 1)=3)とする。 .
- ここで、セルについて C5 というような式になります。 or(オフセット(c5, 3, 0, 1, 1)-offset(c5, 0, 0, 1, 1)=3) .
- 次に、セルについて C6 というような式になります。 or(offset(c6, 2, 0, 2, 1)-offset(c6, -1, 0, 2, 1)=3)) .
- その後、セル用 C7 というような式になります。 or(offset(c7, 1, 0, 3, 1)-offset(c7, -2, 0, 3, 1)=3)) .
- 再び、セルについて C8 というような式になります。 or(offset(c8, 0, 0, 4, 1)-offset(c8,-3, 0, 4, 1)=3)) ; [これが一般式]である。
- 次に、セルについて C9 というような式になります。 or(offset(c9, 0, 0, 4, 1)-offset(c9,-3, 0, 4, 1)=3)) ; [これが一般式]である。
- 最後に、上記の式からいくつかのパターンを見つけることができますか? 最初の オフセット 関数の行数引数が 3 まで 0 から、高さ方向の引数が増えました。 1 まで 4 .第二 オフセット 関数の行数引数が 0 まで -3 と高さ方向の議論が増えました。 1 まで 4 .
- まず、第一に オフセット 関数の行の引数は、このように変更されます。 max(row(c$5)-row(c5)+3,0)
- 第二に、第二 オフセット 関数の行の引数は、このように変更されます。 max(row(c$5)-row(c5),-3)
- 第三に、第一 オフセット 関数の height 引数はこのように変更されます。 min(行(c5)-行(c$5)+1,4)
- 第四に、第二 オフセット 関数の height 引数はこのように変更されます。 min(行(c5)-行(c$5)+1,4)
- さて、上記の修正を理解してください。 これらはそれほど難しいことではありません。 これらはすべて よ として修正を行っています。 FOR LOOP Excel VBAのうち、Excel Formulasで構築しています。
- で、一般的な数式がセルに対してどのように機能するかがわかったと思います。 C5:C34 .
Excelのループの話をしましたが、これはその典型例です。 7 のセルに働きかけ、特定の値を見つけ出す。
2.ExcelでIF & OR関数を使用してFORループを作成する
この例では、セルに値が含まれているかどうかをチェックしたいとします。 さらに、エクセルVBAで FORループ を使えば簡単にできますが、ここではExcelの数式を使ってやってみます。
今なら その イフ であり、また オア をExcel Formulaとして作成することができます。 FORループ さらに、この数式は好みに応じて変更することができます。 以下にその手順を示します。
ステップス
- まず、別のセルを選択する必要があります E5 を表示させたいところ。 ステータス .
- 次に、対応する数式を E5 のセルがあります。
=IF(OR(B5="",C5="",D5=""),"Info Missing","Done")
- 続いて、 を押します。 エンタメ をクリックすると結果が表示されます。
フォーミュラ・ブレークダウン
ここでは オア 関数が返す 真 となった場合、そのロジックは 真 .
- まず最初に。 B5="" は 第1回 ロジックで、セルが B5 が何らかの値を含んでいるかどうか。
- 2つ目は C5="" は 第2回 ロジックで、セルが C5 が何らかの値を含んでいるかどうか。
- 3つ目。 D5="" は 3位 ロジックを実行します。 同様に、このロジックはセルが D5 が何らかの値を含んでいるかどうか。
では、その イフ 関数は、与えられた条件を満たす結果を返します。
- の時は オア 関数が与える 真 が表示されます。 情報欠落 「として ステータス .そうでない場合は、" 完了 " としています。 ステータス .
- その後、ドラッグして フィルハンドル へのアイコン オートフィル 残りのセルの対応するデータ E6:E13 . または、ダブルクリックで フィルハンドル アイコンを表示します。
最後に、すべての結果を得ることができます。
3.SUMIFS関数を使ってExcelでFORループを作成する
例えば、ある人の請求書を合計して作りたいとします。 そのような場合には FORループ をExcelの計算式を使って表示します。 SUMIFS関数 を作成します。 FORループ その手順は以下のとおりです。
ステップス
- まず、別のセルを選択する必要があります F7 を表示させたいところ。 ステータス .
- 次に、対応する数式を F7 のセルがあります。
=sumifs($c$5:$c$13,$b$5:$b$13,e7)です。
- 続いて、 を押します。 エンタメ をクリックすると結果が表示されます。
フォーミュラ・ブレークダウン
- これです。 C$5:$C$13 は、その元となるデータ範囲です。 スミフ 関数は合計を行います。
- それから。 B$5:$B$13 は、どこからどこまでのデータ範囲なのか スミフ 関数は、与えられた条件をチェックします。
- 最後に E7 が基準です。
- で、その スミフ の支払いを追加する関数です。 E7 セルの値です。
- その後、ドラッグして フィルハンドル アイコンをクリックすると、残りのセルに対応するデータがオートフィルされます。 F8:F10 .
最後に、結果が出ます。
結論
本記事では、以下の内容を説明しました。 3 適例 FORループ をExcelで数式を使って入力することができます。 当社のウェブサイトをご覧ください。 Exceldemy ご意見、ご感想、お問い合わせは、以下のコメント欄にご記入ください。