ユニークな個数をカウントする方法

Excelで個数をカウントするときはCOUNTを使います。
では重複なしで個数をカウントするときはどうすればいいでしょうか。 (さらに…)

INDEXとMATCHの組合せを覚える必要はない

最近、YouTubeを見ていたら「VLOOKUPでなくINDEXとMATCHの組合せを使え」という動画がいくつか表示されました。
VLOOKUPの欠点として「検索範囲の左側にある列を戻り範囲として使えない」ということがあります。
INDEXとMATCHを使うとこれが解消されます。 (さらに…)

Googleスプレッドシートで英単語帳を作る方法

以前、Google翻訳で英単語の意味を一括して調べる方法を紹介しましたが、もっと簡単な方法を知りましたので紹介します。 (さらに…)

Excelで年齢を求める方法

Excelで年齢や経過年数を求める場面があります。
DATEDIFという関数を使えば求められますが、なぜかExcelはこれを標準の関数とはしていないようです。
以下、A1セルに生年月日、B1セルに基準日が入力されているとします。
このとき、C1セルに数式を入力します。 (さらに…)

Excelの列番号を英字に変換するユーザー定義関数

「(1,1)」のセルならば「A1」と表示したいのですが、これを行うには、1ならばA、2ならばB、27ならばAAというように、列を英字に変換する必要があります。
ヘルプを調べましたが見付からなかったのでユーザー定義関数を作ってみました。 (さらに…)

PHPのpreg_match_allをJavaScriptで再現

PHPにはpreg_match_allという関数があります。正規表現を使い、マッチする文字列を全て取得できます。括弧を使うとその部分も取得できます。テキストファイルやHTMLファイルからパターンに沿った文字列を簡単に取得できるのでとても便利です。

一方、JavaScriptにはmatchというメソッドがあります。gフラグを指定するとマッチする文字列を全て取得することができます。ただし括弧を使ってその部分を取得するということはできません。
そこで、preg_match_allを再現する方法を考えました。

PHPのpreg_match_allは「preg_match_all($pattern, $subject, $matches, $flags)」のように使います。
$patternは"/正規表現/フラグ"のように指定します。
$subjectは対象となる文字列です。
$matchesにマッチした文字列が配列として格納されます。
$flagsはマッチさせる順番です。詳細は後述します。
下はこれをJavaScriptで再現したものです。 (さらに…)

JavaScriptでExcelのRANK関数を再現

配列中の順位を調べる方法を考えました。
ExcelにRANK関数がありますので、これを再現してみます。

サンプルは下の通りです。
updownに従ってarrs内の数値を並べ替えたとき、valueが何番目に位置するかを返します。
updownは、省略または0は降順(最多が1位)、0以外は昇順(最少が1位)となります。 (さらに…)

VBAのユーザー定義関数で引数を省略

VBAのユーザー定義関数で引数を省略する方法です。
下に示す関数はaとbの二つの引数を与え、合計を返します。
引数に「Optional」を付けると省略することができます。また初期値を与えることができます。

Function kansu(a, Optional b = 0)
    kansu = a + b
End Function

例えば「=kansu(2,3)」とすると2+3で「5」を返します。
「=kansu(2)」のように2番目の引数を省略すると初期値の0を与えたことになりますので、2+0で「2」を返します。
初期値を与えなかったときは「IsMissing」で値がセットされたかどうか判定できます。セットされていない場合、TRUEになります。

日付をカウントするユーザー定義関数「COUNTDATE」

選択範囲の日付を条件に応じてカウントするユーザー定義関数を作ってみました。

VBA

Function COUNTDATE(hani As Range, nen As Long, tsuki As Long, hi As Long) As Long
    Dim v As Variant
    Dim ct As Long
    ct = 0
    For Each c In hani
        v = c.Value
        If IsDate(v) Then
            If (nen = 0 Or Year(v) = nen) And (tsuki = 0 Or Month(v) = tsuki) And (hi = 0 Or Day(v) = hi) Then
                ct = ct + 1
            End If
        End If
    Next c
    COUNTDATE = ct
End Function

書式

COUNTDATE(範囲,年,月,日)

「= COUNTDATE("A1:C50", 2013, 2, 5)」のようにして使います。
例えば、年に「2013」、月に「2」、日に「5」を指定すると「2013-2-5」に合致するセルの数を返します。

年、月、日は「0」を指定することもできます。
例えば、年に「0」、月に「2」、日に「5」を指定すると、年に関わらず、2月5日であるセルの数を返します。「2011-2-5」「2012-2-5」「2013-2-5」などを数えます。
例えば、年に「0」、月に「2」、日に「0」を指定すると、年や日に関わらず、2月であるセルの数を返します。「2011-2-3」「2012-2-1」「2013-2-5」などを数えます。
全て「0」を指定すると、日付がセットされているセルの数を返します。

JavaScriptでPHPのmktime関数とdate関数を再現

JavaScriptの日付の扱いはとても面倒です。
一方、PHPではdateという関数があって、年月日などの整形がとても簡単です。
完全再現というわけにはいきませんが、JavaScriptでdate関数を使う方法を考えました。 (さらに…)

古い記事

タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報