VBAの勉強を始めてみた

VBA以外の話題もあるよ(笑)

EXCEL表をTableタグに変換する 其の参(文字の水平位置を反映する)

先日、ブログのデザインテーマを「Bordeaux」から「Natural」へ変更した際、「Bordeaux」ではデフォルトでTableの見出しの文字が中央揃えだったのに対し、「Natural」では見出しも含めてすべて左揃えとなってしまい、過去記事が意図しないレイアウトになってしまいました(注意して見ないと分からないレベルですが)。なので、デザインテーマによってTable内の文字位置が変わってしまわないように、見出しも含めてインラインで固定してしまおう!と思ったのが今回の記事のきっかけです。
「其の弐」からの変更点は、文字の水平位置は、セルごとの位置をそのままTableに反映するという点です。水平位置が指定されていないセルは「指定無し」をそのまま反映します。その場合、文字の水平位置はブログテーマのCSSに従います。

下のような表を今回のマクロでTableに変換し

f:id:kouten0430:20180217104237j:plain

 

ブログに貼り付けるとこんな感じです。

Test Test Test Test
Test Test Test Test
Test Test Test Test
Test Test Test Test
Test Test Test Test
Test Test Test Test
Test Test Test Test
Test Test Test Test
Test Test Test Test

 

マクロに実装している機能と、していない機能、その理由をまとめると次のとおりです。

 

以下はブログテーマのCSSで自動的に指定されるのでマクロに実装していません。

  • Tableの罫線
  • 見出しの背景色

 

以下は「見たまま編集」モードで変更できるのでマクロに実装していません。

  • 文字の大きさ
  • 文字の色
  • 文字の太さ
  • Tableの枠幅

 

以下は「見たまま編集」モードで変更できないのでマクロに実装しています。

  • 見出しの有り、無し
  • 文字の水平位置(今回の変更点)

 

以下は「見たまま編集」モードで変更できないが、個人的に需要がないのでマクロに実装していません。

  • 文字の垂直位置
  • 見出し以外の背景色

 

以下は、コードを思いついていないため実装していません。(笑)

  • 結合セルの反映

 

はてな以外のブログサービスのCSSや編集モードの詳細は分からないので、とりあえず、はてなブログ用に最低限の機能をもったものという位置付けです。

マクロの使い方

  1. Excel上でTableタグに変換したい範囲を選択し、マクロを実行
  2. 見出しの有無を指定
  3. クリップボードにTableタグが格納されるので、はてなブログの「HTML編集」モードで、好きな位置にペーストする
Sub 選択範囲をTableタグに変換しクリップボードに出力其の参()
    '正方形または長方形のような連続した選択範囲とする
    'セルの内容の水平位置を再現します(左、右、中央のみ)。水平位置が無指定なら無指定であることを再現します。
    Dim i As Long
    Dim j As Long
    Dim V As String
    Dim rh As Integer
    Dim ch As Integer
    Dim ha As Integer
    Dim Alg As String
    Dim myLib As Object
    Set myLib = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")  '参照設定なしでDataObjectのインスタンスを生成する
    
    rh = MsgBox("選択範囲の上端の行を" & vbCrLf & "見出しにしますか?", vbYesNo)
    ch = MsgBox("選択範囲の左端の列を" & vbCrLf & "見出しにしますか?", vbYesNo)
    
    V = "<table>" & vbCrLf

    For i = Selection.Row To Selection.Rows(Selection.Rows.Count).Row
        For j = Selection.Column To Selection.Columns(Selection.Columns.Count).Column
            If i = Selection.Row And rh = 6 Then '見出し行の処理。データを<th></th>で囲む
                If j = Selection.Column Then    '選択範囲の左端であれば冒頭に<tr>を追加
                    ha = Cells(i, j).HorizontalAlignment    'データの水平位置を取得する
                        If ha = -4131 Then
                            Alg = " align=""left"""
                        ElseIf ha = -4152 Then
                            Alg = " align=""right"""
                        ElseIf ha = -4108 Then
                            Alg = " align=""center"""
                        Else
                            Alg = ""
                        End If
                    V = V & "<tr>" & vbCrLf & "<th" & Alg & ">" & Cells(i, j).Value & "</th>"
                        If j = Selection.Columns(Selection.Columns.Count).Column Then     '左端かつ右端である場合の処置
                            V = V & vbCrLf & "</tr>" & vbCrLf
                        End If
                ElseIf j = Selection.Columns(Selection.Columns.Count).Column Then   '選択範囲の右端であれば末尾に</tr>を追加
                    ha = Cells(i, j).HorizontalAlignment    'データの水平位置を取得する
                        If ha = -4131 Then
                            Alg = " align=""left"""
                        ElseIf ha = -4152 Then
                            Alg = " align=""right"""
                        ElseIf ha = -4108 Then
                            Alg = " align=""center"""
                        Else
                            Alg = ""
                        End If
                    V = V & "<th" & Alg & ">" & Cells(i, j).Value & "</th>" & vbCrLf & "</tr>" & vbCrLf
                Else    '左端と右端以外の処理
                    ha = Cells(i, j).HorizontalAlignment    'データの水平位置を取得する
                        If ha = -4131 Then
                            Alg = " align=""left"""
                        ElseIf ha = -4152 Then
                            Alg = " align=""right"""
                        ElseIf ha = -4108 Then
                            Alg = " align=""center"""
                        Else
                            Alg = ""
                        End If
                    V = V & "<th" & Alg & ">" & Cells(i, j).Value & "</th>"
                End If
            Else '見出し行以外の処理
                If j = Selection.Column Then    '選択範囲の左端であれば冒頭に<tr>を追加
                    If ch = 6 Then  '見出し列の処理。データを<th></th>で囲む
                        ha = Cells(i, j).HorizontalAlignment    'データの水平位置を取得する
                            If ha = -4131 Then
                                Alg = " align=""left"""
                            ElseIf ha = -4152 Then
                                Alg = " align=""right"""
                            ElseIf ha = -4108 Then
                                Alg = " align=""center"""
                            Else
                                Alg = ""
                            End If
                        V = V & "<tr>" & vbCrLf & "<th" & Alg & ">" & Cells(i, j).Value & "</th>"
                    Else    '見出し列以外の処理。データを<td></td>で囲む
                        ha = Cells(i, j).HorizontalAlignment    'データの水平位置を取得する
                            If ha = -4131 Then
                                Alg = " align=""left"""
                            ElseIf ha = -4152 Then
                                Alg = " align=""right"""
                            ElseIf ha = -4108 Then
                                Alg = " align=""center"""
                            Else
                                Alg = ""
                            End If
                        V = V & "<tr>" & vbCrLf & "<td" & Alg & ">" & Cells(i, j).Value & "</td>"
                    End If
                        If j = Selection.Columns(Selection.Columns.Count).Column Then     '左端かつ右端である場合の処置
                            V = V & vbCrLf & "</tr>" & vbCrLf
                        End If
                ElseIf j = Selection.Columns(Selection.Columns.Count).Column Then   '選択範囲の右端であれば末尾に</tr>を追加
                    ha = Cells(i, j).HorizontalAlignment    'データの水平位置を取得する
                        If ha = -4131 Then
                            Alg = " align=""left"""
                        ElseIf ha = -4152 Then
                            Alg = " align=""right"""
                        ElseIf ha = -4108 Then
                            Alg = " align=""center"""
                        Else
                            Alg = ""
                        End If
                    V = V & "<td" & Alg & ">" & Cells(i, j).Value & "</td>" & vbCrLf & "</tr>" & vbCrLf
                Else    '左端と右端以外の処理
                    ha = Cells(i, j).HorizontalAlignment    'データの水平位置を取得する
                        If ha = -4131 Then
                            Alg = " align=""left"""
                        ElseIf ha = -4152 Then
                            Alg = " align=""right"""
                        ElseIf ha = -4108 Then
                            Alg = " align=""center"""
                        Else
                            Alg = ""
                        End If
                    V = V & "<td" & Alg & ">" & Cells(i, j).Value & "</td>"
                End If
            End If
        Next j
    Next i
    
    V = V & "</table>"
    
    myLib.SetText V  '変数の値をDataObjectに格納する
    myLib.PutInClipboard 'DataObjectのデータをクリップボードに格納する
    
    MsgBox "HTMLをクリップボードに" & vbCrLf & "出力しました!" & vbCrLf & vbCrLf & _
    "ブログなどでお好みの位置にペースト" & vbCrLf & "して下さい。"
    
