11/07/2022

Excel。えっ!マクロが実行できない!セキュリティリスクが表示されました。【SecurityRisk】

Excel。えっ!マクロが実行できない!セキュリティリスクが表示されました。

<Excel VBA:マクロ:セキュリティリスク対応>

日頃、マクロを実行していたファイル。

開くと、「セキュリティリスク」が表示されてしまい、マクロをつかうことができなくなりました。


どのように対応したら、マクロを使うことができるのでしょうか。


一度、Excelを閉じて、そのファイルの上で右クリックをします。

そして、プロパティをクリックします。


ファイルのプロパティダイアログボックスが表示されます。

セキュリティの「許可をする」にチェックマークをオンとするだけで、マクロを使えるようになります。


あとは、OKボタンをクリックして、再度ファイルを開きます。


「セキュリティの警告」が表示されるので、「コンテンツの有効化」をクリックします。


通常通り、マクロを使うことができます。

11/06/2022

Excel。2022/10/24-10/30にISNA関数など紹介したFacebookページのコメントです。【Trivia】

Excel。2022/10/24-10/30にISNA関数など紹介したFacebookページのコメントです。

<Facebookページ>

Facebookページに書いた、Excelの豆知識(Trivia)です。

10月24日

Excel。

ISFORMULA関数

読み方は、イズフォーミュラーで、セルに数式が含まれている場合にTRUEを返す



10月25日

Excel。

ISLOGICAL関数

読み方は、イズロジカルで、対象が論理値の場合にTRUEを返す



10月26日

Excel。

ISNA関数

読み方は、イズエヌエーで、対象がエラー値の#N/Aの場合にTRUEを返す



10月27日

Excel。

ISNONTEXT関数

読み方は、イズノンテキストで、対象が文字列でない場合にTRUEを返す



10月28日

Excel。

ISNUMBER関数

読み方は、イズナンバーで、対象が数値の場合にTRUEを返す



10月29日

Excel。

ISODD関数

読み方は、イズオッドで、対象が奇数の場合にTRUEを返す



10月30日

Excel。

ISOWEEKNUM関数

読み方は、アイエスオーウィークナムで、ISO週番号を算出する

11/05/2022

Excel。VBA。データを読み込んだら、数値に円がついてるけど合計させたい【Val】

Excel。VBA。データを読み込んだら、数値に円がついてるけど合計させたい

<Excel VBA:Val関数>

データを読み込んだら、次のように、数値に「円」がついていました。


SUM関数をつかって、合計値を算出したくても、文字型データの為、エラーが表示されてしまいます。


「円」を削除する。

または、削除した後に、表示形式のユーザー定義をつかって、「円」を表示すれば、数値型になるので、合計値を算出することはできます。

ただ、少し処理が面倒ですね。


そこで、Excel VBAでプログラムをつくることで、「円」がついた文字型であっても、サクッと合計値を算出することができます。


次のように、プログラムをつくってみました。

Sub 円付き数値()

    Dim total As Long

    Dim i As Long

    

    For i = 2 To 6

        total = total + Val(Cells(i, "b"))

    Next


    Range("b7").Value = total

    Range("b7").NumberFormat = "#,##0""円"""

End Sub


まずは実行して確認してみます。


B7には、合計値を算出してあり、数式バーを確認すると数値が入力されていることがわかります。


B7には、「円」がついていますので、表示形式のユーザー定義を設定してある状態ということもわかります。


それでは、プログラム文を確認しておきましょう。


最初はお馴染みの変数宣言です。

Dim total As Long

Dim i As Long


For to Next文で数値を合計していきます。

For i = 2 To 6

    total = total + Val(Cells(i, "b"))

Next


ポイントは、「Val(Cells(i, "b"))」

SUM関数では文字型だったので、算出することはできません。


しかし、Excel VBAにある「Val関数」をつかうことで、文字型であっても、そのセル内の数値と認識できる部分があれば、数値として算出することができるという、優れた関数があります。


最後の2行。

Range("b7").Value = total

Range("b7").NumberFormat = "#,##0""円"""


変数のtotalに合計値が集計されていますので、それをB7に表示させています。

あとは、算出した値に「円」を最後につけたいので、表示形式を設定してみました。


このように、Excelでは面倒なことも、Excel VBAをつかってプログラムをつくることで解決できる場合もありますので、色々試してみるといいかもしれませんね。

11/04/2022

Excel。OR条件(または)で件数を算出するには、DCOUNTA関数が便利です。【DCOUNTA】

