« 関数で出来ますか~? 第54回 魔方陣Ⅱ 解答例 | メイン | かな-ローマ字変換マクロ »

2019年5 月14日 (火曜日)

コメント

からくち

あっ、、、もう出てる

易しすぎて暇を持て余すと思います
そしたら似た問題を明日にでも出しましょうか
この同じ表なので、、、
もっともそれも易し過ぎるでしょうけど
幾つか出しますか

y sakuda

一見簡単に見えるけど、手段考え始めて見たら案外面倒ですねーー
こういうのはとにかく一度長さ考えずにやって、それから眺めるのかな・・・・

y sakuda

Mode値が複数ある場合がありますが、その場合も関数Modeと同じ反応しなきゃいけないんでしょうか?

からくち

はい、、、E6にMODEが入っていますので
それと同じ値が返れば

因みに書いてみました、、、64

y sakuda

うーーん、かなり面倒だな。Modeと同じ反応で64??
とてもじゃないが・・・・・

y sakuda

とりあえず、できたけど、軽く3ケタ^^;

y sakuda

大幅にダイエットしたけど、まだジャスト100

y sakuda

姑息な手段でどうにか二桁って言っても、99ですがw

くまぷー

これ、難しいですよ。
良い手が浮かばん・・・

jyo3

おーーー

面白そう

でも、、、

手術まで・・・あたまが、、、、5分以上うごくと、、ぎずぎす・・

jjj

ってことで、、、
2016のエクセルでやってみます

か、、、

y sakuda

通常のダイエットで95
でも、なにか別の手思いつかないとこれ以上ダメっぽい。

maron

◆とりあえずやってみました、87

maron

◆少し頑張って、77

maron

◆もうちょっと頑張って、64

からけち

>もうちょっと頑張って、64
同じですね
ただわたしの式は何か無駄だらけに見える式です

からくち

またネームが違う

maron

◆別の方法で、61で惜しいところまで行ったのですが、残念です

y sakuda

うーーん、maronさんもやはりすごいな・・・・・

からくち

>別の方法で、
書いたら、、、66
2つ増えてしまった

からくち

その昔まだエクセルも98の時だったかな、、、
Q&Aのある質問で皆さん困り回答が出ない
その時わたしは通常とは逆の式を、、、
簡単過ぎてアホらしくなるくらいの

エクセル関数の面白さの1つ
見るアングルで全く変わる事かな

いま関数が何種あるのか知りませんが
殆の場合20種もあれば出来るのでは
それは自然と上記をしているからでは

y sakuda

全然次のアイデアでない・・・・
MODE.MULTはMODEではないと言い張ったりしてw

からくち

>MODE.MULTはMODEではないと言い張ったりしてw
はい、、、MODEではありませんね
でも2007なのでその関数まだですね
2010からでは、、、

MSはいろいろな関数を作り過ぎ
面白さが無くなる

y sakuda

>2007なのでその関数まだですね
どうでも良いですが、どのバージョンの回答をもとめてるんでしょうか?
今の時代普通にあるのは2013辺りが古さの限度って感じですが^^

さすがに98の動くのは私も持ってないです。2003はある。


からくち

わたしは2007と2003しか持っていません

くまぷーさんへ
問題と全く関係ない質問をさせてください
ここのblogは無料ですか有料ですか
有料でしたら月々の料金は
エクセルとは全く無関係ですが始めようかと考え中なので
宜しかったらお教えください
メールでもここでも構いません

くまぷー

>MODE.MULTはMODEではないと言い張ったりしてw

MODE.sgnlはMODEではないと言い張ったりしてw

くまぷー

>ここのblogは無料ですか有料ですか

