« 関数で出来ますか~? 第17問 月額小計を簡単に求める方法はないでしょうか? | メイン | 関数で出来ますか~? 第18問 ツーペア »

2009年5 月 9日 (土曜日)

コメント

y sakuda

締め切り10分前に思いついた手です。
今回の提示シートはD4:E4が結合シートになっていて、E4は0ですのでそれを利用し、E5の式を
{=IF(D5,SUM(C$5:C5-E$4:E4))}
で28文字にできました。
さて、皆さんの回答楽しみです^^

む印

今回は、終始 からくちさんのリードで短縮出来た次第です^^;

■書式なし、合計80文字
D5:=TEXT((B6&-9>EOMONTH(B5,0)&-9)*B5,"m月小計;;")

E5:=IF(D5="","",SUM(C$5:C5)-SUM(E$4:E4))
 

■表示形式のみ 合計56文字
D5:=(B6&-9>EOMONTH(B5,0)&-9)*B5
(D列表示形式・・・ m"月小計";;)

E5:{=SUM(C$5:C5-E$4:E4)*(D5>0)}
(E列表示形式・・・ 0,000;;)


■条件付書式+表示形式 合計45文字
D5:=TEXT(B5,"m月小計;;")
(D列条件付書式・・・数式が=E5=0 でフォント色を白)

E5:=(D5<>D6)*SUMIF(D:D,D5,C:C)
(E列表示形式・・・ 0,000;;)


からくちさんとminさんの究極技が楽しみ^^

あと、くまぷーさんの書式なし67が
どんなのだったか知りたいです!

ジョー3

sakudaさん、、凄いですーー
・・・今回、、、燃えてましたねーー

む印さん・・・
EOMONTH・・・・忘れてました。

・・・・・・
まだかぜでくるしんでるじょー。。。

くまぷー

>あと、くまぷーさんの書式なし67が
>どんなのだったか知りたいです!

