« 第152回 閏年問題 | メイン | 第153回 関数でFGHIJ »

2013年1 月 5日 (土曜日)

コメント

maron

◆さすがに「何をしてるんだろう」、「それで出来るの」という解答ですね
◆そのようなものではありませんが・・・・
34=IF((C3&-5)-(C3&-1)=120,"平年","閏年")
39=IF(TEXT(DATE(C3,,91),"d")-1,"閏年","平年")
39=IF(GCD((C3&-7)-(C3&-1),7)-1,"閏年","平年")
44=IF(WEEKDAY(C3&-7)=WEEKDAY(C3&-1),"閏年","平年")
50=IF(WEEKNUM((C3&-10)-WEEKDAY(C3&-1))=40,"閏年","平年")

ジョー3

おーーー
からくちさん・・・わかりにくいです・・・成功です。よかったねーーー

私のは、、、、
わかりにくそうで、、わかりやすいだろなーーー・・・・・

=IF(TEXT((C3&-1)-(C3)-INT((C3-11200)/SQRT(16))+INT((C3)/100)-INT((C3)/400),"aaa")="土","閏年","平年")

・・・・・ごめーーん、、苦しい式で、、、、ぜんぜん、、自慢できん。。。、、、・・・・

ジョー3

35は、、、
=IF(YEAR((C3&-1)+365)=C3,"閏年","平年")

違反してないかなーーー

30は、、、
違反99%だから、、、ださない・・・

くまぷー

角田さんから預かった物です。

**********************************************
こんにちは。

とりあえずは、こんなところで・・・

年と月と日数と週

37 =IF(YEAR((C3&"/1")+365)=C3,"閏年","平年")
36 =IF(MONTH((C3&"/5")-90)=1,"平年","閏年")
40 =IF(((C3&"/5")-(C3&"/1"))=121,"閏年","平年")
48 =IF(WEEKDAY(C3&"/1")=WEEKDAY(C3&"/7"),"閏年","平年")
**********************************************************

くまぷー

=IF(MONTH(DATE(C3,1,121))=5,"平年","閏年")
=MID("A閏平",MONTH(DATE(C3,1,60)),1)&"年"

どちらも38ですが・・・
こんなのでいいのだろうか?

む印

Excelで閏年を見分ける方法は基本的には2つしか知りません、、
シリアル値の利用か、西暦(年)から算出する方法です。
からくちさんの98、一見してもサッパリわかりませんねー、、、


<シリアル値編>は短い式狙いで…
1900年のバグを無視して34
=IF(MONTH((C3&-5)-90)=1,"平年","閏年")

※バグ回避はこんな感じでしょうか?
=IF(MONTH((C3+(C3%=19)&-5)-90)=1,"平年","閏年")
 

<西暦(年)編>はユニーク賞狙いで…
文字列関数だけを使って、
最初に出てくる小数点(ドット)の位置で判別。
64
=TEXT(FIND(".",RIGHT(LEFT(C3,LEN(C3%))/400,9-6)&1%),"[=5]平年;閏年")

からくち

いや~~、、、沢山ありますね~

始め
=MID(REPT(" 平閏",99),SUM(TEXT((TEXT(C3&-1,"bbb")-{542,543})
&-1,0)*{1,-1}),1)&"年"
こんなインチキな回答でもと思ったのですが・・・

わたしの解答例は
1月1日・2月2日・・・・12月12日の
12日の曜日を集計しますと
閏年と平年の違いがハッキリと現れました
それを使っただけです

ジョー3

>いや~~、、、沢山ありますね~
そそ、、、繁盛しましたね、、良かった良かった。

ジョー3

>1月1日・2月2日・・・・12月12日の
無作為みたいな作為・・・・・

おら、、、素直すぎた。

む印

>12日の曜日を集計しますと
「へぇ~」、やっと面白さが理解できました、、、

一応…、私の64は62でも出来る
=TEXT(FIND(".",RIGHT(LEFT(C3,LEN(C3%))/400,3.5)&1%)-5,"平年;閏年")
のですがTEXTらしさの方を選びましたd

ni

似たのはたくさんあるけど、ズバリがないので出します。
37=IF(YEAR(DATE(C3,,397))=C3,"閏年","平年")

ジョー3

あらら、、ぶった・・・・いや、、、
ブッタさんも、、、登場だっけ、,,

ジョー3

>似たのはたくさんあるけど、ズバリがないので出します。
おーーいろいろあるのね、、、つかれるぐらい、、、

からくち

>つかれるぐらい、、、
ではもう1つ、、、基本インチキですが、、、
=IF(YEARFRAC(C3&-1,C3&-9,2)=0.675,"平年","閏年")

角田

YEARFRAC かぁ~、Act/360 は AddinBox でも弄ってなかったなぁ~

しかし、C3&"/1" しか知らなかったけど、C3&-1 かぁ~
-1でも&演算で文字列扱いされて、いけるんだね♪

ここの達人に Microsoft MVP の日本サミットとかで、厳選ネタ&珠玉回答集
で講演させたら絶対ウケると思う♪

くまぷー

>ここの達人に Microsoft MVP の日本サミットとかで、厳選ネタ&珠玉回答集
>で講演させたら絶対ウケると思う♪

それは面白い!
たしか、sakudaさんがMVPだったから
適任だと思う・・・(^o^)

y sakuda

私はしゃべるのダメだから角田さんの方が良いかもw

昨日はひどい目にあいました。熱はたいしたことなかったんですが、吐いちゃって、ぐったりで帰って来てそのまま寝ちゃいました。
起きたらまあ大分良くなってましたので、これから拝見します。