優良です。月500円かな。
始めはjustsystemの無料版を利用していました。
だから、justsystemに気を遣って?一太郎とか三四郎を中心にやってたんですが・・・(^^ゞ

無料サービス打ち切りということで、tyapepadにしました。

y sakuda

もがいて、別の工夫してみたけど、基本のエンジンが同じなんで、却って伸びた^^;
新しいのは99止まり

からくち

くまぷーさん、、、ありがとうございます

この問題は端からヒントを出していました
それはcountifを使うと短い式になります
故に禁止にしました
殆ど同じ様な式で他の関数で出来てしまった
数文字長くなりましたけど

maron

◆別の方法は、最頻値が複数ある時に、MODE関数とは異なる答になりますが、53です

くまぷー

お早うございます。

>MODE関数とは異なる答になりますが、53です

maronさん、凄いですね。
53で出来ちゃうんですか。

多少、modeと動きは違っても「mode紛い」ですから・・・・

y sakuda

紛いの方なら、制約が減るからかなり楽になりますが、そっちでも66
まあ、ダメって分かったところで追及やめちゃってるからもう少し減るかもですが、53ってのはすごい。

y sakuda

また、別の方法思いついた。アイデア段階で60台なんてのは望むべくもないのは分かってたけど、多少は短縮するかと思ったら98。
まあ、非現実的な(例えば、全部同じ数字)なんてのを考えなければ少しは減らせるけど意味なし。
どうも、100前後から離れられない^^;

からくち

ううん、、、53
何だ~、、、どの関数を使ったのだろう
凄いです

maron

◆64:関数4種類、5個
◆53:関数3種類、3個

◆64と53に共通する関数2種類

maron

>多少、modeと動きは違っても「mode紛い」ですから・・・・
◆よければ、53が46になりました

くまぷー

>>多少、modeと動きは違っても「mode紛い」ですから・・・・
>◆よければ、53が46になりました

ぐぇっ!!
完全に心が折れました・・・orz

y sakuda

>◆よければ、53が46になりました
どうもならんな;;;

maron

◆心配になってきたので、確認したいと思います
◆確認用のマクロをお願いします

y sakuda

Sub Check()
Dim wCnt As Long, I As Long, wFlg As Boolean
wCnt = 1000
With ActiveSheet
wFlg = False
For I = 1 To wCnt
.Calculate
If .Range("E6") <> .Range("E9") Then
wFlg = True
Exit For
End If
Next
If wFlg Then
MsgBox "Error " & I
Else
MsgBox "Complete " & wCnt
End If
End With
End Sub

これで、ActiveなシートのMode欄と答え欄のチェックをやります。
Mode値が複数ある場合は対象にしてませんが、
複数MODE値はご承知と思いますが
=INDEX(MODE.MULT(B$5:B$1004),ROW(A1))
これを下に数個コピーして置けば複数あるかどうか分かります。

y sakuda

Mode紛い版のチェックプログラムです。
多分大丈夫だと思いますと言う程度の代物

Sub OtherModeCheck()
Dim wCnt As Long, I As Long, J As Long, K As Long, wFlg As Boolean, wMax As Long, wUB As Long
Dim wAry(1000) As Long, wCntAry(99) As Long, wMode, wFlg2 As Boolean
wCnt = 1000
With ActiveSheet
wFlg = False
For I = 1 To wCnt
.Calculate
wMode = Array()
For K = 1 To 1000
wAry(K) = .Cells(K + 4, 2)
Next
For K = 0 To 99
wCntAry(K) = 0
Next

wMax = 0
For K = 1 To 1000
J = wAry(K)
wCntAry(J) = wCntAry(J) + 1
If wMax < wCntAry(J) Then
wMax = wCntAry(J)
End If
Next
For J = 0 To 99
If wCntAry(J) = wMax Then
wUB = UBound(wMode) + 1
ReDim Preserve wMode(wUB)
wMode(wUB) = J
' MsgBox J
End If
Next

wFlg2 = False
For K = 0 To UBound(wMode)
If wMode(K) = .Range("E9") Then
wFlg2 = True
Exit For
End If
Next
If wFlg2 = False Then
wFlg = True
Exit For
End If
Next
If wFlg Then
MsgBox "Error " & I
Else
MsgBox "Complete " & wCnt
End If
End With
End Sub

y sakuda

何時もは最初の二日くらいでアイデア尽きてそれっきりなんだけど、珍しくまだ粘ってます。
まあ、何やっても、100前後で結果はついてきませんがw
最初の頃、これ使えばと考えた手法、明らかな欠陥があって捨てたんだけど、再チャレンジ。
お飾りが多くなって軽く100オーバーだけど、このアイデアは出来ただけで満足^^

maron

◆もう一つ別の方法で、75
◆ただし、3つとも共通する2種類の関数を使っています

◆おまけに、46は配列数式です

コメントの確認

コメントのプレビュー

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

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

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

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

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

処理中...

コメントを投稿

アカウント情報

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

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