Excel。OR条件(または)で件数を算出するには、DCOUNTA関数が便利です。

<DCOUNTA関数>

複数条件で文字列の件数を算出するには、COUNTIFS関数をつかえばいいわけですが、同じフィールド内に条件がある場合。

つまり、「OR条件」だと、COUNTIFS関数では算出することができません。


D13には、次の数式を設定してますが、「0」と算出されてしまいました。

=COUNTIFS(C2:C11,"新宿",C2:C11,"渋谷")


OR条件で件数を算出したい時には、次のように、COUNTIF関数で算出した結果を和算する必要があります。


=COUNTIF(C2:C11,"新宿")+COUNTIF(C2:C11,"渋谷")


算出はできましたが、これでは、条件が増えてしまうと、数式自体の可動性が悪化することで、ミスや修正に影響が出る可能性が高くなります。


そこで、条件を別途用意する必要はありますが、DCOUNTA関数をつかうことで、楽に算出することができます。


G5の数式は、

=DCOUNTA(A1:D11,C1,F1:F3)

これだけで、算出することができます。


引数を確認しておきましょう。


最初の引数は、データベースで、見出し行も含めた表全体になりますので「A1:D11」


2番目の引数は、フィールドで、店舗名が対象になるので、条件の見出し名を設定するわけですから「C1」。


3番目の引数は、条件なので、「F1:F3」と設定して完成ですね。

11/03/2022

Excel。高校数学でお馴染み。コサインを算出するCOS関数。【COS】

Excel。高校数学でお馴染み。コサインを算出するCOS関数。

<関数辞典:COS関数>

COS関数

読み方: コサイン

分類: 数学/三角 

COS関数


COS(数値)

角度の余弦(コサイン)を算出します

11/02/2022

Excel。区切りごとに連番を簡単に設定するにはどうしたらいいの【Serial number】

Excel。区切りごとに連番を簡単に設定するにはどうしたらいいの

<IF+SUM関数>

カテゴリごととか、区切りごとに連番を設定したい場合、オートフィルをつかってもいいのですが、区切りを確認しながら設定するのは、面倒です。


例えば、次の表をつかって、確認していきます。


C列のカテゴリNOは、B列のカテゴリが変わると、「1」から連番を振り直すようにしてあります。


連番は、オートフィルの連続コピーをつかうことで、設定することができます。

ただ、カテゴリがわかるなど、区切りがある場合には、単純な作業でも、面倒な作業となってしまうわけです。


そこで、C2に、次のような数式を設定することで、対応することができます。

=IF(B1=B2,SUM(C1,1),1)


設定したら、オートフィルで数式をコピーするだけです。


IF関数とSUM関数をネストしただけの数式ですが、この数式で対応することができます。


それでは、数式の引数を確認しておきましょう。

論理式は、「B1=B2」。

上のセルと同じかどうかを確認します。


値が真の場合は、「上のセルの内容と同じ」ということですから、上の値に+1するので、「SUM(C1,1)」と設定します。


SUM関数で「,(カンマ)」をつかった引数はあまり目にしないかもしれませんが、SUM(1,1)とすれば「2」と算出されます。


つまり「1+1」と同じ意味の数式です。

わかりにくければ、SUM(C1+1)としてもOKです。


値が偽の場合。

すなわち、カテゴリが変わった場合なので、連番を「1」に戻す必要がありますので、「1」と設定します。


このように、簡単な関数をつかった数式を用意するだけでも、作業効率を改善できるかもしれませんね。


なお、カテゴリを並べ替えても、カテゴリの区切りごとに連番を設定することができます。

 


11/01/2022

Excel。IF関数もスピル機能によって数式が変わってしまのです。【Spill】

Excel。IF関数もスピル機能によって数式が変わってしまのです。

<IF関数>

IF関数は、関数を勉強する入口の関数です。

ただ、スピル機能により、今までのような数式と少々変わってしまいました。


例えば、平均以上だったら、○。そうでなければ、×と判断させる場合です。


売上高の平均値は、E12に算出してあります。

F2には、IF関数の数式を設定してありますが、スピル機能の登場で、次のような数式で算出することができるようになりました。


=IF(E2:E11>=E12,"○","×")


今までならば、

=IF(E2>=$E$12,"○","×")

という数式で、平均は絶対参照にしなければなりませんでした。

また、オートフィルで数式をコピーする必要もあります。


ところが、スピル機能の登場で、絶対参照もオートフィルで数式をコピーしなくても算出することができるようになりました。