« 関数で出来ますか~? 第333回 緑の数字Ⅱ | メイン | 関数で出来ますか~? 第335回  セル内数字の和 »

2020年5 月22日 (金曜日)

コメント

ni

sakudaさ~ん
ループ1回目からエラーになります。
重なってないときは16ですよね。
正解のテキストボックスが小さくて、正解値が表示されていません(広げればいいだけ)
作業セルP6の初期がフォント色 白 で見えませんでした。

Function check で
wSAns = .Range("M6")
wSAns = 999
答えを殺してますよ~

ni

で、作業セル使って合計185

ni

少し短縮 179

くまぷー

>ループ1回目からエラーになります。

あれ、「解答用参考ファイル」のバージョンを間違えたかな?
Ver。4を公開したのですが、違ってますか~?

ni

>Ver。4を公開したのですが、
バージョン番号が見つけられない^^;

くまぷー

>バージョン番号が見つけられない^^;

ファイルネームにV4とありましたが
それを20200522(日付)にしてしまったので・・・


この問題に関してsakudaさんとやり取りがあった時、通常使っていたhotmailの
不具合があったので・・・・

もしVer.5があればそれが最新・・・

jyo3

おーーーー
出てますねーーー

ni さん、、、この頃早いですねーーー

ni

在宅勤務になって、仕事にならないから休暇にして、
暇で仕方がない^^;

min

在宅勤務、大変ですね。。

まず、1セルでやってみました。
結構頭を使いました。
328でした。

min

作業セルを使えば急に難易度が下がりますが、
減らしどころがないですね。

で、作業セル4セル+回答セル=168
でした。

min

あれ、数え間違い。
168 ×
167

jyo3

質問です。
まだやってない。
でも、面白そう

質問とは

1一飛
1九角の場合

16?
15?

実際の将棋では、角を取ることもできるので
角の位置を含め、16か所に利いている

でも、取ることを考えないで、移動できる
場所と理解すれば、、、15となる

で、どちらの理解になるか教えてください。

しかし、、minさんも、、早いな―――


min

>角の位置を含め、16か所に利いている

なるほど。。

でも、sakudaさんの考えは角の位置を含めないみたいです。

ni

自分の角だから取れないでしょ^^

くまぷー

>実際の将棋では、角を取ることもできるので

角と飛車の向きを考えれば、
角と飛車は味方同士なので
取れないと思う・・・

角を守っていると考えて利いているいると捉えることは出来るが・・・

min

>角を守っていると考えて利いているいると捉えることは出来るが・・・
ジョー3さんはこれを考えているのでは?

min

角を取ることができるというのは、敵がということですよね。

jyo3

あああ、、、
そうですね、、、

ボケた質問でした、、、

みなさんが、、、正しい、、、

では、、、時々、、、考えます。ね、、

min

1セルでやったやつ、消し忘れた文字があって305でした。

それにしてもsakudaさん出てこられませんね。

y sakuda

すみません。朝まで寝付けなくて、午後になって起きたとこw
マクロの方はすみません。寝ぼけてるので、目がはっきり覚めたら速やかに対応します。

問題の趣旨は、飛車が行けるとこが何マスあるか?と考えて下さい。
元々は、相手の玉が安全なのは?ということだったんですが、ちょっと大変なことになるので変えました。
角が邪魔するところを数えたりするのは結構大変で、1セルでやると200超です。
ワークセル使うと簡単ですけど。

min

1セル 280

y sakuda