たいしたモンじゃないんですが
こんなんです(^^ゞ

=IF(MONTH(B5)=MONTH(N(B6)),"",MONTH(B5) & "月小計")

=IF(D4="",E4+C5,C5)

いやあ・・・所詮は勘違いの失敗作ですし・・・(^^ゞ

む印

>=IF(D4="",E4+C5,C5)
なるほど、くまぷーさんすごいです!!
この式のおかげで、究極24文字の謎が解けましたd^^
(19文字→14文字に)

ますたあ

出題と私のイメージが違っていたようです。

もう少し質問すればよかった...。(-_-;)

現金出納簿のような感じで、月ごとに最期に集計で切ればよかったのかな。

私は、一つのセルに月ごとに集計するのかと思い込んでしまいました。
ですので、今回数式は未提出という事で...。^^;

かず

こんばんは~

月がとんだ場合が気になって… 65+65

=IF(OR(B8="",TEXT(B8,"yymm")=TEXT(B9,"yymm")),"",TEXT(B8,"m月小計"))
{=IF(D5="","",SUM((TEXT(B$5:B5,"yymm")=TEXT(B5,"yymm"))*C$5:C5))}

条件付書式+表示形式は… 3+52
=B5 表示形式『m"月小計"』
{=SUM((TEXT(B$5:B5,"yymm")=TEXT(B5,"yymm"))*C$5:C5)}
いずれも、条件付書式で、
=OR(B5="",TEXT(B5,"yymm")=TEXT(B6,"yymm"))
隠した数値を、使い込むなんて気が付きませんでした。

今回もまた、最初に思い付いた式が、頭に重く付きましたw

y sakuda

む印さんのはEOMONTHですか・・・・
EOMONTHは考えたのですが、第2引数0と言う発想が浮かばなかった・・・・
ここでもう負けてますねーー
>・・・今回、、、燃えてましたねーー
燃えてたというより、夜逃げしないで済むように必死w
ジョー3のはどんなんでしょうか?

>いやあ・・・所詮は勘違いの失敗作ですし・・・(^^ゞ
わたしも最初Monthでやっていたのですが、Month(0)が1月になるというのでその始末で字数が増えてました
それと、今回は良いことにしたのですが、年が変わった時にも対応しようとすると苦労しますね。

>私は、一つのセルに月ごとに集計するのかと思い込んでしまいました。
ますたーさんがどんなイメージもたれてたのか良く分からない。
ちょっとそれも見たい気分です。

>月がとんだ場合が気になって… 65+65
かずさんのは正攻法ですねーー
私も一時、Text( ,"m") で月を求めることも考えたのですが、やはり文字数が増えるのでやめました。


からくち

この問題は違反行為(条件付き書式)を使わない限り
D5の問題で
E5は何でもいいような・・・
例えば
{=SUM(C$5:C5-E$4:E4)*(D5>0)}

{=SUM(C$5:C5-E$4:E4)*(D5>"")}

=IF(D5="","",SUM(C$5:C5)-SUM(E$4:E4))
などなど・・・いろいろ


式のみ
D5=:
:=TEXT((B5-DAY(B5)<>B6-DAY(B6))*B5,"m月小計;;")

:=IF(B5-DAY(B5)<>B6-DAY(B6),MONTH(B5)&"月小計","")

:=IF(B5-DAY(B5)<>B6-DAY(B6),TEXT(B5,"m月小計"),"")

:=REPT(TEXT(B5,"m月小計"),B5-DAY(B5)<>B6-DAY(B6))

:=TEXT((DATEDIF(0,B6,"m")<>DATEDIF(0,B5,"m"))*B5,"m月小計;;")

書式のみ使用
D5=:
:=(TEXT(B6,"ym")<>TEXT(B5,"ym"))*B5

:=OR(EOMONTH(B5,0)B6)*B5

:=(B6-DAY(B6)<>B5-DAY(B5))*B5


違反行為
書式・条件付き書式ともに使用
D5=MONTH(B5)
E5=SUMIF(D:D,D5,C:C)

D5=B5
E5=(B5-DAY(B5)

D5=MONTH(B5)
E5=(D4=D5)*E4+C5

<条件付き書式>
D5=LOOKUP(DATE(YEAR(B5),MONTH(B5)+1,0),B$5:B$34)=B5
フォントの色付け


からくち

>D5=B5
>E5=(B5-DAY(B5)

D5=B5
E5=(B5-DAY(B5) の誤りです
訂正いたします


jyo-3

>>私は、一つのセルに月ごとに集計するのかと思い込んでしまいました。
>ますたーさんがどんなイメージもたれてたのか良く分からない。

実は私も最初そうしてた。
d6,e6のみ使用・・・
月が変わると、最新の月集計・・・・
なんて、

でも質問して直しました。

1月はわざと手抜きでした。大体自分の
ファイルはそんな感じ・・・・

・・・・・・・・・

感じは、くまぷーさんに似てます

からくち

>D5=B5
>E5=(B5-DAY(B5)

D5=B5
E5=(B5-DAY(B5)<B4)*E4+C5

忘れていました・・・↑


y sakuda

からくちさんの相変わらずバラエティに富んでいてすごいですが、B35に入ってる"総計"考えてくれてない。
ここにわざと文字列入れて、"シート変更不可"の条件つけて多少やりづらくしてるつもりでした^^;


>月が変わると、最新の月集計・・・・
ああ、そう言う意味ですか。
問題提示のサンプルがまずかったですね^^;

y sakuda

からくちさん
>=OR(EOMONTH(B5,0)B6)*B5
↑ORの中がおかしいんですが、正しくはどうなんでしょうか?

minmax

あんまり頑張らなかったので、こんなんです。
もう出ているようなものですが、、
D5
54文字=IF(TEXT(B5,"ym")=TEXT(N(B6),"ym"),"",MONTH(B5)&"月小計")
E5
37文字=IF(D5>"",SUM(C$5:C5)-SUM(E$4:E4),"")
実務でやるとしたら自分はこの式でやると思う。

あと、
>D5=MONTH(B5)
(10文字)
>E5=SUMIF(D:D,D5,C:C)
(18文字)
をR1C1でやると、
D5=MONTH(C2)
E5=SUMIF(C4,C4,C3)
でE5が16文字になります。
これはつまんないずるでした^^;
(条件付き書式は何とでもなると思うからから省略してます。)

からくち

>B35に入ってる"総計"考えてくれてない。
いえいえ
それは1番最初に

>故に
>少々 見てみぬ振りをしていただけるのなら
> 中略
>気が付かないで貰えれば

反則・違反・詐欺行為の式も含まれることを勝手に宣言!
したのですが

>多少やりづらくしてるつもりでした^^;
それでは バレナイ訳が無い

やっぱ 悪いことは出来ない


>>=OR(EOMONTH(B5,0)B6)*B5
=OR(EOMONTH(B5,0)<B6,B5>B6)*B5

y sakuda

>少々 見てみぬ振りをしていただけるのなら
www
基本的なアルゴリズムとしてはどうでも良いのですが、このサイト、障害物を置いておくと面白いのが出てきますからw

>=OR(EOMONTH(B5,0)<B6,B5>B6)*B5
ありがとうございました


くまぷー

お早うございます。

やはり、いろいろ出てきましたね~
あまりに沢山あるので式のみのものしか見ていないのですが
それでも頭の痛くなるレベルのものが
ほとんです(^^ゞ

>Month(0)が1月になる

う~ん、これは指摘されるまで全然、
考えもしなければ、思いつきもしませんでした。

今回の問題は解答の制限を取り払えば
今までの中で一番、元祖エクセルコンテストの
問題に近かったのではないかと思います。

minmax

おはようございます。
>エクセルコンテストの問題に近かったのではないかと思います。
とくまぷーさんがおっしゃるとおり、今回の問題は、先回の問題とは正反対でより実務に近い問題でしたね。
したがって、基本的には理解しやすいものが良いのかなと思っていました。

パソコンに向かう時間が少なかったので頭で考える事が多く、
>E5=(D4=D5)*E4+C5
という、なるほどなーの発想は出てきませんでした。
同様に、DAY、EOMONTH、DATEDIFは頭にありましたが、
B6-DAY(B6)は考えなかったし、EOMONTHも条件設定には単純に使えないと思いました。
DATEDIF(0,B6,"m")<>DATEDIF(0,B5,"m")の発想も意外。。

む印さんの
>(B6&-9>EOMONTH(B5,0)&-9)
一目見ただけでは「-9」が何をやっているのか全く分からなかった。
すごい発想に驚きました。
で、B列がH158.5.1以降には対応していないということが、やっとわかりました。。

かずさんの
>=IF(OR(B8="",TEXT(B8,"yymm")=TEXT(B9,"yymm")),"",TEXT(B8,"m月小計"))
なんで、B8なのと思ったらちょっとずれているだけでしたね^^
ちょっとビックリした。

で、自分のこと・・
今回、初めてR1C1形式で式を組み立ててみて、
>D5=MONTH(C2)
>E5=SUMIF(C4,C4,C3)
こんな式になった。
見た目、普通の式みたいだな~って思って、
R1C1形式って宣言しないでこっそり投稿してビックリさせようかなって思ったくらい。
R1C1形式なんて普段使う人いるのかな~?
VBA良くやる人は使うのかもな~

minmax

一応追記
>H158.5.1以降には対応していない
S2.4.30以前もですね。
今回の場合あり得ませんけど^^

それにしても、今回の問題もみなさんがんばりましたね~
正直、ちょっと意外でした。

y sakuda

>先回の問題とは正反対でより実務に近い問題でしたね。
実務で使う場合は、やはり素直じゃないと後で困る(後任が)ことになりますね。
そうすると、
1.配列数式はだめ
2.条件付書式でE列の数字の色を変えるのはだめ
3.分析ツールもできたら避ける
4.D列の判定も少なく共一言でコンセプトが説明できる(例えば 「D6-Day(D6) でD6の前月末日が得られる」物である必要がある

まあ、一言で言えば、作業列を使うなという時点で終わってますがw
そういう意味では、質問掲示板の回答の説明抜きでしゃれた式が提示されているのには昔から物凄く抵抗感があります。
質問者が趣味でやってる、テクニックを磨きたいと言う場合はかまわないのですが、そういう手の人は始めからROMすることはあっても殆ど質問者としては出てこないと思ってますから・・・・・・

y sakuda

>>H158.5.1以降には対応していない
>S2.4.30以前もですね。
どういう意味なんでしょう?
知らなかったんですが、入力時はH100以上を和暦で入れても反応しませんね。
ただし、西暦で入れて書式をかませればちゃんと和暦表示するんですね。
でもH158 とかS2って何が問題なんですかね?

minmax

>後で困る(後任が)ことになりますね。
確かに。。
実務でもエクセルブックを最初から作ることは、ここ数年ほとんど無いのですが、作るときは、あんまり難しい事をしないことにしています。
っていうか、やってしまうと自分の後任者がメンテ出来なくて転出先でもそのファイルのメンテをするはめになってしまう。
一発もののファイルは別ですけど。

y sakuda

私も職場でチョコチョコいろいろ提供してますが・・・・・
(Excelだけではなくスクリプトなども)
でも、私が居なくなったらあきらめろと言ってありますw

minmax

>でもH158 とかS2って何が問題なんですかね?
私に解説する能力はありませんが、
B6&-9>EOMONTH(B5,0)&-9
の「&-9」は指定行の下の行に日付の入力がなかった場合にTRUEと判定する核の部分ですが、
EOMONTH(B5,0)のシリアル値が9から始まる場合と8以下で始まる場合で結果が異なります。

出来れば、む印さんでもだれでも良いので、解説してもらいたいくらいです。

="-9">"90002-9"・・・FALSE
="-9">"89971-9"・・・TRUE
↑何で結果が違うの?

ついでに、、
="-9">"9"・・・TRUE
="-9">"8"・・・TRUE
↑これもよくわからん。
="-9">"90"・・・FALSE
="-9">"80"・・・TRUE
↑なんで?
エクセルの不思議に書こうかな?
それとも常識?

ますたあ

>ちょっとそれも見たい気分です。
wwwwwwww。^^;

まあ今回は大ボケだったので勘弁してください。(^^ゞ

む印

minさんが気付かれた部分
本来&9だけを双方の後ろに付けても同じ効果なんですが、
-(マイナス)を付けるとその-は無意味になり不思議で、理屈はよく解らないけど面白いと思いそのまま提出しました。(^-^)b

む印の「む」は無責任の「む」!(^^;

y sakuda

>↑何で結果が違うの?

なるほど・・・・・・
しかし???

minmax

マイナスが無意味になったとは思えないけど…
出先なので後で実験します。

む印の"む"は無尽蔵の"む"?

y sakuda

この「関数でできますかーー」のシリーズなんとなく始まったので、最初の頃の記憶が怪しく(参加してないのも結構あったし)なったので、
http://kumapooh.justblog.jp/blog/cat4400146/index.html
でチェックしてたのですが・・・・・・
Q11のかごめの問題が見つからない^^
カテゴリ違いでどこかにまぎれてるのかな?

くまぷー

>Q11のかごめの問題が見つからない^^

カテゴリを指定するのを忘れていました。
既出の問題・解答はこちらに一覧がありますのでご利用下さい。

http://www.geocities.jp/kuma_pooh1958/index.htm

http://kumapooh2007.hp.infoseek.co.jp/

y sakuda

あははっ、あちこちにトップページ作ってますねーー
ありがとうございました。
で、次の出題予定日は?

くまぷー

>で、次の出題予定日は?

火曜日あたりを考えています。

y sakuda

>火曜日あたりを考えています。
楽しみにしてます^^

今回のは私自身想像もしていなかった簡潔な式に行き着き、実質的な成果が得られました^^

コメントの確認

コメントのプレビュー

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

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

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

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

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

処理中...

コメントを投稿

アカウント情報

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

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 メニュー