y sakuda

最初に思いついた、40 で翌年の1月1日が365日後かどうかで判定
40
=IF((C3+1&"/1")-(C3&"/1")-365,"閏年","平年")

平年の場合、今年の1月1日と翌年の1月1日の累積日数が必ず奇数になることを利用したタイプ
43
=IF(ISODD((C3+1&"/1")+(C3&"/1")),"平年","閏年")
56
=IF(ISERR(-(AVERAGE(C3+1&"/1",C3&"/1")&".1")),"平年","閏年")

一番短くなった(多分みなさんと同じ)で、365日後が同じ年かどうかで判定
37
=IF(YEAR((C3&"/1")+365)=C3,"閏年","平年")

40と37は他の方何人かとかぶっているようですが、シリアル値の合計の偶数、奇数を使った方はいらっしゃらなかったようですね。

角田

sakudaさん、もしかして、全国流行中のノロウィルス ですか?
めちゃくちゃ、ツライ と聞いてますが・・・
ひたすら、トイレ往復で嵐が過ぎるのを耐えるしかないとか・・・
お大事に

ついでに、過去152問の中で、
「この問題がなかったら、ここまで来なかった」
「この問題のノウハウがあったから、ここまで来れた」
「これから参加したい人に、この問題はやっておいた方が良い」
という問題は何ですか?

今回の「 C3&-1 」なんかも、
単純ではあるけれど、普通に扱ってる内は絶対出て来ない発想と思う。

「配列数式」発想集なんて、それだけでも『本』になるでしょうね。
武藤さん経由で売り込んでみたら? (笑)

y sakuda

>全国流行中のノロウィルス ですか?
違うでしょ。
吐いたことは吐いたのですが、一晩寝たらまだ微熱はありますが、PCの前座ってるw

>今回の「 C3&-1 」なんかも、
実はこれでできるの忘れてました。
ただ、どっちにしろ短縮がメインになっちゃってますから省略形と配列数式が多くなるわけで、普通は知っていてもそんなことやるべきではないと思います。
これはあくまでも上級者?の遊びであって、それこそ「良い子はマネしちゃいけません」だと思いますよ^^;


ジョー3

からくちさんの苦手の(誰が信じてる?)日付問題、、、
面白かった。

エクセルの癖、
技術、

それを使いこなす皆さん凄いです。お知り合いになれて、、嬉しいです。

わたしは、たまにアイデアで、勝負できるぐらい・・・・
90%は皆さんに歯が立ちません。
わたしにとって、ここは、、、憩いの場所なのだ・・・・
・・・・・・・・・・・・・・・・・・
よい子もくるといいと、、おもう。


くまぷー

>よい子もくるといいと、、おもう。 ×2

今回ので云えば禁止関数なしで
標準的な解法も示しておけば良かったかな~?

む印

>「C3&-1」形式
ここではじめてやったのは第8回y sakudaさん出題の
カレンダー作成問題だったと思います
http://kumapooh.typepad.jp/blog/2009/03/post-3e9c.html

一部既定の表示形式で表した数字や日付の文字列は計算対象となることは分かってましたので
$B1&-$C1&-7と「西暦年&-月&-日」でやってみたら出来たので使ってみましたが、
minさんは、$B1&"/"&$C1でその月の1日が表せることをご存じで、
それを$B1&-$C1に置き換えられると教えて頂きました。

それ以来ここでは日付の計算には「C3&-1」形式で行うようになったという次第です^^

maron

>「C3&-1」形式×2
◆最短は、38=IF((C3&"-5")-(C3&"-1")=120,"平年","閏年")、だったんですが、
>◆む印さんの、「出来たのは34文字ですが」を参考にもう一度試してみたら、34になりました
◆む印さんの34の回答をヒントに、試しに"を取っても式が成立しました
◆いろいろ教えていただいてます

y sakuda

>「C3&-1」形式
なんとなく1月を示す文字列くっつければ良いのは覚えてたんですが、-1までは思い出さなかったです。
そこでもう字数的には負けてる^^;

min

>教えて頂きました。

のぞいてみたら・・・
む印さん良くそんな昔のことを覚えていますねえ。

単純かつ適当にやってみました。

96{=MID("平閏平閏",SUM(N(CHOOSE(ROW(1:5),GCD(C3*25,100),GCD(C3,100),GCD(C3*25%,100),,)=100))+1,1)&"年"}

あっているのか?

y sakuda

>単純かつ適当にやってみました。
単純ではないと思いますがw
何をやってるのかさっぱり分からないです。


min

>単純ではないと思いますがw

1. 西暦年が4で割り切れる年は閏年
2. ただし、西暦年が100で割り切れる年は平年
3. ただし、西暦年が400で割り切れる年は閏年

これを単純に式にしただけです。

min

>あっているのか?
>これを単純に式にしただけです。

どうやら単純にやりすぎたようです。
ということで修正するとちょっと増えそう。

y sakuda

ああなるほど、4を使わないように細工してるわけだ^^

コメントの確認

コメントのプレビュー

プレビュー中です。コメントはまだ投稿されていません。

処理中...
コメントを投稿できませんでした。エラー:
コメントを投稿しました。 さらにコメントを投稿する

入力された文字と数字は画像と一致していません。再度入力してください。

最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。

画像を読み取れない場合は 別の画像を表示してください。

処理中...

コメントを投稿

アカウント情報

(名前は必須です。メールアドレスは公開されません。)

2024年8 月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

TOP メニュー