修正したのをクマプーさんに送りますが、応急処置としては
↓のFunctionを入れ替えてください。(コード全部ではなく、このFunctionだけ)
面倒なら、
wSAns = 999
を消すだけでも良いです。(これは答え欄が#Value等になった時の対応にすぎません
自分用のいろいろ入ったシートから出題用分けた後気が付いていじってドジやったみたいで申し訳ありません。

Function Check(ByVal dummy)
Dim wBan As Variant, wCtbl(9, 9) As Long
Dim I As Long, J As Long, K As Long
Dim wSAns As Long, wCnt As Long
If ActiveWindow.SelectedSheets.Count > 1 Then Exit Function
With ActiveSheet
BanColorRest 0
On Error Resume Next
wBan = .Range("B3:J11")
wSAns = 999
wSAns = .Range("M6")
On Error GoTo 0
Erase wCtbl
For J = 1 To 9
For K = 1 To 9
If wBan(J, K) = "??" Then
wCtbl(J, K) = 5
End If
If wBan(J, K) = "?p" Then
wCtbl(J, K) = 5
End If
Next
Next
For J = 1 To 9
For K = 1 To 9
If wBan(J, K) = "??" Then
Hisha J, K, wCtbl
End If
Next
Next
wCnt = TableCheck(wCtbl, ActiveSheet)
.Shapes("wSeikai").TextFrame.Characters.Text = "????: " & wCnt
End With
Check = wCnt <> wSAns
End Function

y sakuda

クマプーさん送りましたので、差し替えてください。
お手数かけます。

>正解のテキストボックスが小さくて、正解値が表示されていません(広げればいいだけ)
環境によってちがうのかな?
>作業セルP6の初期がフォント色 白 で見えませんでした。
気が付かなかった(自分じゃ使ってない)。
再送した奴でも直してない。お手数ですが、修正してください。

>1セル 280
さすが。私最初に動いたの300台後半でしたw

min

sakudaさんありがとうございます。

ちびちび減らしても1セル274にしかなりません。

これでおわりかも??

min

もう少し。
1セル257。

別の方法を考えないとこれ以上は無理か。

y sakuda

私は普通の方法で241までで終わってます。
どなたか200アンダーやってくれないかな?って思ってます^^

ただ、あんまり他方向性ってのが思いつかないんですよね・・・・

ni

作業セル使って・・・進展なし
1セルなんてとてもじゃない

くまぷー

>クマプーさん送りましたので、差し替えてください。

まだ届いておりません。

>>正解のテキストボックスが小さくて、正解値が表示されていません(広げればいいだけ)
>環境によってちがうのかな?

すみません。
私が画像をキャプチャーする時に横に縮めて
戻さずにそのまま、「解答用参考ファイル」として公開してしまいましたm(__)m

y sakuda

また、hotmailに送っちゃった。
再送しました。

min

またやってみました。
1セル237

これ結構疲れます。

頭では考えきれません。

くまぷー

>また、hotmailに送っちゃった。
>再送しました。

ヤフー、来ました。
有り難うございます。
早速、差し替えました。

>>作業セルP6の初期がフォント色 白 で見えませんでした。
>気が付かなかった(自分じゃ使ってない)。
>再送した奴でも直してない。お手数ですが、修正してください。

修正しました。m(__)m

くまぷー

>修正しました。m(__)m

自己レス。
あれ、もともと修正済みだったかも?

y sakuda

P6だけ白で残ってるみたいです。
すみません。

minさん237ですか・・・

maron

◆取り敢えず、1セルで275

y sakuda

やっぱりもう一度頑張ってみよ^^

min

1セルは235

作業セル使用は5セル合計165

で終了です。

こういう問題苦手だなあ。。

jyo3

名案が、、、閃かない、、、

からくち

いや~、、、出てますね、、、
ジョー3さん同様良くこの様な問題を思い付きますね
関心してしまいます
解くは超簡単、、、でも長~い式
短くは超面倒、、、
これぞここの問題ですね

y sakuda

>短くは超面倒、、、
それが出てこないw
だれか凄いの出すこと期待w

くまぷー

★終了宣言
1. minさん
2. 
3. 
4. 

みなさん、ゆっくり考えてください。
あまり、消費が激しいとすぐに在庫が無くなります。

からくち

取り敢えずテレビを見ながら書いてみた、、、174
書くの遅いから手が疲れる

y sakuda

174てのは1セルでしょうか?

min

>174
1セルなのかなあ?
だとすれば、驚異的

y sakuda

>だとすれば、驚異的
ですねーー
でも、そうだとすると、一挙に興味がw

私なんか、これも既にminさんに負けてるわけですが、5セルで171

くあぷー

>5セルで171

それでも雲の上・・・

y sakuda

もう一度式見直しても、余計なかっこ二組見つけただけで、241⇒237
ダメですね。こりゃw

からくち

1セルでは無いです
取り敢えずどんなものか書いただけですので

余りに数が多過ぎで短縮処では無いです
そうで無くても苦手なので単純な事も見落とし
168

maron

◆1セル:272
◆5セル:176

y sakuda

>1セルでは無いです
なんか、変な安心感w

jyo3

直前の3問で力を使い果たした。
だが、少し元気になった。

5セルだけやってみた。

179
・・・・あらら、、、
皆さんに及ばないようです。

発見、、、何度か、、飛車だけに(角が盤上になし)・・・
これって罠?、、、、

y sakuda

>これって罠?、、、
です。
式によっては、角があることを前提にしてるとアウトになる場合があるはずです。

1セル235 一応minさんに追いつきました。
私のかなり変な事やってる式なんですが、同じなんてことあり得るのかな?

min

1セルは作業セルに入力した式を代入すれば何とかなる。

1セルは基本的には縦横の処理をそれぞれ1回づつ式の中に入れないといけないので長くります。
それを少し変なことをして短していくのでしょうが、気力がないとなかなかですね。

作業セル使ってやるだけでもいいかも。
その方が相当分かり易いし。

まここはマニアックなので、いいのでしょうが。
1セルの解答は発表されても理解に苦しむかも。

では、出かけます。

y sakuda

>まここはマニアックなので、いいのでしょうが。
ですw
こういうとこ以外じゃアホってなもんです。
>1セルの解答は発表されても理解に苦しむかも。
それは言える。
ただ、私はみつからなかったんですが、縦横ないしは、飛角の位置関係をうまく処理する方法をどなたか発見してくれることを期待してました。でも無理だったみたいですね。

maron

◆1セル:242

くまぷー

>気力がないとなかなかですね。

私は気力も・・・才能も・・・orz

からくち

終了です、、、1セル、、、92

ゴルフに行きたいな、、、
歩かないので体が、、、

からくち

>1セル、、、92
これ、、、全く違います
失礼しました

min

覗いてみた・・
え~、びっくり!!

でも、倍にしても200切り
なんか期待が、、

で、終了取り消しですか?

y sakuda

>え~、びっくり!!
×2
でも、期待しちゃう^^
200アンダーはしたいけど、私は無理かもという気分になってます。

からくち

わたしはどの問題でも基本短縮苦手故
出題拝見=終了で結構です
5セル:168(3種10関数)

y sakuda

私も画期的なアイデアは出ないままですが・・・・
せこい短縮の積み重ねで
5セル:158
1セル:223
こういう修正は疲れるだけで楽しくない・・・・

くまぷー

★終了宣言
1. minさん
2. からくちさん
3. 
4. 

からくち

あれ~、、、どうしたんだろう

くまぷー

昨日は書き込みがほとんどなかったなぁ~

y sakuda

1セルは、222になったけど、もう何も出てこなくなりました^^;

ni

5セル:179
1セル:ギブアップ
から進展なし(;;)
終了です。

くまぷー

★終了宣言
1. minさん
2. からくちさん
3. niさん
4. 

今日も出が少ないですね。
いよいよ、緊急事態宣言も解除されるので
みなさん、平常運転になり忙しくなったのかな?

y sakuda

>みなさん、平常運転になり忙しくなったのかな?
と言うより、問題の問題かと・・・

jyo3

ああ、、、すみません
終了です。
>5セル:179
>1セル:ギブアップ
>から進展なし(;;)
>終了です。

全部おんなじです。  

くまぷー

★終了宣言
1. minさん
2. からくちさん
3. niさん
4. ジョー3さん

4人揃いました。m(__)m

ysakuda

O6 =MAX((B3:J11="飛")*ROW(1:9))
27
O7 =MAX((B3:J11="角")*ROW(1:9))
27
P6 =MAX((B3:J11="飛")*B2:J2)
24
P7 =MAX((B3:J11="角")*B2:J2)
24
=16-ABS((O6=O7)*(P7-10*(P7>P6))+(P6=P7)*(O7-10*(O7>O6)))
56
計 158
1セルは222です。
=16-ABS(OR(MMULT(N(B3:J11>""),A1:A9+1)>1)*(MAX((B3:J11="角")*B2:J2)-10*(MOD(MIN(-(B2:J2&CODE(B3:J11&0))),10)=3))+OR(MMULT(E1:M1+1,N(B3:J11>""))>1)*(MAX((B3:J11="角")*ROW(1:9))-10*(MOD(MIN(-(ROW(1:9)&CODE(B3:J11&0))),10)=3)))

y sakuda

正直なところ、どなたか、もっとすっきりした1セル式を出してくださることを期待したんですが、長さを拝見した範囲では、やってることは同じような話なのかなと思ってます。
なんか、発展性のない問題でした・・・

ni

O6{=SUM(("飛"=B3:J11)*ROW(1:9))}
O7{=SUM(("角"=B3:J11)*ROW(1:9))}
P6{=SUM(("飛"=B3:J11)*COLUMN(A:I))}
P7{=SUM(("角"=B3:J11)*COLUMN(A:I))}
B2:J2が使えたのか。
M6=16-(O7=O6)*IF(P6>P7,P7,10-P7)-(P6=P7)*IF(O6>O7,O7,10-O7)
面白い問題なんだけど、アイデアが出なかったです。

jyo3

{=SUM(("飛"=B3:J11)*ROW(1:9))}
{=SUM(("飛"=B3:J11)*COLUMN(A:I))}
{=SUM(("角"=B3:J11)*ROW(1:9))}
{=SUM(("角"=B3:J11)*COLUMN(A:I))}
=16-(P6=P7)*IF(O6>O7,O7,10-O7)-(O6=O7)*IF(P6>P7,P7,10-P7)

違ってるかも、、、

くまぷー

M6:=IFS(P6=P7,IF(O6>O7,18-O7,O7+4),O6=O7,IF(P6>P7,17-P7,P7+5),1,16)
O6:=SUM(IF(B3:J11="飛",ROW(B3:J11),))
P6:=SUM(IF(B3:J11="飛",COLUMN(B3:J11),))
O7:=SUM(IF(B3:J11="角",ROW(B3:J11),))
P7:=SUM(IF(B3:J11="角",COLUMN(B3:J11),))

>B2:J2が使えたのか。×2

jyo3

くまぷーさん、、、

変更して(単純化)

お送りいたしました。

すみません、、、宜しくです。

y sakuda

皆さん事実状同じですね。
B2:J2は私も逆なので使えないと思ってたんですが、考えてみれば逆だろうとなんだろうと関係ないのに気が付きました^^

min

解答欄=57=16-(O6=P6)*IF(O7<P7,O7,10-O7)-(O7=P7)*IF(O6 O6=29{=SUM((B3:J11="角")*ROW(1:9))}
P6=28{=SUM((B3:J11>R8)*ROW(1:9))}
O7=26{=SUM((B3:J11="角")*B2:J2)}
P7=25{=SUM((B3:J11>R8)*B2:J2)}
文字数合計=165

1セル
MMULTは苦手なんです。。
ちょこま短縮したもので、何かなあ~って感じですが

237
{=16-IF(MAX(MMULT(LEN(B3:J11),1^A1:A9))=2,ABS((SUM(((B3:J11="角")-(B3:J11="飛"))*B2:J2)>0)*10-SUM((B3:J11="角")*B2:J2)))-IF(MAX(MMULT(1^B2:J2,LEN(B3:J11)))=2,ABS((SUM(((B3:J11="角")-(B3:J11="飛"))*ROW(1:9))>0)*10-SUM((B3:J11="角")*ROW(1:9))))}

235
{=16-IF(MAX(MMULT(LEN(B3:J11),1^A1:A9))=2,ABS((MOD(MAX((1&CODE(B3:J11&0))*B2:J2),23)=0)*10-SUM((B3:J11="角")*B2:J2)))-IF(MAX(MMULT(1^B2:J2,LEN(B3:J11)))=2,ABS((MOD(MAX((1&CODE(B3:J11&0))*ROW(1:9)),23)=0)*10-SUM((B3:J11="角")*ROW(1:9))))}
・・・codeはsakudaさんもやっているみたい。


で、MMULTを使わないでやってみた。。
281
{=16-IFERROR(ABS(IF(MATCH("角",OFFSET(B2:J2,MAX((B3:J11="飛")*ROW(1:9)),),)-MAX((B3:J11="飛")*COLUMN(A:I))<0,,10)-MAX((B3:J11="角")*COLUMN(A:I))),)-IFERROR(ABS(IF(MATCH("角",OFFSET(A3:A11,,MAX((B3:J11="飛")*COLUMN(A:I))),)-MAX((B3:J11="飛")*ROW(1:9))<0,,10)-MAX((B3:J11="角")*ROW(1:9))),)}

それにしても長い。。気力が続かない。。
見返す気力が・・
sakudaさんの式も見る気力が出たら見ますね。

次は簡単な問題かなあ。

緊急事態宣言解除
ま、よかったですね。

y sakuda

minさんの235はほとんど私のと同じですね。
しかし、MMULT使わないのは・・・
使わないのもかんがえたんですけど、長さ以前に上手く行かなかったです。OFFSET使えたのか。どっちかって言うと、INDEXでやろうとして断念しました。

くまぷー

>変更して(単純化)
>お送りいたしました。
>すみません、、、宜しくです。

拝受しました。
単純化はいいのですが
niさんとの話は済んでいるのでしょうか?
たしか、この問題はniさんのお手を煩わせている問題のはずなので・・・

ni

わたしは問題が理解できるかどうかをチェックしただけなので、あとはおまかせです。
問題みたけど、まだ解いてないし。

くまぷー

>あとはおまかせです。

niさんのことだから
きっとそうおっしゃると覆っていましたが
念のため m(__)m

からくち

=IF(O6=P6,IF(O7O6,8-O6,O6-2),8))+8
{=SUM((B3:J11="角")*ROW(1:9))}
{=SUM((B:J="角")*B2:J2)}
{=SUM((B3:J11="飛")*ROW(1:9))}
{=SUM((B:J="飛")*B2:J2)}

どうにも、、、おそらく皆さんと99%同じでは、、、

からくち

=IF(O6=P6,IF(O7<P7,8-O7,O7-2),IF(O7=P7,IF(P6>O6,8-O6,O6-2),8))+8

くまぷー


×きっとそうおっしゃると覆っていましたが

〇きっとそうおっしゃると思っていましたが

コメントの確認

コメントのプレビュー

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

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

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

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

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

処理中...

コメントを投稿

アカウント情報

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

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