A1の数字の最大値を求めてください
A1が 11333333338888 とあった場合 11と33333333と8888の3つの数値として
その最大値である 33333333 を求めてください
同じ数字の連続を1つの数値とみなしてください
ただし、求める値が最大値(数値)なので15桁をこえる数字がA1にあった場合
答えはエラーでも違う数値でも構いません
つまり、その場合は無視してください
A1の文字数は50~800位と思います(F9)
(からくちさん出題)
解答用参考ファイル:Q109をダウンロード
**********************************************************************************
尚、解答締め切りは12/10(土)の午後8時の予定です。状況によっては
変更される可能性があります。
また、解答発表までは直接数式を書き込むこと・ポイントとなる関数名を
書き込むことはご遠慮ください。
********************************************************************************
ありゃりゃーーーー
こりゃまた。・・・・・・
破天荒な、、、
投稿情報: jyo-3 | 2011年12 月 5日 (月曜日) 午後 08時51分
>破天荒な、、、
[名・形動]前人のなしえなかったことを初めてすること。
また、そのさま。前代未聞。未曽有(みぞう)。
そんな大それたものではありません
問題が無くなってしまった、、、と言うことなので
ただ、思いついたままの問題ですので
因みに現在、、、82
投稿情報: からくち | 2011年12 月 5日 (月曜日) 午後 09時26分
うーーん、、、、
まず、、、
nomuka,,,,,
投稿情報: jyo-3 | 2011年12 月 5日 (月曜日) 午後 09時31分
う~ん、またまた難解なり・・・
投稿情報: くまぷー | 2011年12 月 5日 (月曜日) 午後 09時41分
う~~~ん、、
今のところ何も閃かない、、、
投稿情報: む印 | 2011年12 月 5日 (月曜日) 午後 10時32分
PC使わせてもらえたので、とりあえずやってみました。
・・・で、とりあえずありきたりな84です、、、
投稿情報: む印 | 2011年12 月 5日 (月曜日) 午後 11時32分
今日は遅く帰って来て、さっきみただけですが・・・・
ひらめきはなしです^^;
投稿情報: y sakuda | 2011年12 月 5日 (月曜日) 午後 11時32分
私も何とかやるだけやったら、ありきたりの上長い・・・・89です。
どっちかっていうとエラーなんかになるのも含めて検証方法が問題ですね。
明日にでも何か作ろうかな?
投稿情報: y sakuda | 2011年12 月 6日 (火曜日) 午前 12時36分
結局私も84む印さんと多分同じだと思われます。
投稿情報: y sakuda | 2011年12 月 6日 (火曜日) 午前 12時45分
う~ん、86で出来たけど、たまに間違いが表示される。数十回~数百回に1回?
それを修正すると、90。
投稿情報: りす | 2011年12 月 6日 (火曜日) 午前 12時49分
みなさんすごいです。
私はまだ方向が定まってません
時々、ふっと、、、眺めてるだけ・・・・・
で、、、なんとなく興味が出てること・・・・
9が30個ぐらい出る確率はどうなんだろう・・・・とか・・・・
変なことが、、、興味深い・・・・
で、
9が18個あったり、、
8が19個あったりは、、考えなくて良いのですね、、
・・・・・・・・・・・・・・・・
投稿情報: jyo-3 | 2011年12 月 6日 (火曜日) 午前 11時06分
>う~ん、86で出来たけど、たまに間違いが表示される。
合ってるのかどうか不明ながら、現在80です。
投稿情報: y sakuda | 2011年12 月 6日 (火曜日) 午前 11時19分
できたーーー・・・・・ながいーーーー・・・・
・・・・・・・・・・・・・・・・・・・
投稿情報: jyo-3 | 2011年12 月 6日 (火曜日) 午後 12時44分
お昼作った式で、f9・・・・・
押してたら、・・・・・へーーーーーー
7が20個以上並んだり・・・・・
・・・・・・・・・・・・・・・・・・
むむーーーーー
15個以上でも、、、正確に出す式は、、、、、大変かーーーー
、、、
なんて、気になったり、、、
投稿情報: jyo-3 | 2011年12 月 6日 (火曜日) 午後 12時50分
参りましたね(+_+)
どうやってこれを・・・
投稿情報: 春 | 2011年12 月 6日 (火曜日) 午後 01時11分
脳内では、完璧な式を書いているけど、たまに、下のように、
0が含まれた結果が出てくる。
こんな結果がでるような式じゃないんだけどな。
44444444444444400000
あれ?ちなみに、結果をLENで監視すると、ほとんど15桁以内
なんだけど、良いんだよね?(上記のようなエラーだけ20桁になる)
投稿情報: りす | 2011年12 月 6日 (火曜日) 午後 01時29分
>7が20個以上並んだり・・・・・
あ、、これは、元データの目視でのことです。
式の結果は、、7が15個です。
投稿情報: jyo-3 | 2011年12 月 6日 (火曜日) 午後 02時23分
みなさん、、すごいなーーー
何でも、すぐ答えが出て・・・・・・
うまくいきません、、、
1)長くて、2)不完全的ケース発見(理由も:100回に1回ぐらい)、、
・・・・・・・・・・・・・・・・・
1)15個以上でも、、、答えを出したい・・・、、だが、、、無理そう。
2)15個以内での、、、短手数・・・・なんかありそうで、、だが、、無理そう。
・・・・・・・・・・・
てことで、今のところ、、、がっくり、、、・・・・
・・・・駄目駄目モード・・・なのだジョー、、、
投稿情報: jyo-3 | 2011年12 月 6日 (火曜日) 午後 06時49分
面白い方法が思いつきません。。
しょうがないから単純にやってみました。
結果は80文字でした。
投稿情報: min | 2011年12 月 6日 (火曜日) 午後 07時21分
本題そっちのけで、検証プログラム作ってますが・・・・
うまく行かない^^
答え合わせまでにできるかなw
投稿情報: y sakuda | 2011年12 月 6日 (火曜日) 午後 09時54分
>本題そっちのけで、検証プログラム作ってますが・・・・
>うまく行かない^^
えーっ?!
それで何でワークシート関数でできるんだろう?!
?(・_。)?(。_・)?
投稿情報: くまぷー | 2011年12 月 6日 (火曜日) 午後 10時23分
>それで何でワークシート関数でできるんだろう?!
そういう意味じゃなく、Calculateイベントで捕まえる必要があるんですが、
そこを考えてやっているつもりなんですが、結果が変わっちゃうんで、上手く正解
を捉えられないんです。
投稿情報: y sakuda | 2011年12 月 6日 (火曜日) 午後 11時03分
>Calculateイベントで捕まえる必要があるんですが
単純に・・・
ワークシートの下のプロシージャを利用するだけでは
ダメなんですね?
Private Sub Worksheet_Calculate()
End Sub
投稿情報: くまぷー | 2011年12 月 7日 (水曜日) 午前 06時49分
職場に到着してちょっと実験してみました。
>結果が変わっちゃうんで
なるほど・・・
そういうことですか・・・
Excelに結果を残そうとするとCalculateイベントの嵐が・・・
・・・とすると結果はメモ帳でも起動してそちらに残すしかないのかな・・・
これから期末試験の監督です・・・
投稿情報: くまぷー | 2011年12 月 7日 (水曜日) 午前 07時58分
>Excelに結果を残そうとするとCalculateイベントの嵐が・・・
それは初めからわかってるので実行中EnableEventsをFalseにしてるんですが、それでも同じにならないので、次の手を考えてます^^;
投稿情報: y sakuda | 2011年12 月 7日 (水曜日) 午前 09時12分
チェック用プログラムを作りました。
使用方法は次の通りです。
1.標準モジュールを一つ入れる
2.そこに↓を丸ごと貼り付け
Function Check(ByVal pStr As String)
Dim wLen As Long, wBChar As String, wChar As String
Dim I As Long, J As Long, K As Long, wMax As Double
Dim wAry() As Double
wLen = Len(pStr)
J = 0
K = -1
wBChar = Left(pStr, 1)
For I = 1 To wLen
wChar = Mid(pStr, I, 1)
If wChar = wBChar Then
J = J + 1
If I = wLen Then
K = K + 1
ReDim Preserve wAry(K)
wAry(K) = CDbl(String(J, wBChar))
End If
Else
K = K + 1
ReDim Preserve wAry(K)
wAry(K) = CDbl(String(J, wBChar))
wBChar = wChar
J = 1
End If
Next
wMax = 0
For I = 0 To UBound(wAry)
If wMax < wAry(I) Then
wMax = wAry(I)
End If
Next
If wMax > 1E+15 Then
Check = "error"
Else
Check = wMax
End If
End Function
3.計算式のあるシートで好きな所に
=check(A1)
と入れてください。正解が表示されます。
なお、数字の並びが16桁以上の場合はerrorと表示するようにしてあります。
正解?と式の結果を比較したい場合は
A4に上記の式が入っており、回答式がA7に入っているとして
=IF(ISERR(A4+0),A4,A4+0)=A7
見たいにします。
多分大丈夫なような気がしますが、保障の限りでは・・・・・
投稿情報: y sakuda | 2011年12 月 7日 (水曜日) 午前 11時21分
あ、、、
不具合は修正しましたが、、、
皆さんより・・・だいぶ・・・・長いです。
で、、
9が、複数の場合が、、、一番多いですよね。
投稿情報: jyo-3 | 2011年12 月 7日 (水曜日) 午後 04時01分
本題の方は、別法は何も思いつかない^^;
投稿情報: y sakuda | 2011年12 月 7日 (水曜日) 午後 08時11分
2007以上が許されるなら、75でした。
投稿情報: min | 2011年12 月 7日 (水曜日) 午後 10時03分
>2007以上が許されるなら、75でした。
×2
投稿情報: y sakuda | 2011年12 月 7日 (水曜日) 午後 10時28分
>2007以上が許されるなら、75でした。
どうやらsakudaさんも同じ式のようですね。
ちなみに、2007以上なら、もう1文字減って74になりませんか?
投稿情報: min | 2011年12 月 7日 (水曜日) 午後 11時09分
>ちなみに、2007以上なら、もう1文字減って74になりませんか?
さて・・・・
正直なところ、2007、2010で増えた関数はあまり使う習慣がないので見落としている
可能性大ですw
投稿情報: y sakuda | 2011年12 月 8日 (木曜日) 午前 12時26分
う~~ん、、、
皆さんのコメントを見ていると
全員同じ式の可能性。。。<<<大>>>
つまらない問題でした。。。すみません
最小値(ゼロを除く)の方が面白かった、、、かも
投稿情報: からくち | 2011年12 月 8日 (木曜日) 午前 12時39分
>最小値(ゼロを除く)の方が面白かった、、、かも
そういえば、オールゼロのストリングが出てくるってのは考えてなかったな・・・・
でも結果おーらいでゼロのみのストリングの場合、0って表示されます^^
投稿情報: y sakuda | 2011年12 月 8日 (木曜日) 午前 12時57分
>現在80です。
>結果は80文字でした。
>2007以上なら、もう1文字減って74になりませんか?
この流れからしてどう見てもみな同じ式
そして出題者解答例もまた同じ
これは出題者責任で
最大値を求める関数の使用禁止
で急遽作った式(117)を出題者解答例とするつもりです
そうでもしないと皆さんが回答式を出せなくなってしまう
反省。。。
投稿情報: からくち | 2011年12 月 8日 (木曜日) 午後 02時27分
>この流れからしてどう見てもみな同じ式
へーーー
わかってないジョーもいる。
>そういえば、オールゼロのストリングが出てくるってのは考えてなかったな・・・・
>でも結果おーらいでゼロのみのストリングの場合、0って表示されます^^
では、これを、、、文字列のまま・・・・出してみた。
000000000000000000000000
とか、、出してみました。
投稿情報: jyo-3 | 2011年12 月 8日 (木曜日) 午後 05時37分
>最大値を求める関数の使用禁止
どこまで禁止したんだろ?
何種類か使えそうなものがありますが、すべて禁止かな?
投稿情報: y sakuda | 2011年12 月 8日 (木曜日) 午後 07時43分
>最大値を求める関数の使用禁止
愚問ですが。。
最大値を求める関数を禁止ということですので
最小値を求める関数も禁止ですよね。
ま、やってないんですが。
投稿情報: min | 2011年12 月 8日 (木曜日) 午後 09時08分
>すべて禁止かな?
>最小値を求める関数も禁止ですよね。
この手の関数はSMALLを使っています
ただしSMALL(範囲,135)の様に数値を得る使い方では無く
並び替えに使っています
あっ、、、これはヒントになってしまうかな
関係無いか、、、誰もこんバカバカしい式書かないから
投稿情報: からくち | 2011年12 月 8日 (木曜日) 午後 09時37分
からくちさんから出題者解答例を頂きました。
ありがとうございます。
投稿情報: くまぷー | 2011年12 月 9日 (金曜日) 午前 11時50分
アレから減らせたのは2文字だけ、、
さっぱり閃きませんでした^^;
せめて連続する数字の境目に区切り文字でも入っていてくれれば、
もう少し短縮出来そうにおもうのですが…
投稿情報: む印 | 2011年12 月10日 (土曜日) 午前 12時02分