ユニークな個数をカウントする方法
Excelで個数をカウントするときはCOUNTを使います。
では重複なしで個数をカウントするときはどうすればいいでしょうか。 (さらに…)
ゆるくつくる stabuckyのブログ
Excelで個数をカウントするときはCOUNTを使います。
では重複なしで個数をカウントするときはどうすればいいでしょうか。 (さらに…)
最近、YouTubeを見ていたら「VLOOKUPでなくINDEXとMATCHの組合せを使え」という動画がいくつか表示されました。
VLOOKUPの欠点として「検索範囲の左側にある列を戻り範囲として使えない」ということがあります。
INDEXとMATCHを使うとこれが解消されます。 (さらに…)
以前、Google翻訳で英単語の意味を一括して調べる方法を紹介しましたが、もっと簡単な方法を知りましたので紹介します。 (さらに…)
Excelで年齢や経過年数を求める場面があります。
DATEDIFという関数を使えば求められますが、なぜかExcelはこれを標準の関数とはしていないようです。
以下、A1セルに生年月日、B1セルに基準日が入力されているとします。
このとき、C1セルに数式を入力します。 (さらに…)
「(1,1)」のセルならば「A1」と表示したいのですが、これを行うには、1ならばA、2ならばB、27ならばAAというように、列を英字に変換する必要があります。
ヘルプを調べましたが見付からなかったのでユーザー定義関数を作ってみました。 (さらに…)
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で再現したものです。 (さらに…)
配列中の順位を調べる方法を考えました。
ExcelにRANK関数がありますので、これを再現してみます。
サンプルは下の通りです。
updownに従ってarrs内の数値を並べ替えたとき、valueが何番目に位置するかを返します。
updownは、省略または0は降順(最多が1位)、0以外は昇順(最少が1位)となります。 (さらに…)
VBAのユーザー定義関数で引数を省略する方法です。
下に示す関数はaとbの二つの引数を与え、合計を返します。
引数に「Optional」を付けると省略することができます。また初期値を与えることができます。
例えば「=kansu(2,3)」とすると2+3で「5」を返します。
「=kansu(2)」のように2番目の引数を省略すると初期値の0を与えたことになりますので、2+0で「2」を返します。
初期値を与えなかったときは「IsMissing」で値がセットされたかどうか判定できます。セットされていない場合、TRUEになります。
選択範囲の日付を条件に応じてカウントするユーザー定義関数を作ってみました。
「= 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ではdateという関数があって、年月日などの整形がとても簡単です。
完全再現というわけにはいきませんが、JavaScriptでdate関数を使う方法を考えました。 (さらに…)