End Sub

※SubからEnd Subまでをコピーし、標準モジュール等に貼り付けて使用して下さい。なお、マクロで実行した処理は「元に戻す」ことができません。実行前に一旦保存しやり直しのできる状態にしておいて下さい。標準モジュールにコードを貼り付けてマクロを使用する方法はこちら

 

kouten0430.hatenablog.com

 

 

kouten0430.hatenablog.com

 

暗号のような書式記号を使いこなす(日時用)

今回は日時用の書式記号についてまとめてみます。余談ですが、2019年5月1日に改元される予定となっています。書式についてはどのような対応になるんでしょーか?

目次

 

日付を表示する書式記号

y
年を西暦で表示する(yearの略)。指定する個数により表現が異なる。

f:id:kouten0430:20180215215957j:plain

 

m
月を表示する(monthの略)。指定する個数により表現が異なる。

f:id:kouten0430:20180215220017j:plain

 

d
日を表示する(dayの略)。指定する個数により表現が異なる。なお、3~4つ指定することで、曜日(英語)を表示する。

f:id:kouten0430:20180215220030j:plain

 

a
曜日を日本語で表示する(何の略かは不明)。

f:id:kouten0430:20180215220043j:plain

 

g
元号を表示する(gengouの略?)。

f:id:kouten0430:20180215220052j:plain

 

e
年を和暦で表示する(eraの略)。なお、元号と組み合わせて使用しないと、数値の意味が分からなくなる。

f:id:kouten0430:20180215220102j:plain

 

 

時刻を表示する書式記号

h
時間を表示する(hourの略)。

 

m
分を表示する(minuteの略)。なお、月の「m」と重複するが「y」「d」と組み合わせた場合は月となり、「h」「s」と組み合わせた場合は分となる。

 

s
秒を表示する(secondの略)。

 

f:id:kouten0430:20180215220137j:plain

 

AM/PM
時間を12時間表示にする。

f:id:kouten0430:20180215220155j:plain

 

 

区切り記号(文字列)は任意

上記までの例では、日付を「/」で、時刻を「:」で区切りましたが、これ以外の任意の記号または文字列で区切ることもできます。日本語で区切る場合、日付であれば"年""月""日"、時刻であれば"時""分""秒"などとすることもできます。

f:id:kouten0430:20180215220219j:plain

暗号のような書式記号を使いこなす(数値用/文字用)

Excelの書式設定から、表示形式-ユーザー定義の順に辿ると
_ * #,##0.00_ ;_ * -#,##0.00_ ;_ * "-"??_ ;_ @_
このような、暗号のようなものを見かけることがあると思います。普段、何となくExcelを使っている人にとっては、
は?(@_@;)
っていう感じだと思いますが、これは書式を設定するための書式記号が連なっているだけに過ぎません。
今回は、そんな書式記号の中から、数値用/文字用に使用するものをピックアップしてみようと思います。

目次

 

数値を表示する書式記号

#
数値の1桁を表す。整数部は指定した桁数よりも実際の桁数が少ない場合または実際の桁数が多い場合でも、そのまま数値が表示されます。
小数部は指定した桁数よりも実際の桁数が多い場合は、四捨五入されます。

f:id:kouten0430:20180208080120j:plain

 

0
数値の1桁を表す。#と違う点は、指定した桁数よりも実際の桁数が少ない場合、0埋めされます。

f:id:kouten0430:20180208080218j:plain

 

?
数値の1桁を表す。前項の、0が半角スペースに変わったと思えば分かりやすいと思います。小数点位置を揃えるために使用します。

f:id:kouten0430:20180208080240j:plain

 

,
3桁ごとの桁区切りを表す

f:id:kouten0430:20180208080327j:plain

 

.
小数点を表す

 

 

文字を表示する書式記号

!
!の後に指定した文字列を表示します(半角のみ)。後述する""でも代用できます。

f:id:kouten0430:20180208080347j:plain

 

*
*の後に指定した文字列をセルが満たされるまで表示します(半角のみ)。

f:id:kouten0430:20180208080410j:plain

 

"
""で囲まれた文字を表示します(半角/全角)。

f:id:kouten0430:20180208080427j:plain

 

@
セルに入力された文字を任意の位置に表示します(半角/全角)。

f:id:kouten0430:20180208080444j:plain

 

_
_の後に指定した文字幅分のスペースを空けます(半角/全角)。指定した文字が透明な状態で入っていると思えば分かりやすいと思います。

f:id:kouten0430:20180208080511j:plain

 

 

;(セミコロン)の使い方

書式を;(セミコロン)で区切ることで、一つのセルに4つまで書式を設定することができ、その中からデータに対応した書式が適用されます。

4つ指定した場合

  • 正の数の書式;負の数の書式;数値が0の時の書式;文字列の時の書式

3つ指定した場合

  • 正の数の書式;負の数の書式;数値が0の時の書式

2つ指定した場合

  • 正の数の書式(ゼロの場合含む);負の数の書式
  • 数値全般の書式;文字列の書式
  • 日時の書式;文字列の書式

1つ指定した場合

  • 指定した書式のみ



書式を解読


ここまでを踏まえた上で、冒頭の

_ * #,##0.00_ ;_ * -#,##0.00_ ;_ * "-"??_ ;_ @_

を分解してみたいと思います。

f:id:kouten0430:20180208081125j:plain

この書式での表示結果は以下のようになります。

f:id:kouten0430:20180208081222j:plain

この書式の正体は、表示形式「会計」の小数点以下2桁・記号なしのものでした。デフォルトで用意されている書式を参考にしつつ、自分の用途に合ったオリジナル書式を作って、同僚にドヤ顔をするのも一興かなと思います←(ぇ)

ひっそりとExcel関数のおさらい(ワークシート関数 VBAで使用出来るもの・出来ないもの)

Excel関数(ワークシート関数)は、「WorksheetFunction.関数名」としてVBAでも使用することができます。では、すべてのExcel関数をVBAで使用できるのか?というと、そうではなく、使えないものもあったりします。
今回は、約480近くあるExcel関数のうち、VBAで使用できるものとできないものをまとめてみようと思います。
MicrosoftのHPからExcel関数とWorksheetFunction メンバーの一覧(最新と思われるもの)をコピペし、Excel上に並べて重複を確認してみます。(Excel関数では.〔ピリオド〕の部分がWorksheetFunctionでは_〔アンダーバー〕になっているので、重複確認の為に一括置換でどちらかに揃えます)

WorksheetFunction メンバー (Excel)

Excel 関数 (アルファベット順) - Office サポート

 

Excel関数一覧(★がついているものは、VBAで使用可能) 

  名前 重複 説明
