<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>関数 | You Look Too Cool</title>
	<atom:link href="https://stabucky.com/wp/archives/tag/function/feed" rel="self" type="application/rss+xml" />
	<link>https://stabucky.com/wp</link>
	<description>ゆるくつくる stabuckyのブログ</description>
	<lastBuildDate>Sun, 24 Aug 2025 11:27:59 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://stabucky.com/wp/wp-content/uploads/2024/05/cropped-stabucky-32x32.png</url>
	<title>関数 | You Look Too Cool</title>
	<link>https://stabucky.com/wp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Excelで重複なしの個数をカウントする方法</title>
		<link>https://stabucky.com/wp/archives/14058</link>
					<comments>https://stabucky.com/wp/archives/14058#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Mon, 12 Apr 2021 03:57:40 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">https://stabucky.com/wp/?p=14058</guid>

					<description><![CDATA[Excelで個数をカウントするときはCOUNTを使います。 では重複なしでユニークな個数をカウントするときはどうすればいいでしょうか。 目次 方法解説COUNTIF(A1:A6,A1:A6)の部分1/COUNTIF(A1 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Excelで個数をカウントするときはCOUNTを使います。<br />
では重複なしでユニークな個数をカウントするときはどうすればいいでしょうか。<span id="more-14058"></span></p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">方法</a></li><li><a href="#toc2" tabindex="0">解説</a><ol><li><a href="#toc3" tabindex="0">COUNTIF(A1:A6,A1:A6)の部分</a></li><li><a href="#toc4" tabindex="0">1/COUNTIF(A1:A6,A1:A6)の部分</a></li><li><a href="#toc5" tabindex="0">SUMPRODUCT(1/COUNTIF(A1:A6,A1:A6))の部分</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">方法</span></h2>
<p>例えばA列にa,b,c,a,a,bと入力されていたとします。</p>
<p><img decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2021/04/e1.png" alt="" width="150" height="156" class="alignnone size-full wp-image-14064" /></p>
<p>普通にカウントすると6になります。<br />
一方、重複なしでカウントすると3になります。<br />
これをExcelの関数を使って求めるには次のようにします。</p>
<p>=SUMPRODUCT(1/COUNTIF(A1:A6,A1:A6))</p>
<p>「なんじゃこれ」としか言えませんが、計算結果は「3」となり、正しいです。</p>
<p>仕組みについて丁寧に説明したいと思います。</p>
<h2><span id="toc2">解説</span></h2>
<h3><span id="toc3">COUNTIF(A1:A6,A1:A6)の部分</span></h3>
<p>A列にa,b,c,a,a,bと入力します。<br />
B1に「=COUNTIF(A1:A6,A1:A6)」と入力します。<br />
計算結果は「3」となります。</p>
<p><img fetchpriority="high" decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2021/04/e2.png" alt="" width="381" height="186" class="alignnone size-full wp-image-14065" /></p>
<p>ここが分かりにくいです。<br />
一般にCOUNTIFは「=COUNTIF(A1:A6,A1)」のように範囲とセルを指定します。<br />
しかしここでは範囲と範囲を指定しています。<br />
このように、セルで指定する代わりに範囲を指定した場合、計算結果は配列になります。</p>
<p>次のようにすると分かります。<br />
「=COUNTIF(A1:A6,A1:A6)」と入力した後、エンターを押します。<br />
セルの内容が「{=COUNTIF(A1:A6,A1:A6)}」に変わります。<br />
そしてB列が3,2,1,3,3,2となります。<br />
このような使い方を配列数式といいます。<br />
引数を値(セル)で与える代わりに配列(範囲)で与え、同じような計算を一気に行う仕組みです。</p>
<p><img decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2021/04/e3.png" alt="" width="381" height="186" class="alignnone size-full wp-image-14066" /></p>
<p>この場合は<br />
「aであるセルが3個」「bであるセルが2個」…<br />
という計算を一気にやっています。<br />
先程、「計算結果は「3」となります。」と書きましたが、これは配列の先頭の要素が表示されていたことになります。</p>
<p><img loading="lazy" decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2021/04/e4.png" alt="" width="381" height="185" class="alignnone size-full wp-image-14067" /></p>
<h3><span id="toc4">1/COUNTIF(A1:A6,A1:A6)の部分</span></h3>
<p>「=COUNTIF(A1:A6,A1:A6)」の結果は<br />
3,2,1,3,3,2<br />
になります。</p>
<p>次に「=COUNTIF(A1:A6,A1:A6)」の結果は<br />
1/3,1/2,1/1,1/3,1/3,1/2<br />
になります。<br />
1/3が3個、1/2が2個、1/1が1個となっていることに注意してください。</p>
<p><img loading="lazy" decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2021/04/e5.png" alt="" width="395" height="186" class="alignnone size-full wp-image-14068" /></p>
<h3><span id="toc5">SUMPRODUCT(1/COUNTIF(A1:A6,A1:A6))の部分</span></h3>
<p>SUMPRODUCTは範囲と範囲を指定しそれぞれのペアの積を算出し、合計します。<br />
<strong>引数として配列を一つだけ与えた場合は、単に配列の要素の合計を計算します。</strong></p>
<p>今回のケースは配列を一つだけ与えたケースなので要素の合計、つまり<br />
1/3,1/2,1/1,1/3,1/3,1/2<br />
の合計なので3になります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/14058/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>INDEXとMATCHの組合せを覚える必要はない</title>
		<link>https://stabucky.com/wp/archives/12842</link>
					<comments>https://stabucky.com/wp/archives/12842#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Tue, 25 Feb 2020 03:52:20 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">https://stabucky.com/wp/?p=12842</guid>

					<description><![CDATA[最近、YouTubeを見ていたら「VLOOKUPでなくINDEXとMATCHの組合せを使え」という動画がいくつか表示されました。 VLOOKUPの欠点として「検索範囲の左側にある列を戻り範囲として使えない」ということがあ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>最近、YouTubeを見ていたら「VLOOKUPでなくINDEXとMATCHの組合せを使え」という動画がいくつか表示されました。<br />
VLOOKUPの欠点として「検索範囲の左側にある列を戻り範囲として使えない」ということがあります。<br />
INDEXとMATCHを使うとこれが解消されます。<span id="more-12842"></span></p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">VLOOKUP(検索値, 範囲, 列, FALSE)</div></div>
<p>の代わりに</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0))</div></div>
<p>とすれば同様の使い方ができます。いずれも一致モードは完全一致です。</p>
<p>INDEXとMATCHの組合せだと検索範囲の左側にある列を戻り範囲として使えます。</p>
<p>しかし、使い方を覚えられますか。<br />
VLOOKUPが使えるとExcelの利用の幅が広がります。便利な半面、使い方を覚えるのが厄介です。初心者にとっては最初の壁です。<br />
この関数を「二つの関数を組み合わせた手法に置き換えろ」というのですから難易度は増します。</p>
<p>もし既にVLOOKUPを使いこなしているのであれば、NDEXとMATCHの組合せを覚える必要はないと思います。<br />
他人とファイルの共有をしているのであればなおさらです。「何だ、これは？」となるのが明らかだからです。</p>
<p>また今後、XLOOKUPの搭載が予定されています。</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">XLOOKUP(検索値, 検索範囲, 戻り範囲)</div></div>
<p>とします。簡単です。</p>
<ul>
<li>検索範囲の左にある列を戻り範囲として使える。</li>
<li>一致モードのデフォルトは完全一致。</li>
<li>戻り値として配列を返すことができる。</li>
</ul>
<p>このようなメリットがあります。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/12842/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Googleスプレッドシートで英単語帳を作る方法</title>
		<link>https://stabucky.com/wp/archives/9308</link>
					<comments>https://stabucky.com/wp/archives/9308#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Sat, 11 Mar 2017 02:55:51 +0000</pubDate>
				<category><![CDATA[デジタル]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[変換]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=9308</guid>

					<description><![CDATA[以前、Google翻訳で英単語の意味を一括して調べる方法を紹介しましたが、もっと簡単な方法を知りましたので紹介します。 GoogleスプレッドシートにはGOOGLETRANSLATEという関数があります。 これを使うとス [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>以前、<a href="https://stabucky.com/wp/archives/3472">Google翻訳で英単語の意味を一括して調べる方法</a>を紹介しましたが、もっと簡単な方法を知りましたので紹介します。<span id="more-9308"></span></p>
<p>GoogleスプレッドシートにはGOOGLETRANSLATEという関数があります。<br />
これを使うとスプレッドシート上で翻訳ができるのです。<br />
例えばA列に英語を入力しておきます。<br />
B列に「GOOGLETRANSLATE(A2,&#8221;en&#8221;,&#8221;ja&#8221;)」のように入力します。<br />
1個めの引数は翻訳元の文章。<br />
2個めの引数は翻訳元の言語。英語ならば「en」とします。<br />
3個めの引数は翻訳先の言語。日本語ならば「ja」とします。</p>
<p><img loading="lazy" decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2017/03/googletranslate.png" alt="" width="400" height="233" class="img-responsive" /></p>
<p>これを使えば英単語帳が簡単に作れます。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/9308/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelで年齢を求める方法</title>
		<link>https://stabucky.com/wp/archives/7074</link>
					<comments>https://stabucky.com/wp/archives/7074#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Mon, 16 Feb 2015 11:51:41 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=7074</guid>

					<description><![CDATA[Excelで年齢や経過年数を求める場面があります。 DATEDIFという関数を使えば求められますが、なぜかExcelはこれを標準の関数とはしていないようです。 以下、A1セルに生年月日、B1セルに基準日が入力されていると [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Excelで年齢や経過年数を求める場面があります。<br />
DATEDIFという関数を使えば求められますが、なぜかExcelはこれを標準の関数とはしていないようです。<br />
以下、A1セルに生年月日、B1セルに基準日が入力されているとします。<br />
このとき、C1セルに数式を入力します。<span id="more-7074"></span></p>
<h3><span id="toc1">DATEDIFを使う</span></h3>
<p>次のようにします。</p>
<p>=DATEDIF(A1,B1,&#8221;y&#8221;)</p>
<p>最も簡単です。<br />
ただし標準の関数ではないので私はなるべく使わないようにしています。</p>
<h3><span id="toc2">年数を求め月日で調整する方法</span></h3>
<p>DATEDIFを使わずに年齢を求める方法を考えます。</p>
<p>=YEAR(B1)-YEAR(A1)-IF(MONTH(B1)&gt;MONTH(A1),0,IF(MONTH(B1)&lt;MONTH(A1),1,IF(DAY(B1)&lt;DAY(A1),1,0)))</p>
<p>適当に改行を入れると次の通りです。</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">=YEAR(B1)-YEAR(A1)<br />
-IF(MONTH(B1)&gt;MONTH(A1),<br />
&nbsp; 0,<br />
&nbsp; IF(MONTH(B1)&lt;MONTH(A1),<br />
&nbsp; &nbsp; 1,<br />
&nbsp; &nbsp; IF(DAY(B1)&lt;DAY(A1),<br />
&nbsp; &nbsp; &nbsp; 1,<br />
&nbsp; &nbsp; &nbsp; 0<br />
&nbsp; &nbsp; )<br />
&nbsp; )<br />
)</div></div>
<p>まず「YEAR(B1)-YEAR(A1)」で年数を計算します。<br />
ただし誕生日が到来していない場合は1をマイナスする必要があります。<br />
「MONTH(B1)&gt;MONTH(A1)」ならば誕生月が到来しているのでマイナスしません。<br />
「MONTH(B1)&lt;MONTH(A1)」ならば誕生月が到来していないので1をマイナスします。<br />
これら以外のケース(「MONTH(B1)=MONTH(A1)」)のとき「DAY(B1)&lt;DAY(A1)」ならば誕生日が到来していないので1をマイナスします。</p>
<h3><span id="toc3">8桁表示の年月日の差をとる方法</span></h3>
<p>ここからが本題です。<br />
要するに年未満の月日が到来しているかどうかなので次のような数式が考えられます。</p>
<p>=INT((TEXT(B1,&#8221;yyyymmdd&#8221;)-TEXT(A1,&#8221;yyyymmdd&#8221;))/10000)</p>
<p>年月日を8桁の数で表わし、差を求め、10000で割って、端数を切り捨てます。<br />
例えば2000年6月15日から2015年3月1日までの年数を求めるとすると、年の差は15ですが月日が到来していないので14になります。<br />
8桁で計算すると20150301-20000615=149686となり10000で割って端数を切り捨てると14となります。</p>
<p>元々、年月日を8桁で表示しているケースなどでは、そのまま使えます。</p>
<p>=INT((B1-A1)/10000)</p>
<p>これが最も簡単な手法だと思います。Excel以外でも使える手法です。</p>
<h3><span id="toc4">ユーザー定義関数</span></h3>
<p>VBAでユーザー定義関数を作ってみます。<br />
「年数を求め月日で調整する方法」でユーザー定義関数を作ると次のとおりです。</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Function age(date_from, date_to)<br />
&nbsp; &nbsp; age = Year(date_to) - Year(date_from)<br />
&nbsp; &nbsp; If Month(date_from) &gt; Month(date_to) Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; age = age - 1<br />
&nbsp; &nbsp; ElseIf Month(date_from) = Month(date_to) And Day(date_from) &gt; Day(date_to) Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; age = age - 1<br />
&nbsp; &nbsp; End If<br />
End Function</div></div>
<p>「8桁表示の年月日の差をとる方法」で作ると次のとおりです。</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Function age(date_from, date_to)<br />
&nbsp; &nbsp; age = Int((Format(date_to, &quot;yyyymmdd&quot;) - Format(date_from, &quot;yyyymmdd&quot;)) / 10000)<br />
End Function</div></div>
<p><img loading="lazy" decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2013/09/excel_logo.png" alt="" width="300" height="295" class="alignnone size-full wp-image-11154" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/7074/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Excelの列番号を英字に変換するユーザー定義関数</title>
		<link>https://stabucky.com/wp/archives/6771</link>
					<comments>https://stabucky.com/wp/archives/6771#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Wed, 08 Oct 2014 10:22:31 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=6771</guid>

					<description><![CDATA[「(1,1)」のセルならば「A1」と表示したいのですが、これを行うには、1ならばA、2ならばB、27ならばAAというように、列を英字に変換する必要があります。 ヘルプを調べましたが見付からなかったのでユーザー定義関数を作 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>「(1,1)」のセルならば「A1」と表示したいのですが、これを行うには、1ならばA、2ならばB、27ならばAAというように、列を英字に変換する必要があります。<br />
ヘルプを調べましたが見付からなかったのでユーザー定義関数を作ってみました。<span id="more-6771"></span></p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Function num2xlcol(num)<br />
&nbsp; &nbsp; 'エクセルの列番号を英字に変換<br />
&nbsp; &nbsp; Dim pos(3) As Long<br />
&nbsp; &nbsp; pos(1) = num Mod 26<br />
&nbsp; &nbsp; If pos(1) = 0 Then pos(1) = 26<br />
&nbsp; &nbsp; pos(2) = ((num - pos(1)) / 26) Mod 26<br />
&nbsp; &nbsp; If pos(2) = 0 Then pos(2) = 26<br />
&nbsp; &nbsp; pos(3) = (num - pos(2) * 26 - pos(1)) / 26 / 26<br />
&nbsp; &nbsp; If num &lt;= 26 Then 'A-Z<br />
&nbsp; &nbsp; &nbsp; &nbsp; num2xlcol = chr(64 + pos(1))<br />
&nbsp; &nbsp; ElseIf num &lt;= 702 Then 'AA-ZZ<br />
&nbsp; &nbsp; &nbsp; &nbsp; num2xlcol = chr(64 + pos(2)) &amp; chr(64 + pos(1))<br />
&nbsp; &nbsp; ElseIf num &lt;= 18278 Then 'AAA-ZZZ<br />
&nbsp; &nbsp; &nbsp; &nbsp; num2xlcol = chr(64 + pos(3)) &amp; chr(64 + pos(2)) &amp; chr(64 + pos(1))<br />
&nbsp; &nbsp; Else<br />
&nbsp; &nbsp; &nbsp; &nbsp; num2xlcol = &quot;Error&quot;<br />
&nbsp; &nbsp; End If<br />
End Function</div></div>
<p>Excel2007だと「XFD」(16384列)までありますが、「ZZZ」(18278列)まで対応しています。</p>
<p><img loading="lazy" decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2013/09/excel_logo.png" alt="" width="300" height="295" class="alignnone size-full wp-image-11154" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/6771/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PHPのpreg_match_allをJavaScriptで再現</title>
		<link>https://stabucky.com/wp/archives/6123</link>
					<comments>https://stabucky.com/wp/archives/6123#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Tue, 04 Feb 2014 13:10:51 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[preg_match_all]]></category>
		<category><![CDATA[再現]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=6123</guid>

					<description><![CDATA[目次 やりたいことpreg_match_allサンプル実行結果PREG_PATTERN_ORDERPREG_SET_ORDER やりたいこと PHPにはpreg_match_allという関数があります。正規表現を使い、マ [&#8230;]]]></description>
										<content:encoded><![CDATA[
  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">やりたいこと</a></li><li><a href="#toc2" tabindex="0">preg_match_all</a></li><li><a href="#toc3" tabindex="0">サンプル</a></li><li><a href="#toc4" tabindex="0">実行結果</a><ol><li><a href="#toc5" tabindex="0">PREG_PATTERN_ORDER</a></li><li><a href="#toc6" tabindex="0">PREG_SET_ORDER</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">やりたいこと</span></h2>
<p>PHPにはpreg_match_allという関数があります。正規表現を使い、マッチする文字列を全て取得できます。括弧を使うとその部分も取得できます。テキストファイルやHTMLファイルからパターンに沿った文字列を簡単に取得できるのでとても便利です。</p>
<p>一方、JavaScriptにはmatchというメソッドがあります。gフラグを指定するとマッチする文字列を全て取得することができます。ただし括弧を使ってその部分を取得するということはできません。<br />
そこで、preg_match_allを再現する方法を考えました。</p>
<p>PHPのpreg_match_allは「preg_match_all($pattern, $subject, $matches, $flags)」のように使います。<br />
$patternは&#8221;/正規表現/フラグ&#8221;のように指定します。<br />
$subjectは対象となる文字列です。<br />
$matchesにマッチした文字列が配列として格納されます。<br />
$flagsはマッチさせる順番です。詳細は後述します。<br />
下はこれをJavaScriptで再現したものです。</p>
<h2><span id="toc2">preg_match_all</span></h2>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000066; font-weight: bold;">function</span> preg_match_all<span style="color: #009900;">&#40;</span>pattern<span style="color: #339933;">,</span> subject<span style="color: #339933;">,</span> flags<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">var</span> recs<span style="color: #339933;">,</span> re<span style="color: #339933;">,</span> lines<span style="color: #339933;">,</span> parts<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> j<span style="color: #339933;">,</span> lines_length<span style="color: #339933;">,</span> parts_length<span style="color: #339933;">;</span><br />
&nbsp; recs <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; re <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span>pattern<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;gm&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; lines <span style="color: #339933;">=</span> subject.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>re<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; re <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span>pattern<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; lines_length <span style="color: #339933;">=</span> lines.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> lines_length<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; parts <span style="color: #339933;">=</span> lines<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>re<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; parts_length <span style="color: #339933;">=</span> parts.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>flags <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;PREG_PATTERN_ORDER&quot;</span> <span style="color: #339933;">||</span> flags <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> parts_length<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> <span style="color: #009900;">&#40;</span>recs<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; recs<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; recs<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> parts<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>flags <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;PREG_SET_ORDER&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; recs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> parts_length<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; recs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> parts<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> recs<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>patternは正規表現を指定します。フラグは指定しません(できません)。「\」を使うときは「\\」のように二重にします。<br />
subjectは対象となる文字列です。<br />
flagsは「PREG_PATTERN_ORDER」(デフォルト)または「PREG_SET_ORDER」を指定します。詳細は下の実行結果を参照ください。<br />
PHPでは$matchesのように配列変数を指定しこれに格納されますが、こちらは戻り値が配列になります。</p>
<h2><span id="toc3">サンプル</span></h2>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000066; font-weight: bold;">var</span> subject<span style="color: #339933;">,</span> pattern<span style="color: #339933;">,</span> flags<span style="color: #339933;">,</span> recs<span style="color: #339933;">;</span><br />
subject <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;a:123<span style="color: #000099; font-weight: bold;">\n</span>b:456<span style="color: #000099; font-weight: bold;">\n</span>c:789<span style="color: #000099; font-weight: bold;">\n</span>d:012&quot;</span><span style="color: #339933;">;</span><br />
pattern <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;([a-z]):([0-9]+)&quot;</span><span style="color: #339933;">;</span><br />
flags <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;PREG_PATTERN_ORDER&quot;</span><span style="color: #339933;">;</span><span style="color: #006600; font-style: italic;">//または&quot;PREG_SET_ORDER&quot;</span><br />
recs <span style="color: #339933;">=</span> preg_match_all<span style="color: #009900;">&#40;</span>pattern<span style="color: #339933;">,</span> subject<span style="color: #339933;">,</span> flags<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></div>
<h2><span id="toc4">実行結果</span></h2>
<p>戻り値は2次元の配列になります。flagsの指定で格納の順番が変わります。</p>
<h3><span id="toc5">PREG_PATTERN_ORDER</span></h3>
<p>&#8220;a:123\nb:456\nc:789\nd:012&#8243;に対して正規表現&#8221;([a-z]):([0-9]+)&#8221;で実行し、戻り値はrecsとします。<br />
recs[0]には&#8221;([a-z]):([0-9]+)&#8221;にマッチする全ての文字列が配列で返ります。<br />
recs[1]には1番目の括弧&#8221;([a-z])&#8221;にマッチする全ての文字列が配列で返ります。<br />
recs[2]には2番目の括弧&#8221;([0-9]+)&#8221;にマッチする全ての文字列が配列で返ります。</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">'0' ...<br />
&nbsp; &nbsp; '0' =&gt; &quot;a:123&quot;<br />
&nbsp; &nbsp; '1' =&gt; &quot;b:456&quot;<br />
&nbsp; &nbsp; '2' =&gt; &quot;c:789&quot;<br />
&nbsp; &nbsp; '3' =&gt; &quot;d:012&quot;<br />
'1' ...<br />
&nbsp; &nbsp; '0' =&gt; &quot;a&quot;<br />
&nbsp; &nbsp; '1' =&gt; &quot;b&quot;<br />
&nbsp; &nbsp; '2' =&gt; &quot;c&quot;<br />
&nbsp; &nbsp; '3' =&gt; &quot;d&quot;<br />
'2' ...<br />
&nbsp; &nbsp; '0' =&gt; &quot;123&quot;<br />
&nbsp; &nbsp; '1' =&gt; &quot;456&quot;<br />
&nbsp; &nbsp; '2' =&gt; &quot;789&quot;<br />
&nbsp; &nbsp; '3' =&gt; &quot;012&quot;</div></div>
<h3><span id="toc6">PREG_SET_ORDER</span></h3>
<p>&#8220;a:123\nb:456\nc:789\nd:012&#8243;に対して正規表現&#8221;([a-z]):([0-9]+)&#8221;で実行し、戻り値はrecsとします。<br />
recs[0]には&#8221;([a-z]):([0-9]+)&#8221;にマッチする最初の文字列が返ります。recs[0][0]に文字列全体、recs[0][1]に1番目の括弧&#8221;([a-z])&#8221;、recs[0][2]に2番目の括弧&#8221;([0-9]+)&#8221;にマッチする文字列が配列で返ります。<br />
recs[1]には2番目にマッチする文字列、部分が配列で返ります。</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">'0' ...<br />
&nbsp; &nbsp; '0' =&gt; &quot;a:123&quot;<br />
&nbsp; &nbsp; '1' =&gt; &quot;a&quot;<br />
&nbsp; &nbsp; '2' =&gt; &quot;123&quot;<br />
'1' ...<br />
&nbsp; &nbsp; '0' =&gt; &quot;b:456&quot;<br />
&nbsp; &nbsp; '1' =&gt; &quot;b&quot;<br />
&nbsp; &nbsp; '2' =&gt; &quot;456&quot;<br />
'2' ...<br />
&nbsp; &nbsp; '0' =&gt; &quot;c:789&quot;<br />
&nbsp; &nbsp; '1' =&gt; &quot;c&quot;<br />
&nbsp; &nbsp; '2' =&gt; &quot;789&quot;<br />
'3' ...<br />
&nbsp; &nbsp; '0' =&gt; &quot;d:012&quot;<br />
&nbsp; &nbsp; '1' =&gt; &quot;d&quot;<br />
&nbsp; &nbsp; '2' =&gt; &quot;012&quot;</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/6123/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JavaScriptでExcelのRANK関数を再現</title>
		<link>https://stabucky.com/wp/archives/5702</link>
					<comments>https://stabucky.com/wp/archives/5702#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Mon, 28 Oct 2013 21:13:10 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[配列]]></category>
		<category><![CDATA[関数]]></category>
		<category><![CDATA[順位]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=5702</guid>

					<description><![CDATA[配列中の順位を調べる方法を考えました。 ExcelにRANK関数がありますので、これを再現してみます。 サンプルは下の通りです。 updownに従ってarrs内の数値を並べ替えたとき、valueが何番目に位置するかを返し [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>配列中の順位を調べる方法を考えました。<br />
ExcelにRANK関数がありますので、これを再現してみます。</p>
<p>サンプルは下の通りです。<br />
updownに従ってarrs内の数値を並べ替えたとき、valueが何番目に位置するかを返します。<br />
updownは、省略または0は降順(最多が1位)、0以外は昇順(最少が1位)となります。<span id="more-5702"></span></p>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000066; font-weight: bold;">function</span> rank<span style="color: #009900;">&#40;</span>value<span style="color: #339933;">,</span> arrs<span style="color: #339933;">,</span> updown<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">var</span> i<span style="color: #339933;">,</span> thisrank<span style="color: #339933;">,</span> array_length<span style="color: #339933;">,</span> sign<span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>updown<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; updown <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; sign <span style="color: #339933;">=</span> updown <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span> <span style="color: #339933;">?</span> <span style="color: #CC0000;">1</span> <span style="color: #339933;">:</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp; thisrank <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp; array_length <span style="color: #339933;">=</span> arrs.<span style="color: #660066;">length</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> array_length<span style="color: #339933;">;</span> i <span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>sign <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>arrs<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> value<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; thisrank <span style="color: #339933;">++;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> thisrank<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>例えば次のようにします。<br />
「20」は配列の中で昇順に数えると2番目なので「2」が表示されます。</p>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">alert<span style="color: #009900;">&#40;</span>RANK<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">20</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span><span style="color: #CC0000;">20</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">40</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">40</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">10</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">50</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// &quot;2&quot;</span></div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/5702/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>VBAのユーザー定義関数で引数を省略</title>
		<link>https://stabucky.com/wp/archives/5381</link>
					<comments>https://stabucky.com/wp/archives/5381#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Fri, 14 Jun 2013 10:08:48 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=5381</guid>

					<description><![CDATA[VBAのユーザー定義関数で引数を省略する方法です。 下に示す関数はaとbの二つの引数を与え、合計を返します。 引数に「Optional」を付けると省略することができます。また初期値を与えることができます。 Functio [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>VBAのユーザー定義関数で引数を省略する方法です。<br />
下に示す関数はaとbの二つの引数を与え、合計を返します。<br />
引数に「Optional」を付けると省略することができます。また初期値を与えることができます。</p>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Function kansu(a, Optional b = 0)<br />
&nbsp; &nbsp; kansu = a + b<br />
End Function</div></div>
<p>例えば「=kansu(2,3)」とすると2+3で「5」を返します。<br />
「=kansu(2)」のように2番目の引数を省略すると初期値の0を与えたことになりますので、2+0で「2」を返します。<br />
初期値を与えなかったときは「IsMissing」で値がセットされたかどうか判定できます。セットされていない場合、TRUEになります。</p>
<p><img loading="lazy" decoding="async" src="https://stabucky.com/wp/wp-content/uploads/2010/06/vbalogo.jpg" alt="" width="400" height="152" class="alignnone size-full wp-image-11120" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/5381/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>日付をカウントするユーザー定義関数「COUNTDATE」</title>
		<link>https://stabucky.com/wp/archives/4811</link>
					<comments>https://stabucky.com/wp/archives/4811#respond</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Fri, 08 Feb 2013 12:02:48 +0000</pubDate>
				<category><![CDATA[Excel]]></category>
		<category><![CDATA[VBA]]></category>
		<category><![CDATA[日付]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=4811</guid>

					<description><![CDATA[選択範囲の日付を条件に応じてカウントするユーザー定義関数を作ってみました。 目次 VBA書式 VBA Function COUNTDATE(hani As Range, nen As Long, tsuki As Lon [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>選択範囲の日付を条件に応じてカウントするユーザー定義関数を作ってみました。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBA</a></li><li><a href="#toc2" tabindex="0">書式</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">VBA</span></h2>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">Function COUNTDATE(hani As Range, nen As Long, tsuki As Long, hi As Long) As Long<br />
&nbsp; &nbsp; Dim v As Variant<br />
&nbsp; &nbsp; Dim ct As Long<br />
&nbsp; &nbsp; ct = 0<br />
&nbsp; &nbsp; For Each c In hani<br />
&nbsp; &nbsp; &nbsp; &nbsp; v = c.Value<br />
&nbsp; &nbsp; &nbsp; &nbsp; If IsDate(v) Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If (nen = 0 Or Year(v) = nen) And (tsuki = 0 Or Month(v) = tsuki) And (hi = 0 Or Day(v) = hi) Then<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ct = ct + 1<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; &nbsp; &nbsp; End If<br />
&nbsp; &nbsp; Next c<br />
&nbsp; &nbsp; COUNTDATE = ct<br />
End Function</div></div>
<h2><span id="toc2">書式</span></h2>
<div class="codecolorer-container text dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;">COUNTDATE(範囲,年,月,日)</div></div>
<p>「= COUNTDATE(&#8220;A1:C50&#8221;, 2013, 2, 5)」のようにして使います。<br />
例えば、年に「2013」、月に「2」、日に「5」を指定すると「2013-2-5」に合致するセルの数を返します。</p>
<p>年、月、日は「0」を指定することもできます。<br />
例えば、年に「0」、月に「2」、日に「5」を指定すると、年に関わらず、2月5日であるセルの数を返します。「2011-<strong>2-5</strong>」「2012-<strong>2-5</strong>」「2013-<strong>2-5</strong>」などを数えます。<br />
例えば、年に「0」、月に「2」、日に「0」を指定すると、年や日に関わらず、2月であるセルの数を返します。「2011-<strong>2</strong>-3」「2012-<strong>2</strong>-1」「2013-<strong>2</strong>-5」などを数えます。<br />
全て「0」を指定すると、日付がセットされているセルの数を返します。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/4811/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>JavaScriptでPHPのmktime関数とdate関数を再現</title>
		<link>https://stabucky.com/wp/archives/4659</link>
					<comments>https://stabucky.com/wp/archives/4659#comments</comments>
		
		<dc:creator><![CDATA[stabucky]]></dc:creator>
		<pubDate>Fri, 28 Dec 2012 22:33:25 +0000</pubDate>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[mktime]]></category>
		<category><![CDATA[日付]]></category>
		<category><![CDATA[関数]]></category>
		<guid isPermaLink="false">http://stabucky.com/wp/?p=4659</guid>

					<description><![CDATA[JavaScriptの日付の扱いはとても面倒です。 一方、PHPではdateという関数があって、年月日などの整形がとても簡単です。 完全再現というわけにはいきませんが、JavaScriptでdate関数を使う方法を考えま [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>JavaScriptの日付の扱いはとても面倒です。<br />
一方、PHPではdateという関数があって、年月日などの整形がとても簡単です。<br />
完全再現というわけにはいきませんが、JavaScriptでdate関数を使う方法を考えました。<span id="more-4659"></span></p>
<h3><span id="toc1">php_mktime</span></h3>
<p>まずPHPのmktimeという関数を作ります。<br />
これは年月日時分秒を与えると1970年1月1日午前0時からの通算秒を返します。<br />
PHPのmktimeは、時分秒月日年の順に与えるという奇妙な使用になっていますが、これに従います。<br />
「2001年2月3日4時5分6秒」は「timestamp=php_mktime(4,5,6,2,3,2001)」として使います。</p>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;height:400px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000066; font-weight: bold;">function</span> php_mktime<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//PHPのmktimeを再現。</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//1970年1月1日午前0時からの通算秒数を返す。</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//引数は時,分,秒,月,日,年。省略のときは現在日時。</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">var</span> now<span style="color: #339933;">,</span> vals<span style="color: #339933;">,</span> mydate<span style="color: #339933;">,</span> i<span style="color: #339933;">;</span><br />
&nbsp; now <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> <span style="">Date</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; vals <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> now.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> now.<span style="color: #660066;">getMinutes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> now.<span style="color: #660066;">getSeconds</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> now.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span><br />
&nbsp; vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> now.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> now.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">6</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> arguments<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; vals<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> arguments<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; mydate <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> <span style="">Date</span><span style="color: #009900;">&#40;</span>vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">4</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> vals<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> mydate.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">1000</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<h3><span id="toc2">php_date</span></h3>
<p>次にphp_dateという関数を作ります。<br />
これはフォーマットとタイムスタンプを与えると日付や時間を整形して返します。<br />
フォーマットにYを指定すると、年を4桁で返します。<br />
本当はもっとたくさんあるのですが、ここではY,y,m,n,F,M,d,j,w,l,D,G,H,g,h,i,s,a,Aに対応しています。<br />
例えば「php_date(&#8220;Ymd&#8221;,timestamp)」のようにして使うと「20010203」が返ります。</p>
<div class="codecolorer-container javascript dawn" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:400px;height:400px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap;"><span style="color: #000066; font-weight: bold;">function</span> php_date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//PHPのdateを再現。</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//ただしY,y,m,n,F,M,d,j,w,l,D,G,H,g,h,i,s,a,Aに対応。</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//引数は形式,タイムスタンプ。タイムスタンプは省略できる。省略のときは現在日時。</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">var</span> format<span style="color: #339933;">,</span> timestamp<span style="color: #339933;">,</span> months<span style="color: #339933;">,</span> weekdays<span style="color: #339933;">,</span> mydate<span style="color: #339933;">,</span> temp<span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> arguments<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; timestamp <span style="color: #339933;">=</span> arguments<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> timestamp <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; timestamp <span style="color: #339933;">=</span> php_mktime<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; months <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;January&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;February&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;March&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;April&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;May&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;June&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;July&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;August&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;September&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;October&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;November&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;December&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; weekdays <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;Sunday&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Monday&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Tuesday&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Wednesday&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Thursday&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Friday&quot;</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;Saturday&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; mydate <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">new</span> <span style="">Date</span><span style="color: #009900;">&#40;</span>timestamp <span style="color: #339933;">*</span> <span style="color: #CC0000;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//二重変換防止のためformatの文字を@で挟む。</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/([YymnFMdjwlDGHghisaA])/g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;@$1@&quot;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//年</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@Y@/g</span><span style="color: #339933;">,</span> mydate.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@y@/g</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> mydate.<span style="color: #660066;">getFullYear</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//月</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@m@/g</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>mydate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@n@/g</span><span style="color: #339933;">,</span> mydate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@F@/g</span><span style="color: #339933;">,</span> months<span style="color: #009900;">&#91;</span>mydate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@M@/g</span><span style="color: #339933;">,</span> months<span style="color: #009900;">&#91;</span>mydate.<span style="color: #660066;">getMonth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//日</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@d@/g</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> mydate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@j@/g</span><span style="color: #339933;">,</span> mydate.<span style="color: #660066;">getDate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//曜日</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@w@/g</span><span style="color: #339933;">,</span> mydate.<span style="color: #660066;">getDay</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//0:日曜</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@l@/g</span><span style="color: #339933;">,</span> weekdays<span style="color: #009900;">&#91;</span>mydate.<span style="color: #660066;">getDay</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@D@/g</span><span style="color: #339933;">,</span> weekdays<span style="color: #009900;">&#91;</span>mydate.<span style="color: #660066;">getDay</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//時(24時)</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@G@/g</span><span style="color: #339933;">,</span> mydate.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@H@/g</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> mydate.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//時(12時)</span><br />
&nbsp; temp <span style="color: #339933;">=</span> mydate.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #CC0000;">12</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span> <span style="color: #339933;">?</span> <span style="color: #CC0000;">12</span> <span style="color: #339933;">:</span> mydate.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">%</span> <span style="color: #CC0000;">12</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@g@/g</span><span style="color: #339933;">,</span> temp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@h@/g</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> temp<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//分</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@i@/g</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> mydate.<span style="color: #660066;">getMinutes</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@s@/g</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;0&quot;</span> <span style="color: #339933;">+</span> mydate.<span style="color: #660066;">getSeconds</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slice</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #006600; font-style: italic;">//AM,PM</span><br />
&nbsp; temp <span style="color: #339933;">=</span> mydate.<span style="color: #660066;">getHours</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">12</span> <span style="color: #339933;">?</span> <span style="color: #3366CC;">&quot;am&quot;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;pm&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@a@/g</span><span style="color: #339933;">,</span> temp<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; format <span style="color: #339933;">=</span> format.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/@A@/g</span><span style="color: #339933;">,</span> temp.<span style="color: #660066;">toUpperCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; <span style="color: #000066; font-weight: bold;">return</span> format<span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://stabucky.com/wp/archives/4659/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