1 ABS   数学/三角:数値の絶対値を返します。
2 ACCRINT 財務:定期的に利息が支払われる証券の未収利息額を返します。
3 ACCRINTM 財務:満期日に利息が支払われる証券の未収利息額を返します。
4 ACOS 数学/三角:数値のアークコサインを返します。
5 ACOSH 数学/三角:数値の双曲線逆余弦(ハイパーボリックコサインの逆関数)を返します。
6 ACOT 数学/三角:数値の逆余接を返します。
7 ACOTH 数学/三角:数値の双曲線逆余接を返します。
8 ADDRESS   検索/行列:ワークシート上のセル参照を文字列として返します。
9 AGGREGATE 数学/三角:リストまたはデータベースの集計値を返します。
10 AMORDEGRC 財務:減価償却係数を使用して、各会計期における減価償却費を返します。
11 AMORLINC 財務:各会計期における減価償却費を返します。
12 AND 論理:すべての引数がTRUEのときにTRUEを返します。
13 ARABIC 数学/三角:ローマ数字をアラビア数字に変換します。
14 AREAS   検索/行列:指定された範囲に含まれる領域の個数を返します。
15 ASC 文字列:全角(2バイト)の英数カナ文字を半角(1バイト)の文字に変換します。
16 ASIN 数学/三角:数値のアークサインを返します。
17 ASINH 数学/三角:数値の双曲線逆正弦(ハイパーボリックサインの逆関数)を返します。
18 ATAN   数学/三角:数値のアークタンジェントを返します。
19 ATAN2 数学/三角:指定されたx-y座標のアークタンジェントを返します。
20 ATANH 数学/三角:数値の双曲線逆正接(ハイパーボリックタンジェント逆関数)を返します。
21 AVEDEV 統計:データ全体の平均値に対するそれぞれのデータの絶対偏差の平均を返します。
22 AVERAGE 統計:引数の平均値を返します。
23 AVERAGEA   統計:数値、文字列、および論理値を含む引数の平均値を返します。
24 AVERAGEIF 統計:範囲内の検索条件に一致するすべてのセルの平均値(算術平均)を返します。
25 AVERAGEIFS 統計:複数の検索条件に一致するすべてのセルの平均値(算術平均)を返します。
26 BAHTTEXT 文字列:数値を四捨五入し、バーツ通貨書式を設定した文字列に変換します。
27 BASE 数学/三角:指定された基数(底)のテキスト表現に、数値を変換します。
28 BESSELI エンジニアリング:修正ベッセル関数In(x)を返します。
29 BESSELJ エンジニアリング:ベッセル関数Jn(x)を返します。
30 BESSELK エンジニアリング:修正ベッセル関数Kn(x)を返します。
31 BESSELY エンジニアリング:ベッセル関数Yn(x)を返します。
32 BETA_DIST 統計:β分布の累積分布関数の値を返します。
33 BETA_INV 統計:指定されたβ分布の累積分布関数の逆関数値を返します。
34 BETADIST 互換性:β分布の累積分布関数の値を返します。
35 BETAINV 互換性:指定されたβ分布の累積分布関数の逆関数値を返します。
36 BIN2DEC エンジニアリング:2進数を10進数に変換します。
37 BIN2HEX エンジニアリング:2進数を16進数に変換します。
38 BIN2OCT エンジニアリング:2進数を8進数に変換します。
39 BINOM_DIST 統計:二項分布の確率関数の値を返します。
40 BINOM_DIST_RANGE 統計:二項分布を使用した試行結果の確率を返します。
41 BINOM_INV 統計:累積二項分布の値が基準値以上になるような最小の値を返します。
42 BINOMDIST 互換性:二項分布の確率関数の値を返します。
43 BITAND エンジニアリング:2つの数値の'ビット単位のAnd'を返します。
44 BITLSHIFT エンジニアリング:shift_amountビットだけ左へシフトした数値を返します。
45 BITOR エンジニアリング:2つの数値のビット単位のORを返します。
46 BITRSHIFT エンジニアリング:shift_amountビットだけ右へシフトした数値を返します。
47 BITXOR エンジニアリング:2つの数値のビット単位の'ExclusiveOr'を返します。
48 CALL   アドイン/オートメーション:ダイナミックリンクライブラリまたはコードリソースに含まれるプロシージャを呼び出します。
49 CEILING 数学/三角:指定された基準値の倍数のうち、最も近い値に数値を丸めます。
50 CEILING_MATH 数学/三角:指定された基準値の倍数のうち、最も近い値に数値を切り上げます。
51 CEILING_PRECISE 数学/三角:指定された基準値の倍数のうち、最も近い値に数値を切り上げます。数値は正負に関係なく切り上げられます。
52 CELL   情報:セルの書式、位置、内容についての情報を返します。
53 CHAR   文字列:数値で指定された文字を返します。
54 CHIDIST 互換性:カイ2乗分布の片側確率の値を返します。
55 CHIINV 互換性:カイ2乗分布の片側確率の逆関数値を返します。
56 CHISQ_DIST 統計:累積β確率密度関数の値を返します。
57 CHISQ_DIST_RT 統計:カイ2乗分布の片側確率の値を返します。
58 CHISQ_INV 統計:累積β確率密度関数の値を返します。
59 CHISQ_INV_RT 統計:カイ2乗分布の片側確率の逆関数値を返します。
60 CHISQ_TEST 統計:カイ2乗(χ2)検定を行います。
61 CHITEST 互換性:カイ2乗(χ2)検定を行います。
62 CHOOSE 検索/行列:引数リストの値の中から特定の値を1つ選択します。
63 CLEAN 文字列:文字列から印刷できない文字を削除します。
64 CODE   文字列:テキスト文字列内の先頭文字の数値コードを返します。
65 COLUMN   検索/行列:セル参照の列番号を返します。
66 COLUMNS   検索/行列:セル参照の列数を返します。
67 COMBIN 数学/三角:指定された個数を選択するときの組み合わせの数を返します。
68 COMBINA 数学/三角:
69 COMPLEX エンジニアリング:実数係数および虚数係数を"x+yi"または"x+yj"の形式の複素数に変換します。
70 CONCAT   テキスト:複数の範囲や文字列からのテキストを結合しますが、区切り記号またはIgnoreEmpty引数は提供しません。
71 CONCATENATE   文字列:複数の文字列を結合して1つの文字列にまとめます。
72 CONFIDENCE 互換性:母集団に対する信頼区間を返します。
73 CONFIDENCE_NORM 統計:母集団に対する信頼区間を返します。
74 CONFIDENCE_T 統計:スチューデントのt分布を使用して、母集団に対する信頼区間を返します。
75 CONVERT エンジニアリング:数値の単位を変換します。
76 CORREL 統計:2つの配列データの相関係数を返します。
77 COS   数学/三角:指定された角度のコサインを返します。
78 COSH 数学/三角:数値の双曲線余弦(ハイパーボリックコサイン)を返します。
79 COT 数学/三角:数値の双曲線余弦(ハイパーボリックコサイン)を返します。
80 COTH 数学/三角:角度の双曲線余接を返します。
81 COUNT 統計:引数リストの各項目に含まれる数値の個数を返します。
82 COUNTA 統計:引数リストの各項目に含まれるデータの個数を返します。
83 COUNTBLANK 統計:指定された範囲に含まれる空白セルの個数を返します。
84 COUNTIF 統計:指定された範囲に含まれるセルのうち、検索条件に一致するセルの個数を返します。
85 COUNTIFS 統計:指定された範囲に含まれるセルのうち、複数の検索条件に一致するセルの個数を返します。
86 COUPDAYBS 財務:利払期間の第1日目から受渡日までの日数を返します。
87 COUPDAYS 財務:受渡日を含む利払期間内の日数を返します。
88 COUPDAYSNC 財務:受渡日から次の利払日までの日数を返します。
89 COUPNCD 財務:受領日後の次の利息支払日を返します。
90 COUPNUM 財務:受領日と満期日の間に利息が支払われる回数を返します。
91 COUPPCD 財務:受領日の直前の利息支払日を返します。
92 COVAR 互換性:共分散を返します。共分散とは、2組の対応するデータ間での標準偏差の積の平均値です。
93 COVARIANCE_P 統計:共分散を返します。共分散とは、2組の対応するデータ間での標準偏差の積の平均値です。
94 COVARIANCE_S 統計:標本の共分散を返します。共分散とは、2組の対応するデータ間での標準偏差の積の平均値です。
95 CRITBINOM 互換性:累積二項分布の値が基準値以上になるような最小の値を返します。
96 CSC 数学/三角:角度の余割を返します。
97 CSCH 数学/三角:角度の双曲線余割を返します。
98 CUBEKPIMEMBER   キューブ:主要業績評価指標(KPI)の名前、プロパティ、およびメジャーを返し、名前とプロパティをセルに表示します。KPIは、月間粗利益や四半期従業員退職率など、定量化が可能な測定値であり、組織の業績をモニタリングするために使用されます。
99 CUBEMEMBER   キューブ:キューブ階層のメンバーまたは組を返します。キューブ内にメンバーまたは組が存在することを確認するために使用します。
100 CUBEMEMBERPROPERTY   キューブ:キューブ内のメンバープロパティの値を返します。メンバー名がキューブ内に存在することを確認し、このメンバーの特定のプロパティを取得するために使用します。
101 CUBERANKEDMEMBER   キューブ:セット内のn番目の(ランクされている)メンバーを返します。売り上げトップの販売員、成績上位10位までの学生など、セット内の1つ以上の要素を取得するために使用します。
102 CUBESET   キューブ:セット式をサーバー上のキューブに送信して、計算されたメンバーまたは組のセットを定義します。サーバー上のキューブによってセットが作成され、MicrosoftOfficeExcelに返されます。
103 CUBESETCOUNT   キューブ:セット内のアイテムの数を返します。
104 CUBEVALUE   キューブ:キューブの集計値を返します。
105 CUMIPMT 財務:指定した期間に、貸付金に対して支払われる利息の累計を返します。
106 CUMPRINC 財務:指定した期間に、貸付金に対して支払われる元金の累計を返します。
107 DATE   日時:指定された日付に対応するシリアル値を返します。
108 DATEDIF   日時:2つの日付間の日数、月数、年数を計算します。この関数は、年齢を計算する数式に使うと便利です。
109 DATEVALUE   日時:日付を表す文字列をシリアル値に変換します。
110 DAVERAGE データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードの平均値を返します。
111 DAY   日時:シリアル値を日付に変換します。
112 DAYS 日時:2つの日付間の日数を返します。
113 DAYS360 日時:1年を360日(30日x12)として、支払いの計算などに使用される2つの日付の間の日数を返します。
114 DB 財務:定率法(Fixed-decliningBalanceMethod)を使用して、特定の期における資産の減価償却費を返します。
115 DBCS 文字列:文字列内の半角(1バイト)の英数カナ文字を全角(2バイト)の文字に変換します。
116 DCOUNT データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードの中で数値が入力されているセルの個数を返します。
117 DCOUNTA データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードの中の空白でないセルの個数を返します。
118 DDB 財務:倍額定率法(Double-decliningBalanceMethod)を使用して、特定の期における資産の減価償却費を返します。
119 DEC2BIN エンジニアリング:10進数を2進数に変換します。
120 DEC2HEX エンジニアリング:10進数を16進数に変換します。
121 DEC2OCT エンジニアリング:10進数を8進数に変換します。
122 DECIMAL 数学/三角:指定された底の数値のテキスト表現を10進数に変換します。
123 DEGREES 数学/三角:ラジアンを度に変換します。
124 DELTA エンジニアリング:2つの値が等しいかどうかを調べます。
125 DEVSQ 統計:標本の平均値に対する各データの偏差の平方和を返します。
126 DGET データベース:リストまたはデータベースの列から、指定された条件を満たす1つの値を抽出します。
127 DISC 財務:証券に対する割引率を返します。
128 DMAX データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードの最大値を返します。
129 DMIN データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードの最小値を返します。
130 DOLLAR 文字列:数値を四捨五入し、通貨書式を設定した文字列に変換します。DOLLAR関数では、ドル($)通貨書式が設定されます。YEN関数では、円(¥)通貨書式が設定されます。
131 DOLLARDE 財務:分数で表されたドル単位の価格を、小数表示に変換します。
132 DOLLARFR 財務:小数で表されたドル単位の価格を、分数表示に変換します。
133 DPRODUCT データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードの特定のフィールド値を積算します。
134 DSTDEV データベース:リストまたはデータベースの列を検索し、指定された条件を満たすレコードを母集団の標本と見なして、母集団に対する標準偏差を返します。
135 DSTDEVP データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードを母集団全体と見なして、母集団の標準偏差を返します。
136 DSUM データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードの合計を返します。
137 DURATION 財務:定期的に利子が支払われる証券の年間のマコーレーデュレーションを返します。
138 DVAR データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードを母集団の標本と見なして、母集団に対する分散を返します。
139 DVARP データベース:リストまたはデータベースの指定された列を検索し、条件を満たすレコードを母集団全体と見なして、母集団の分散を返します。
140 EDATE 日時:開始日から起算して、指定した月数だけ前または後の日付に対応するシリアル値を返します。
141 EFFECT 財務:実効年利率を返します。
142 ENCODEURL Web:URL形式でエンコードされた文字列を返します。
143 EOMONTH 日時:開始日から起算して、指定した月数だけ前または後の月の最終日に対応するシリアル値を返します。
144 ERF エンジニアリング:誤差関数の積分値を返します。
145 ERF_PRECISE エンジニアリング:誤差関数の積分値を返します。
146 ERFC エンジニアリング:相補誤差関数の積分値を返します。
147 ERFC_PRECISE エンジニアリング:x~無限大の範囲で、相補誤差関数の積分値を返します。
148 ERROR_TYPE   情報:エラーの種類に対応する数値を返します。
149 EUROCONVERT   アドイン/オートメーション:数値からユーロ通貨への換算、ユーロ通貨からユーロ通貨使用国の現地通貨への換算、またはユーロ通貨を基にしてユーロ通貨を使用する参加国間の通貨の換算(三通貨換算)を行います。
150 EVEN 数学/三角:指定された数値を最も近い偶数に切り上げた値を返します。
151 EXACT   文字列:2つの文字列が等しいかどうかを判定します。
152 EXP   数学/三角:eを底とする数値のべき乗を返します。
153 EXPON_DIST 統計:指数分布関数を返します。
154 EXPONDIST 互換性:指数分布関数を返します。
155 F_DIST 統計:F分布の確率関数の値を返します。
156 F_DIST_RT 統計:F分布の確率関数の値を返します。
157 F_INV 統計:F分布の確率関数の逆関数値を返します。
158 F_INV_RT 統計:F分布の確率関数の逆関数値を返します。
159 F_TEST 統計:F検定の結果を返します。
160 FACT 数学/三角:数値の階乗を返します。
161 FACTDOUBLE 数学/三角:数値の二重階乗を返します。
162 FDIST 互換性:F分布の確率関数の値を返します。
163 FILTERXML Web:指定されたXPathに基づいてXMLコンテンツの特定のデータを返します。
164 FIND 文字列:指定された文字列を他の文字列の中で検索します。大文字と小文字は区別されます。
165 FINDB  
166 FINV 統計:F分布の確率関数の逆関数値を返します。
167 FISHER 統計:フィッシャー変換の値を返します。
168 FISHERINV 統計:フィッシャー変換の逆関数値を返します。
169 FIXED 文字列:数値を四捨五入し、書式設定した文字列に変換します。
170 FLOOR 互換性:数値を指定された桁数で切り捨てます。
171 FLOOR_MATH 数学/三角:指定された基準値の倍数のうち、最も近い値に数値を切り捨てます。
172 FLOOR_PRECISE 数学/三角:指定された基準値の倍数のうち、最も近い値に数値を切り上げます。数値は正負に関係なく切り上げられます。
173 FORECAST 統計:既知の値を使用し、将来の値を予測します。
174 FORECAST_ETS 統計:指数平滑化(ETS)アルゴリズムのAAAバージョンを使って、既存の(履歴)値に基づき将来価値を返します。
175 FORECAST_ETS_CONFINT 統計:特定の目標日の予測値について信頼区間を返します。
176 FORECAST_ETS_SEASONALITY 統計:指定された時系列に見られる反復パターンの長さを返します。
177 FORECAST_ETS_STAT 統計:時系列予測の結果として統計値を返します。
178 FORECAST_LINEAR 統計:既存の値に基づいて、将来価値を返します。
179 FORMULATEXT   検索/行列:指定された参照の位置にある数式をテキストとして返します。
180 FREQUENCY 統計:頻度分布を縦方向の数値の配列として返します。
181 FTEST 互換性:F検定の結果を返します。
182 FV 財務:投資の将来価値を返します。
183 FVSCHEDULE 財務:投資期間内の一連の金利複利計算することにより、初期投資の元金の将来価値を返します。
184 GAMMA 統計:ガンマ関数値を返します。
185 GAMMA_DIST 統計:ガンマ分布関数の値を返します。
186 GAMMA_INV 統計:ガンマ分布の累積分布関数の逆関数値を返します。
187 GAMMADIST 互換性:ガンマ分布関数の値を返します。
188 GAMMAINV 互換性:ガンマ分布の累積分布関数の逆関数値を返します。
189 GAMMALN 統計:ガンマ関数Γ(x)の値の自然対数を返します。
190 GAMMALN_PRECISE 統計:ガンマ関数Γ(x)の値の自然対数を返します。
191 GAUSS 統計:標準正規分布の累積分布関数より0.5小さい値を返します。
192 GCD 数学/三角:最大公約数を返します。
193 GEOMEAN 統計:相乗平均を返します。
194 GESTEP エンジニアリング:数値がしきい値以上であるかどうかを調べます。
195 GETPIVOTDATA   検索/行列:ピボットテーブルレポートに格納されているデータを返します。
196 GROWTH 統計:指数曲線から予測される値を返します。
197 HARMEAN 統計:調和平均を返します。
198 HEX2BIN エンジニアリング:16進数を2進数に変換します。
199 HEX2DEC エンジニアリング:16進数を10進数に変換します。
200 HEX2OCT エンジニアリング:16進数を8進数に変換します。
201 HLOOKUP 検索/行列:配列の上端行で特定の値を検索し、対応するセルの値を返します。
202 HOUR   日時:シリアル値を時刻に変換します。
203 HYPERLINK   検索/行列:ネットワークサーバー、イントラネット、またはインターネット上に格納されているドキュメントを開くために、ショートカットまたはジャンプを作成します。
204 HYPGEOM_DIST 統計:超幾何分布関数の値を返します。
205 HYPGEOMDIST 互換性:超幾何分布関数の値を返します。
206 IF   論理:値または数式が条件を満たしているかどうかを判定します。
207 IFERROR 論理:数式の結果がエラーの場合は指定した値を返し、それ以外の場合は数式の結果を返します。
208 IFNA 論理:式が#N/Aに解決される場合は、指定した値を返します。それ以外の場合は、式の結果を返します。
209 IFS   論理:1つまたは複数の条件が満たされるかどうかをチェックして、最初のTRUE条件に対応する値を返します。
210 IMABS エンジニアリング:指定した複素数の絶対値を返します。
211 IMAGINARY エンジニアリング:指定した複素数虚数係数を返します。
212 IMARGUMENT エンジニアリング:引数シータ(ラジアンで表した角度)を返します。
213 IMCONJUGATE エンジニアリング:複素数複素共役を返します。
214 IMCOS エンジニアリング:複素数のコサインを返します。
215 IMCOSH エンジニアリング:複素数の双曲線余弦を返します。
216 IMCOT エンジニアリング:複素数の余接を返します。
217 IMCSC エンジニアリング:複素数の余割を返します。
218 IMCSCH エンジニアリング:複素数の双曲線余割を返します。
219 IMDIV エンジニアリング:2つの複素数の商を返します。
220 IMEXP エンジニアリング:複素数のべき乗を返します。
221 IMLN エンジニアリング:複素数の自然対数を返します。
222 IMLOG10 エンジニアリング:複素数の10を底とする対数(常用対数)を返します。
223 IMLOG2 エンジニアリング:複素数の2を底とする対数を返します。
224 IMPOWER エンジニアリング:複素数の整数乗を返します。
225 IMPRODUCT エンジニアリング:複素数の積を返します。
226 IMREAL エンジニアリング:複素数の実数係数を返します。
227 IMSEC エンジニアリング:複素数の正割を返します。
228 IMSECH エンジニアリング:複素数の双曲線正割を返します。
229 IMSIN エンジニアリング:複素数の正弦を返します。
230 IMSINH エンジニアリング:複素数の双曲線正弦を返します。
231 IMSQRT エンジニアリング:複素数平方根を返します。
232 IMSUB エンジニアリング:2つの複素数の差を返します。
233 IMSUM エンジニアリング:複素数の和を返します。
234 IMTAN エンジニアリング:複素数正接を返します。
235 INDEX 検索/行列:セル参照または配列から、指定された位置の値を返します。
236 INDIRECT   検索/行列:参照文字列によって指定されるセルに入力されている文字列を介して、間接的にセルを指定します。
237 INFO   情報:現在の操作環境についての情報を返します。
238 INT   数学/三角:指定された数値を最も近い整数に切り捨てます。
239 INTERCEPT 統計:回帰直線の切片を返します。
240 INTRATE 財務:全額投資された証券の利率を返します。
241 IPMT 財務:投資期間内の指定された期に支払われる金利を返します。
242 IRR 財務:一連の定期的なキャッシュフローに対する内部利益率を返します。
243 ISBLANK   情報:対象が空白セルを参照するときにTRUEを返します。
244 ISERR 情報:対象が#N/A以外のエラー値のときにTRUEを返します。
245 ISERROR 情報:対象が任意のエラー値のときにTRUEを返します。
246 ISEVEN 情報:数値が偶数のときにTRUEを返します。
247 ISFORMULA 情報:数式が含まれるセルへの参照がある場合にTRUEを返します。
248 ISLOGICAL 情報:対象が論理値のときにTRUEを返します。
249 ISNA 情報:対象がエラー値#N/AのときにTRUEを返します。
250 ISNONTEXT 情報:対象が文字列以外のときにTRUEを返します。
251 ISNUMBER 情報:対象が数値のときにTRUEを返します。
252 ISO_CEILING 数学/三角:最も近い整数に切り上げた値、または、指定された基準値の倍数のうち最も近い値を返します。
253 ISODD 情報:数値が奇数のときにTRUEを返します。
254 ISOWEEKNUM 日時:指定された日付のその年におけるISO週番号を返します。
255 ISPMT 財務:投資期間内の指定された期に支払われる金利を計算します。
256 ISREF   情報:対象がセル参照のときにTRUEを返します。
257 ISTEXT 情報:対象が文字列のときにTRUEを返します。
258 JIS   文字列:文字列内の半角(1バイト)の文字を全角(2バイト)の文字に変換します。
259 KURT 統計:指定されたデータの尖度を返します。
260 LARGE 統計:指定されたデータの中でk番目に大きなデータを返します。
261 LCM 数学/三角:最小公倍数を返します。
262 LEFT   文字列:文字列の先頭(左端)から指定された文字数の文字を返します。
263 LEFTB    
264 LEN   文字列:文字列に含まれる文字数を返します。
265 LENB    
266 LINEST 統計:回帰直線の係数の値を配列で返します。
267 LN 数学/三角:数値の自然対数を返します。
268 LOG 数学/三角:指定された数を底とする数値の対数を返します。
269 LOG10 数学/三角:10を底とする数値の対数(常用対数)を返します。
270 LOGEST 統計:回帰指数曲線の係数の値を配列で返します。
271 LOGINV 互換性:対数正規型の累積分布関数の逆関数値を返します。
272 LOGNORM_DIST 統計:対数正規分布の累積分布関数の値を返します。
273 LOGNORM_INV 統計:対数正規型の累積分布関数の逆関数値を返します。
274 LOGNORMDIST 互換性:対数正規分布の累積分布関数の値を返します。
275 LOOKUP 検索/行列:ベクトル(1行または1列で構成されるセル範囲)または配列を検索し、対応する値を返します。
276 LOWER   文字列:文字列に含まれる英字をすべて小文字に変換します。
277 MATCH 検索/行列:照合の型に従って参照または配列に含まれる値を検索し、検査値と一致する要素の相対的な位置を数値で返します。
278 MAX 統計:引数リストに含まれる最大の数値を返します。
279 MAXA   統計:数値、文字列、および論理値を含む引数リストから最大の数値を返します。
280 MAXIFS   統計:条件セットで指定されたセルの中の最大値を返します。
281 MDETERM 数学/三角:配列の行列式を返します。
282 MDURATION 財務:額面価格を$100と仮定して、証券に対する修正マコーレーデュレーションを返します。
283 MEDIAN 統計:引数リストに含まれる数値のメジアン(中央値)を返します。
284 MID   文字列:文字列の任意の位置から指定された文字数の文字を返します。
285 MIDB    
286 MIN 統計:引数リストに含まれる最小の数値を返します。
287 MINA   統計:数値、文字列、および論理値を含む引数リストから最小の数値を返します。
288 MINIFS   統計:条件セットで指定されたセルの中の最小値を返します。
289 MINUTE   日時:シリアル値を時刻の分に変換します。
290 MINVERSE 数学/三角:行列の逆行列を返します。
291 MIRR 財務:定期的に発生する一連の支払い(負の値)と収益(正の値)に基づいて、修正内部利益率を返します。
292 MMULT 数学/三角:2つの配列の行列積を返します。
293 MOD   数学/三角:数値を除算したときの剰余を返します。
294 MODE 互換性:最も頻繁に出現する値(最頻値)を返します。
295 MODE_MULT 統計:配列またはセル範囲として指定されたデータの中で、最も頻繁に出現する値(最頻値)を縦方向の配列として返します。
296 MODE_SNGL 統計:最も頻繁に出現する値(最頻値)を返します。
297 MONTH   日時:シリアル値を月に変換します。
298 MROUND 数学/三角:指定された値の倍数になるように、数値を切り上げまたは切り捨てます。
299 MULTINOMIAL 数学/三角:指定された複数の数値の多項係数を返します。
300 MUNIT 数学/三角:指定された次元の単位行列を返します。
301 N   情報:値を数値に変換します。
302 NA   情報:エラー値#N/Aを返します。
303 NEGBINOM_DIST 統計:負の二項分布の確率関数値を返します。
304 NEGBINOMDIST 互換性:負の二項分布の確率関数値を返します。
305 NETWORKDAYS 日時:開始日と終了日を指定して、その期間内の稼動日の日数を返します。
306 NETWORKDAYS_INTL 日時:週末がどの曜日で何日間あるかを示すパラメーターを使用して、開始日と終了日の間にある稼働日の日数を返します。
307 NOMINAL 財務:名目年利率を返します。
308 NORM_DIST 統計:正規分布の累積分布関数の値を返します。
309 NORM_INV 互換性:正規分布の累積分布関数の逆関数値を返します。
310 NORM_S_DIST 統計:標準正規分布の累積分布関数の値を返します。
311 NORM_S_INV 統計:標準正規分布の累積分布関数の逆関数値を返します。
312 NORMDIST 互換性:正規分布の累積分布関数の値を返します。
313 NORMINV 統計:正規分布の累積分布関数の逆関数値を返します。
314 NORMSDIST 互換性:標準正規分布の累積分布関数の値を返します。
315 NORMSINV 互換性:標準正規分布の累積分布関数の逆関数値を返します。
316 NOT   論理:引数の論理値(TRUEまたはFALSE)を逆にして返します。
317 NOW   日時:現在の日付と時刻に対応するシリアル値を返します。
318 NPER 財務:投資に必要な期間を返します。
319 NPV 財務:定期的に発生する一連の支払い(負の値)と収益(正の値)、および割引率を指定して、投資の正味現在価値を算出します。
320 NUMBERVALUE 文字列:文字列をロケールに依存しない方法で数値に変換します。
321 OCT2BIN エンジニアリング:8進数を2進数に変換します。
322 OCT2DEC エンジニアリング:8進数を10進数に変換します。
323 OCT2HEX エンジニアリング:8進数を16進数に変換します。
324 ODD 数学/三角:指定された数値を最も近い奇数に切り上げた値を返します。
325 ODDFPRICE 財務:1期目の日数が半端な証券に対して、額面$100あたりの価格を返します。
326 ODDFYIELD 財務:1期目の日数が半端な証券の利回りを返します。
327 ODDLPRICE 財務:最終期の日数が半端な証券に対して、額面$100あたりの価格を返します。
328 ODDLYIELD 財務:最終期の日数が半端な証券の利回りを返します。
329 OFFSET   検索/行列:指定された行数と列数だけシフトした位置にあるセルまたはセル範囲への参照(オフセット参照)を返します。
330 OR 論理:いずれかの引数がTRUEのときにTRUEを返します。
331 PDURATION 財務:投資が指定した価値に達するまでの投資期間を返します。
332 PEARSON 統計:ピアソンの積率相関係数rの値を返します。
333 PERCENTILE 互換性:特定の範囲に含まれるデータの第k百分位数に当たる値を返します。
334 PERCENTILE_EXC 統計:特定の範囲に含まれるデータの第k百分位数に当たる値を返します(kは0より大きく1より小さい値)。
335 PERCENTILE_INC 統計:特定の範囲に含まれるデータの第k百分位数に当たる値を返します。
336 PERCENTRANK 互換性:配列内での値の順位を百分率で表した値を返します。
337 PERCENTRANK_EXC 統計:配列内での値の順位を百分率(0より大きく1より小さい)で表した値を返します。
338 PERCENTRANK_INC 統計:配列内での値の順位を百分率で表した値を返します。
339 PERMUT 統計:与えられた標本数から指定した個数を選択する場合の順列を返します。
340 PERMUTATIONA 統計:指定した数の対象から、指定された数だけ(重複あり)抜き取る場合の順列の数を返します。
341 PHI 統計:標準正規分布の密度関数の値を返します。
342 PHONETIC 文字列:文字列からふりがなを抽出します。
343 PI 数学/三角:円周率πを返します。
344 PMT 財務:定期支払額を算出します。
345 POISSON 互換性:ポアソン確率の値を返します。
346 POISSON_DIST 統計:ポアソン確率の値を返します。
347 POWER 数学/三角:数値のべき乗を返します。
348 PPMT 財務:指定した期に支払われる元金を返します。
349 PRICE 財務:定期的に利息が支払われる証券に対して、額面$100あたりの価格を返します。
350 PRICEDISC 財務:割引証券の額面$100あたりの価格を返します。
351 PRICEMAT 財務:満期日に利息が支払われる証券に対して、額面$100あたりの価格を返します。
352 PROB 統計:指定した範囲に含まれる値が上限と下限との間に収まる確率を返します。
353 PRODUCT 数学/三角:引数リストの積を返します。
354 PROPER 文字列:文字列に含まれる英単語の先頭文字だけを大文字に変換します。
355 PV 財務:投資の現在価値を返します。
356 QUARTILE 互換性:配列に含まれるデータから四分位数を抽出します。
357 QUARTILE_EXC 統計:0より大きく1より小さい百分位値に基づいて、配列に含まれるデータから四分位数を返します。
358 QUARTILE_INC 統計:配列に含まれるデータから四分位数を抽出します。
359 QUOTIENT 数学/三角:除算の商の整数部を返します。
360 RADIANS 数学/三角:度をラジアンに変換します。
361 RAND   数学/三角:0以上1未満の乱数を返します。
362 RANDBETWEEN 数学/三角:指定された範囲内の整数の乱数を返します。
363 RANK 互換性:数値のリストの中で、指定した数値の序列を返します。
364 RANK_AVG 統計:数値のリストの中で、指定した数値の序列を返します。
365 RANK_EQ 統計:数値のリストの中で、指定した数値の序列を返します。
366 RATE 財務:投資の利率を返します。
367 RECEIVED 財務:全額投資された証券に対して、満期日に支払われる金額を返します。
368 REGISTER_ID   アドイン/オートメーション:あらかじめ登録されている、指定のダイナミックリンクライブラリ(DLL)またはコードリソースのレジスタIDを返します。
369 REPLACE 文字列:文字列中の指定された数の文字を他の文字に置き換えます。
370 REPLACEB  
371 REPT 文字列:文字列を指定された回数だけ繰り返して表示します。
372 RIGHT   文字列:文字列の末尾(右端)から指定された文字数の文字を返します。
373 RIGHTB    
374 ROMAN 数学/三角:アラビア数字を、ローマ数字を表す文字列に変換します。
375 ROUND 数学/三角:数値を四捨五入して指定された桁数にします。
376 ROUNDDOWN 数学/三角:数値を指定された桁数で切り捨てます。
377 ROUNDUP 数学/三角:数値を指定された桁数に切り上げます。
378 ROW   検索/行列:セル参照の行番号を返します。
379 ROWS   検索/行列:セル参照の行数を返します。
380 RRI 財務:投資の成長に対する等価利率を返します。
381 RSQ 統計:ピアソンの積率相関係数の2乗値を返します。
382 RTD 検索/行列:COMオートメーションに対応するプログラムからリアルタイムのデータを取得します。
383 SEARCH 文字列:指定された文字列を他の文字列の中で検索します。大文字と小文字は区別されません。
384 SEARCHB  
385 SEC 数学/三角:角度の正割を返します。
386 SECH 数学/三角:角度の双曲線正割を返します。
387 SECOND   日時:シリアル値を時刻の秒に変換します。
388 SERIESSUM 数学/三角:数式で定義されるべき級数を返します。
389 SHEET   情報:参照されるシートのシート番号を返します。
390 SHEETS   情報:参照内のシート数を返します。
391 SIGN   数学/三角:数値の正負を調べます。
392 SIN   数学/三角:指定された角度のサインを返します。
393 SINH 数学/三角:数値の双曲線正弦(ハイパーボリックサイン)を返します。
394 SKEW 統計:分布の歪度を返します。
395 SKEW_P 統計:人口に基づく分布の歪度を返します。歪度とは、分布の平均値周辺での両側の非対称度を表す値です。
396 SLN 財務:定額法(Straight-lineMethod)を使用して、資産の1期あたりの減価償却費を返します。
397 SLOPE 統計:回帰直線の傾きを返します。
398 SMALL 統計:指定されたデータの中で、k番目に小さなデータを返します。
399 SQL_REQUEST   アドイン/オートメーション:外部のデータソースと接続し、ワークシートからクエリを実行します。計算結果は配列として返されるため、マクロプログラミングの必要はありません。
400 SQRT   数学/三角:正の平方根を返します。
401 SQRTPI 数学/三角:(数値*π)の平方根を返します。
402 STANDARDIZE 統計:正規化された値を返します。
403 STDEV 互換性:引数を正規母集団の標本と見なし、標本に基づいて母集団の標準偏差の推定値を返します。
404 STDEV_P 統計:引数を母集団全体と見なし、母集団の標準偏差を返します。
405 STDEV_S 統計:引数を正規母集団の標本と見なし、標本に基づいて母集団の標準偏差の推定値を返します。
406 STDEVA   統計:数値、文字列、および論理値を含む引数を正規母集団の標本と見なし、母集団の標準偏差の推定値を返します。
407 STDEVP 互換性:引数を母集団全体と見なし、母集団の標準偏差を返します。
408 STDEVPA   統計:数値、文字列、および論理値を含む引数を母集団全体と見なし、母集団の標準偏差を返します。
409 STEYX 統計:回帰直線上の予測y値の標準誤差を返します。
410 SUBSTITUTE 文字列:文字列中の指定された文字を他の文字に置き換えます。
411 SUBTOTAL 数学/三角:リストまたはデータベースの集計値を返します。
412 SUM 数学/三角:引数を合計します。
413 SUMIF 数学/三角:指定された検索条件に一致するセルの値を合計します。
414 SUMIFS 数学/三角:セル範囲内で、複数の検索条件を満たすセルの値を合計します。
415 SUMPRODUCT 数学/三角:指定された配列で対応する要素の積を合計します。
416 SUMSQ 数学/三角:引数の2乗の和(平方和)を返します。
417 SUMX2MY2 数学/三角:2つの配列で対応する配列要素の平方差を合計します。
418 SUMX2PY2 数学/三角:2つの配列で対応する配列要素の平方和を合計します。
419 SUMXMY2 数学/三角:2つの配列で対応する配列要素の差を2乗して合計します。
420 SWITCH   論理:値の一覧に対して式を評価し、最初に一致する値に対応する結果を返します。いずれにも一致しない場合は、任意指定の既定値が返されます。
421 SYD 財務:級数法(Sum-of-Year'sDigitsMethod)を使用して、特定の期における減価償却費を返します。
422 T   文字列:引数を文字列に変換します。
423 T_DIST 統計:スチューデントのt分布のパーセンテージ(確率)を返します。
424 T_DIST_2T 統計:スチューデントのt分布のパーセンテージ(確率)を返します。
425 T_DIST_RT 統計:スチューデントのt分布の値を返します。
426 T_INV 統計:スチューデントのt分布のt値を、確率と自由度の関数として返します。
427 T_INV_2T 統計:スチューデントのt分布の逆関数値を返します。
428 T_TEST 統計:スチューデントのt検定における確率を返します。
429 TAN   数学/三角:指定された角度のタンジェントを返します。
430 TANH 数学/三角:数値の双曲線正接(ハイパーボリックタンジェント)を返します。
431 TBILLEQ 財務:米国財務省短期証券(TB)の債券換算利回りを返します。
432 TBILLPRICE 財務:米国財務省短期証券(TB)の額面$100あたりの価格を返します。
433 TBILLYIELD 財務:米国財務省短期証券(TB)の利回りを返します。
434 TDIST 互換性:スチューデントのt分布の値を返します。
435 TEXT 文字列:数値を書式設定した文字列に変換します。
436 TEXTJOIN   テキスト:複数の範囲や文字列からのテキストを結合し、結合する各テキスト値の間に、指定した区切り記号を挿入します。区切り記号が空の文字列の場合は、範囲が連結されます。
437 TIME   日時:指定した時刻に対応するシリアル値を返します。
438 TIMEVALUE   日時:時刻を表す文字列をシリアル値に変換します。
439 TINV 互換性:スチューデントのt分布の逆関数値を返します。
440 TODAY   日時:現在の日付に対応するシリアル値を返します。
441 TRANSPOSE 検索/行列:配列で指定された範囲のデータの行列変換を行います。
442 TREND 統計:回帰直線による予測値を配列で返します。
443 TRIM 文字列:文字列から余分なスペースを削除します。
444 TRIMMEAN 統計:データの中間項の平均を返します。
445 TRUNC   数学/三角:数値の小数部を切り捨てて、整数または指定された桁数にします。
446 TTEST 互換性:スチューデントのt検定における確率を返します。
447 TYPE   情報:データ型を表す数値を返します。
448 UNICHAR 文字列:指定された数値により参照されるUnicode文字を返します。
449 UNICODE 文字列:文字列の最初の文字に対応する番号(コードポイント)を返します。
450 UPPER   文字列:文字列に含まれる英字をすべて大文字に変換します。
451 VALUE   文字列:文字列を数値に変換します。
452 VAR 互換性:標本に基づいて母集団の分散の推定値(不偏分散)を返します。
453 VAR_P 統計:引数を母集団全体と見なし、母集団の分散(標本分散)を返します。
454 VAR_S 統計:標本に基づいて母集団の分散の推定値(不偏分散)を返します。
455 VARA   統計:数値、文字列、および論理値を含む引数を正規母集団の標本と見なし、標本に基づいて母集団の分散の推定値(不偏分散)を返します。
456 VARP 互換性:引数を母集団全体と見なし、母集団の分散(標本分散)を返します。
457 VARPA   統計:数値、文字列、および論理値を含む引数を母集団全体と見なし、母集団の分散(標本分散)を返します。
458 VDB 財務:倍額定率法または指定した方法を使用して、指定した期間における資産の減価償却費を返します。
459 VLOOKUP 検索/行列:配列の左端列で特定の値を検索し、対応するセルの値を返します。
460 WEBSERVICE Web:Webサービスからデータを返します。
461 WEEKDAY 日時:シリアル値を曜日に変換します。
462 WEEKNUM 日時:シリアル値をその年の何週目に当たるかを示す値に変換します。
463 WEIBULL 互換性:数値、文字列、および論理値を含む引数を母集団全体と見なし、母集団の分散(標本分散)を返します。
464 WEIBULL_DIST 統計:ワイブル分布の値を返します。
465 WORKDAY 日時:開始日から起算して、指定した稼動日数だけ前または後の日付に対応するシリアル値を返します。
466 WORKDAY_INTL 日時:週末がどの曜日で何日間あるかを示すパラメーターを使用して、開始日から起算して指定した稼働日数だけ前または後の日付に対応するシリアル値を返します。
467 XIRR 財務:定期的でないキャッシュフローに対する内部利益率を返します。
468 XNPV 財務:定期的でないキャッシュフローに対する正味現在価値を返します。
469 XOR 論理:すべての引数の排他的論理和を返します。
470 YEAR   日時:シリアル値を年に変換します。
471 YEARFRAC 日時:開始日と終了日を指定して、その間の期間が1年間に対して占める割合を返します。
472 YEN    
473 YIELD   財務:利息が定期的に支払われる証券の利回りを返します。
474 YIELDDISC 財務:米国財務省短期証券(TB)などの割引債の年利回りを返します。
475 YIELDMAT 財務:満期日に利息が支払われる証券の年利回りを返します。
476 Z_TEST 統計:z検定の片側P値を返します。
477 ZTEST 互換性:z検定の片側P値を返します。
478 False   論理:論理値FALSEを返します。
479 True   論理:論理値TRUEを返します。

ひっそりとExcel関数のおさらい(VLOOKUP関数/HLOOKUP関数)

今回はVLOOKUP関数、HLOOKUP関数について簡単にまとめてみます。

と、その前にちょっと雑談を。何かを学ぶには

  • 必要に迫られて勉強する
  • 今は必要ないけれど、とりあえず勉強する

という2パターンがあると思います。このうちの後者は意外と重要で、とりあえず知識を詰め込んでおくと、ある日「あれ?この仕事って、××を使えば簡単にできるんじゃね?」というひらめきを生んだりすることがあります。その頃には既に××に関する詳細を忘れていても、書籍やウェブサイト等を読み返してまた思い出せばいいのです。頭の片隅に何か材料がないと、そもそも、着想を得ることすら難しかったりします。
もし、時間を持て余しているのなら、余暇の過ごし方として「今は必要ない知識を蓄えてみる」のも一興かと。蓄積した知識が、忘れた頃に役に立つというのは、個人的には長い小説で伏線が回収されるのと似た快感を覚えます。

 

 

VLOOKUP関数

=VLOOKUP(検索値,範囲,列番号,[検索方法])[]内は省略可能な引数
VLOOKUP関数は、垂直(Vertical)方向に検索値を検索し、検索値の一致する行のn列目の値を返します。

  • 検索値:検索する値を直接入力するか、参照するセルを入力します。文字列を直接入力する場合は""で囲みます。
  • 範囲:検索する範囲を指定します。指定した範囲の左端を垂直方向に検索します。
  • 列番号:検索値と一致した行の、範囲の左端からn列目を返り値とします。
  • 検索方法:TRUEまたは1(および省略)で近似一致、FALSEまたは0で完全一致

 

例えば、=VLOOKUP(G2,A2:E7,3,FALSE)とした場合

f:id:kouten0430:20180202222910j:plain

 

 

HLOOKUP関数

=HLOOKUP(検索値,範囲,行番号,[検索方法])[]内は省略可能な引数
HLOOKUP関数は、水平(Horizontal)方向に検索値を検索し、検索値の一致する列のn行目の値を返します。

  • 検索値:検索する値を直接入力するか、参照するセルを入力します。文字列を直接入力する場合は""で囲みます。
  • 範囲:検索する範囲を指定します。指定した範囲の上端を水平方向に検索します。
  • 行番号:検索値と一致した列の、範囲の上端からn行目を返り値とします。
  • 検索方法:TRUEまたは1(および省略)で近似一致、FALSEまたは0で完全一致

 

例えば、=HLOOKUP(I3,B2:G6,4,FALSE)とした場合

f:id:kouten0430:20180202223429j:plain

ひっそりとExcel関数のおさらい(アドインの登録/編集/解除および削除)

前回、ユーザー定義関数(自作関数)を紹介しましたが、これをアドインとして登録する方法について書いておきます。

作成したユーザー定義関数を常にExcelで使用したい時は、ユーザー定義関数を作成したブックをアドインとして登録する必要があります。
個人用マクロブックからもユーザー定義関数を呼び出せますが、常に=PERSONAL.XLSB!BCD2BIN()のように記述する必要があるため、アドインとして登録するほうがおススメです。

目次

 

アドインの登録

標準モジュールなどにユーザー定義関数(Functionプロシージャ)が記述されたブックを、ファイルの種類をExcelアドイン(*.xlam)にして、任意の名前を付けて保存します。

f:id:kouten0430:20180128140411j:plain

 

保存場所を指定しなければ、\Users\ユーザー名\AppData\Roaming\Microsoft\AddIns〔環境によって異なる場合があります〕に保存されます。

 

Excelのオプションからアドインを選択し、設定を押します。

f:id:kouten0430:20180128140500j:plain

 

アドインとして登録するものにチェックを入れて、OKします。(一覧になければ、参照から保存場所を指定します)

f:id:kouten0430:20180128140537j:plain

 

これで、ユーザー定義関数がExcel共通で使用できるようになりました。
このようにオートコンプリートにも表示されるようになります。

f:id:kouten0430:20180128140620j:plain

 

アドインの編集

アドインを編集する場合は、AddInsフォルダ(または指定したフォルダ)にある、*.xlamファイルを編集し、上書き保存します。アドイン用のブックを増やすより、追記していくほうがスッキリすると思います。

 

アドインの解除および削除

アドインを解除する場合は、アドイン登録の際に入れたチェックを外します。削除する場合はチェックを外した後、*.xlamファイルを削除します(チェックを外さないと削除できません)。

 

ユーザー定義関数の中で他のユーザー定義関数を使うこともできるので、アイデアが次のアイデアを生むようなこともあります。自作関数を増やして、Excelを便利に楽しくしていきましょー。

ひっそりとExcel関数のおさらい(二進化十進数の相互変換)

今回は自作関数です。前回、基数変換について書きましたが、そういえば二進化十進数を相互変換する関数ってないんだなーと思い、作ってみました。無くても困りませんが、遊びで作ってみました。

目次 

 

そもそも二進化十進数って?

二進化十進数は、BCD(Binary Coded Decimal)とも呼ばれ、10進数の1桁を2進数の4桁で表現するというものです。

1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 00010000
11 00010001
12 00010010
13 00010011
14 00010100
15 00010101
16 00010110
17 00010111
18 00011000
19 00011001

左側がBCDでの10進数表現、右側が2進数表現です。

9までいくと桁上がりし、2進数の4桁が増えていくといった具合です。16進数でいうところのA,B,C,D,E,Fに該当する、1010,1011,1100,1101,1110,1111は、BCDでは使用しません。
桁を合わせた際に、2進数表現、16進数表現だった場合、どちらも非エンジニアの人には馴染みが薄いということで、事業用の設備なんかでBCDを採用しているケースがあります。(そもそも、馴染みのない人が設備の内部データに触れることがあるのか疑問ですが・・・)

 

BCD表現における10進数を2進数に変換する

=BCD2BIN(10進数)
例えば、10進数の「15」を普通に2進数変換すると「1111」ですが、これをBCD表現である「00010101」に変換します。
下記のコードをアドイン用ブックに追記するか、個人用マクロブックに追記することで、関数が使用できるようになります。

Function BCD2BIN(Bcd As String) As String
    '引数に10進数を指定します
    'BCD表現における10進数を2進数に変換します
    Dim BcdL As Integer
    Dim i As Integer
    
    BcdL = Len(Bcd)
    
    For i = 1 To BcdL
        BCD2BIN = BCD2BIN & WorksheetFunction.Hex2Bin(Mid(Bcd, i, 1), 4)
    Next i
End Function

 

BCD表現における2進数を10進数に変換する

=BIN2BCD(2進数)
例えば、2進数の「00010101」を普通に10進数変換すると「21」ですが、これをBCD表現である「15」に変換します。
下記のコードをアドイン用ブックに追記するか、個人用マクロブックに追記することで、関数が使用できるようになります。

Function BIN2BCD(Bin As String) As String
    '引数に2進数を指定します
    'BCD表現における2進数を10進数に変換する
    Dim BinL As Integer
    Dim i As Integer
    
    Bin = "000" & Bin
    BinL = Len(Bin)
    
    For i = 3 To BinL - 1 Step 4
        If 9 >= WorksheetFunction.Bin2Dec(Mid(Bin, BinL - i, 4)) Then
            BIN2BCD = WorksheetFunction.Bin2Dec(Mid(Bin, BinL - i, 4)) & BIN2BCD
        Else    '9を超える場合はエラー表示し、プログラムを終了する
            BIN2BCD = "Error"
            Exit Function
        End If
    Next i
End Function