« 関数で出来ますか~? 第323回 簡単3問 七歳 | メイン | 関数で出来ますか~? 第325回 順位の集計 »

2020年4 月29日 (水曜日)

コメント

y sakuda

方針たてるまでに時間かかりそう

min

>方針たてるまでに時間かかりそう

同じく。

例示と実際の表示がちょっと違うのが気にはなる。

からくち

今回はわたしのか、、、残念
この問題も余りに易し過ぎですみません
出題を書きながら解答も合わせて終わり故
今回は何とか皆さんが少々お困りになる様な問題を考えるか

でもそれだと今日中に昨題しないと終わってしまう

y sakuda

>この問題も余りに易し過ぎですみません
易しくない
なんか思いつけないと不参加の可能性も・・・

min

やさしいかどうかわかりません。

無理やりやって、D1=226でした。。

min

A列を使って、A1+d1=63でした。

なんだかすっきりしませんが。

min

あ、失敗・・

min

74でしたwww

min

ちょっと整理して
a1+d1=64

やっぱりすっきりしません。

からくち

A+D=38
Dのみ137

短縮苦手故長い
皆さんだと2桁かな、、、
この文字数、、、
作業列の大切さを教えてくれている気がする

min

結構短くなるのですね。。

A+D=59


休憩。

min

A+D=59
不具合あり、すみません。

では

y sakuda

全然アイデアでない・・・

くまぷー

>全然アイデアでない・・・×2

ダメかも・・・

min

また少しやってみましたが、
A+D
49にしかなりません。

また、あとで。

y sakuda

なんとか、二式74で動いたみたいだけど・・・・
短縮も厳しいし、この形じゃD1のみにするのはできないかも;;;

からくち

いや~、、、大型モールやララポート
何処もみな臨時休業
GWの人達はどうしているのかな
ゴルフ場はまだ何故か営業している
今は1番の書き入れ時とばかりに
静岡東部は半数以上が神奈川県のお客様
いいのかな、、、
レストラン・お風呂・ロッカー等使用禁止
濃厚接触に当たるから、、、
1番の濃厚接触は乗用カートと思うけど
これは使っている、、、
これ使わないと誰も来なくなるから、、、

>全然アイデアでない
から
>74で動いた
直ぐこれ、、、

>49にしかなりません。
あっと言う間に抜かれそう

y sakuda

D1 88
一見よさそうなんだけど、本当かな?

y sakuda

A+D 57
D 88
しかし、A+D 38って・・・・

ただ、今一つ自信がないですね。
またVBA作るかな? 大げさすぎる気もするけど。

y sakuda

VBAでテストしました。
もし、私の問題解釈が間違ってなければ大丈夫みたい。

しかし、みりゃ分かるようなもんだから、VBA入り要る人いるかな?
それにしても私とminさん以外(クマプーさんは別として)見てないのかな?

y askuda

気が付かなかった無駄削って
A+D 54
D 84

jyo3

ただいまーーー

うわーーー、、、
もうだいぶ進んでるみたい・・・・・

さてさて、、、

まず、問題を理解しなきゃねーーー

jyo

>>この問題も余りに易し過ぎですみません
>易しくない

そそ、、、、

jyo3

きょうはねーーー、、、
肉体労働だった。
疲れた。 ・・・

閃かない
日本酒
・・・・

y sakuda

A+D 54
D 74
でも、正直なところなぜこれで動いてるのか今一つ分かってないのが不安。

からくち

84、、、あっと言う間、、、か
分かってはいたけど、、、流石早い
A+Dも間もなくかな、、、

jyo3

試作
A+D 70ぐらい
Dだけ、、、まとまらん、、、

>D 74
げ、、、、なんだこりゃ、、、
・・・・・・・・・・ショック、、、、

sakuda さんは、、、からくち さんの問題・・・
相性がいいのかな―――、、、、

jyo3

囲碁で、、、息抜き、、、

y sakuda

>相性がいいのかな―――、、、、
どっちかって言うと悪いです^^;

min

a+d
38ってのはわかりました。

dのみをやってみるか、どうしようか。。

からくち

>38ってのはわかりました
抜かれるの、、、もう直ぐだな
Dは既に抜かれているし
短縮、、、嫌い

min

>抜かれるの、、、もう直ぐだな

からくちさん
38を抜くのは正直無理なんじゃないですか。

からくち

A列の式次第では、、、と思います
意地悪で1行目から使っていますので、、、
同じ式でしたら、、、ですが

y sakuda

>意地悪で1行目から使っていますので、
やっぱり故意かw

しかし、初日終了にはならなかったですねーー
なる訳ないとおもってましたけど^^

y sakuda

A+Dは51にはなったけど、38ってのは遥か彼方^^;
Dの方はもう進展しないかも

maron

◆A+D=38 は何とかできました
◆それでは、Dにかかります

くまぷー

お早うございます。

D、1式76です。
2016です。

ところでExcel2019というのがあるそうですね。
どんな機能が増えたのやら・・・

からくち

練習場に行ってきた、、、空いていた

>D、1式76です
あらら、、、また凄いのが出て来た
乾杯したかったけど、、、
あっと言う間に完敗、、、

y sakuda

あんまり必要ないかと思いますが、チェック用マクロです。
繰り返しは100回ですが、変えたいときは、E20 に1000とかいれてください。
Sub Check()
Dim wLim As Long
Dim I As Long, J As Long, K As Long, L As Long
Dim wAry(20) As String
With ActiveSheet
If .Range("E20") = 0 Then
wLim = 100
Else
wLim = .Range("E20")
End If
For I = 1 To wLim
Application.Calculate
For J = 1 To 20
wAry(J) = ""
Next
L = 0
For J = 1 To 7
If .Cells(J, 2) > 0 Then
For K = 1 To .Cells(J, 2)
L = L + 1
If L < 21 Then
wAry(L) = .Cells(J, 3)
End If
Next
End If
Next
wflg = False
For L = 1 To 20
If wAry(L) = .Cells(L, 4) Then
Else
wflg = True
End If
Next
If wflg Then
MsgBox I & " Error"
Exit Sub
End If
Application.StatusBar = I
Next
MsgBox wLim & " OK"
End With
End Sub

y sakuda

A+D 43
D 66
二式の38ってのが分からん・・・・

からくち

>38ってのが分からん
D 66ってのが分からん

毎週買っている宝くじ
その売場も臨時休業、、、
そんなに混雑、、、

y sakuda

38が分かれば、Dの式にも使えるんじゃないかって言うスケベ根性w

min

38がわからないうえでのsakudaさんの43って相当すごいのでは?
こちらももう少し考えた方がいいのかも?

y sakuda

実はA+DはずっとA列は同じ式
A列に際物的な手をダメ元で使ってみたら、意外にも上手く行ったけど、残念ながらトータル+1と延びた。
しかし、今回niさんの姿が・・・・不気味^^

y sakuda

D 64

からくち

>38が分かれば、Dの式にも使えるんじゃないか
もろにそれを書いたのが、、、137
使わない方が良いみたい

y sakuda

>使わない方が良いみたい
www
A+Dは41
ただ、みなさんの言ってる38とはちがうんだろうな・・・・

min

>A+Dは41

>D 64
は手法に関連性があるのでしょうか?

y sakuda

>手法に関連性があるのでしょうか?
根っこのとこは同じです。
元々は70超の二式をなんとか一式にまとめるって方向でした。

y sakuda

変なことに気が付いた・・・
二式の最後の方でやった変更、上手く行ったとよろこんでたんですが・・・
上手く行く訳がない。で、2016から関数の機能が変わったのかと思ったら、2013で試しても同じ。
答え合わせの時教えてもらわなきゃ^^

y sakuda

2013 で確認したことの続きですが、私の一式方式は、2013では{ } が必要なようです。
と言うことで、64と言ってたのは2013では66になります。
二式方式はそういうことはありません。(当たりまえw)

jyo3

ただいまーーーー

さて、、、進んでるようですね――――

もどって、みてみなくっちゃーーー

jyo3

なんか、、、すごいのねーーー

・・・・・・・・・・・
ここ見ないで、、、少し、、、やってみますね、、、

からくち

最近本当にボケが来たかと思ってしまう

>64と言ってた
全く見当が付かない
いくら嫌い・苦手と言っても、、、
そろそろ、、、かな、、、

sakudaさん
早く見たいです

からくち

とてもでは無いけど64はわたしには不可能ですね
全く違う考え方で、、、と思ったけど
D1 だけでその文字数を使ってしまう
例えばB1:B3が0だとsakudaさんがD1 を表示
と言う様に誰が来るかが分からないので
その下やその数を、、、
とするとどうしても長くなってしまう
何か違う方法があるのだろうけど閃かない

maron

◆やっとできました、D1:165

からくち

>D1:165
おお、、、3桁仲間、、、良かった
2桁に行かないで~、、、

maron

◆3桁でも、やっとできたんです

y sakuda

なんか、意外な状況・・・
からくちさん、易しいっていってたけど、1列から始まってるところに苦労して、やっとやった二式が確か70台。
当然やってることは同じなんですが、それを1式にまとめるのも、どうやって?って感じでしたが、結局は極普通の式でまとめただけ。
ただ、まとめた式は意外と短く105でした。
A+DもDもそれらの最初の式をすこしづつ整理しただけで難しいことはやってないし、新関数もつかってません。
なかなか4人そろいそうもないですが、とりあえず終了宣言です。
まあ、38の探索はつづけますが^^

くまぷー

>とりあえず終了宣言です。

★終了宣言

1. sakudaさん
2. 
3. 
4. 

くまぷー

>ただ、まとめた式は意外と短く105でした。

105が60台まで短くなったという事ですよね。
それも、いわゆる新関数無しで・・・

うーん、どういうカラクリなんだろう・・・

maron

>新関数もつかってません。
◆という事なので、もう少し頑張ってみます

y sakuda

>うーん、どういうカラクリなんだろう・・・
からくりほとんどないです。
元が相当無駄やってたのと、余白に出てくる0の処理を改善しただけみたいなもんです。

y sakuda

私のは動いてるには動いてるんですが、なんでこれで良いのか分からない部分もあります。
(関数の機能について)

min

この問題の表は頭に入りやすいので、
頭で考えやすいのですが、
何にも思いつかないから、ギブアップ

くまぷー

>何にも思いつかないから、ギブアップ

minさんにしては珍しい。
終了宣言ですか?

y sakuda

この調子だと何時終わるんだろ?
からくちさんの「今日中に終わる」って予想おおはずれw

min

>終了宣言ですか?
yes

ま、明日の午前中は、パソコン立ち上げてみようとは思いますが、
多分変わらないと思いますので。

くまぷー

>とりあえず終了宣言です。
>>終了宣言ですか?
>yes

★終了宣言

1. sakudaさん
2. minさん
3. 
4. 

ni

すみませーん、今回ギブアップです

y sakuda

>すみませーん、今回ギブアップです
えーーー???

くまぷー

>>すみませーん、今回ギブアップです

> えーーー??? ×2

くまぷー

★終了宣言

1. sakudaさん
2. minさん
3. くまぷー
4. 

からくち

今回の問題は試しに作業列使用可にして見た
すると短縮苦手なわたしでも38
そこに1式で、、、
>60台まで短くなった
思った通り簡単過ぎたかと、、、
処が、、、
>何にも思いつかないから、ギブアップ
>今回ギブアップです
ええっ、、、
問題作りの難しさを改めて感じました

maron

>問題作りの難しさを改めて感じました
◆maronも同じような問題を考えていましたが、
◆この方がずっと面白くて、奥が深いです

◆からくちさんに脱帽です

min

おはようございます。

パソコン立ち上げてみました。
一昨日やっていたDのみの式は文字数をカウントしたら
95でした。
いずれにしても、レベルが違いますね。

jyo3

最初、、2式合わせて、、、76
でも、、、38???

丁度倍ですね、、、、息をくじかれ、、、て、、いた。
数字も・・・・恥・・・・言えなかった。

で、今ちょっと見たら、、、3名終了・・・

気持ちを取り直して、、、、
少しやってみます・・・・・・終了宣言のため、、、、に、、も、、、ね。

jyo3

2式
40+36

1式
71

で、終了です。

38ショックで、、、素材のまま、、、
工夫しても、、、数文字でしょうから、、、、、、

からくちさんに、、数手目に、、参りました。の将棋気分。
38、、分かった方もすごい・・・

くまぷー

お早うございます。

★終了宣言

1. sakudaさん
2. minさん
3. くまぷー
4. ジョー3さん

それでは解禁という事で・・・m(__)m

jyo3

>それでは解禁という事で・・・m(__)m
あはは、、、
おまたせ・・・・・

concat
使いました。
恥ずかしいから、、、もうすこしあとで、、、、、

くまぷー

=MID(CONCAT(REPT(C$1:C$7&REPT(" ",6-LEN(C$1:C$7)),B1:B$7)),1+(ROW()-1)*6,6)

各人の名前を等長(6文字)にしてmid関数で各セルに切り出しました。

concat関数は便利ですね。

min

concatは使えるかなあと思いました。

最初適当にDのみで書いた式
=TRIM(MID(REPT(LEFT(C$1&" ",6),B$1)&REPT(LEFT(C$2&" ",6),B$2)&REPT(LEFT(C$3&" ",6),B$3)&REPT(LEFT(C$4&" ",6),B$4)&REPT(LEFT(C$5&" ",6),B$5)&REPT(LEFT(C$6&" ",6),B$6)&REPT(LEFT(C$7&" ",6),B$7),ROW()*6-5,6))
長い、、

min

A+Dの38をほぼそのままDのみに置き換えた93は
=IF(SUM(B:B)<ROW(),"",LOOKUP(ROW()-1,MMULT(N(ROW($1:$7)>=COLUMN(A:G)),B$1:$B$7)-B$1:B$7,C:C))
でした。

jyo3

恥ずかしながら、、、出かけるので、、、出しておきます。
71

{=OFFSET(C$1,MID(CONCAT(REPT(ROW(A:A),B:B))&REPT(8,17),ROW(),1)-1,)&""}

y sakuda

出遅れました。38ってのまだ投稿されてないですね・・・・
A+D 41
=""&VLOOKUP(ROW(),A:C,3)
=SUM(B$1:B1)-B1+1

A 64(66)
=""&LOOKUP(ROW(),MMULT(-(ROW($1:8)>COLUMN(A:H)),-B$1:B$8)+1,C:C)
minさんの私のとほとんど同じだと思います

y sakuda

書き忘れました。
A+Dの=SUM(B$1:B1)-B1+1 は 8列までコピーする必要があります。
Aの方もROW($1:8)となっている理由は同じで、7にすると余白がからくちで埋まったり、すべて0の時(起こるかどうか不明ですが)テーブルが空白にならずからくちが一件でちゃいます。

y sakuda

くまぷーさんのB1:B$7 のとこ B$1:B$7ですよね?
ジョー3の一見なんのことか分からんかったw なるほど。
くまぷーさんの方式のConcatは考えなくもなかったですがじょー3方式は全く浮かばないwww

くまぷー

>くまぷーさんのB1:B$7 のとこ B$1:B$7ですよね?

すみません。ご指摘の通りです。m(__)m

からくち

おお、、、出てる、、、
こんなつまらない問題にお付き合いいただき
感謝です

出題者解答案です
A1:A20;=SUM(B$1:B1,1)-B1
D1:D20;=LOOKUP(ROW(),A:C)&""

y sakuda

あっ
=LOOKUP(ROW(),A:C)
こんな使い方できるんか・・・・
A:A,C:C
にしなけりゃならないからVlookupの方がと思ってました。

しかし、不思議なんですが、私の
=""&VLOOKUP(ROW(),A:C,3)
たとえば、くまぷーさんが0の時、#N/Aがでるはずで、最初近似一致でやってたんですが、なぜかエラーが出ない、またVlookup A:C とA1:C10 等で#N/Aの出方が違う。
このあたりどなたかご存じないですか? まあ、今回はテーブルのキーが昇順になってるからかもしれませんが、ならんでなくてもエラーにならないことが結構あるようです。
この頃Vlookupなんかここじゃめったに使わないからwww

からくち

>=""&VLOOKUP(ROW(),A:C,3)
V・3・)の3個を取れば、、、38ですね

からくち

>V・3・)の3個
間違えですね
V・,・3の3個ですね

y sakuda

しかし、なんどやってもLookupってのは使いこなせませんね・・・・

今回の問題、1列が空いてないので、A列の始末に苦戦したけど、そこ解消しちゃったらそこから先は案外素直。
Sumじゃ配列つくれないからMMULTって流れが自然だとおもったんですが、以外と苦戦した人多いのが意外でした・・・・

からくち

いやいや、、、今回はsakudaさんのひとり勝ちの様相

A1を態々1にする事で色々な事を回避しているのでは、、、

からくち

>Lookupってのは
わたしは自身の表しかエクセルを使いませんが
vlookuplは殆ど使いません、、、
lookupは使っていますけど
理由は色々あります
・C列を検索でA列を表示
・エラー無視
・配列をそのまま
数えたらきりがありません
昇順なんて関係ない、、、
配列故どうにでもなるので
勿論ですがVLOOKUPでも
C列参照A列表示、、、も出来ますが
LOOKUPの方が好きです

jyo3

からくち さん
sakuda さん
Aは同じですね、、、


出題者解答案です
A1:A20;=SUM(B$1:B1,1)-B1
近いところまで行ったが、、、
なかなか、この式出てこなかった。

で、
A:{=CONCAT(REPT(ROW(A:A),B:B))&REPT(8,17)}
D:=OFFSET(C$1,MID(A1,ROW(),1)-1,)&""
でも、、、
分けたのは、、、無意味っていえば、無意味、、、

A1のところに、、、分けたのが入るだけだから、、、

リハビリになってないな―――

・・・からくちさん、、、参りました。です。

y sakuda

まあ、私もVLOOKUPは実用上、極普通の使い方しか使ってませんけどね。
2016以降、XLookupってのが入って、エラー時の扱い、任意列の表示等ができるみたいで、田中亨さんは推奨してますが・・・・
個人的には面倒なだけかとw
今回の第一式、
=SUM(-B1:B8)
のもやったけど、結局
=""&VLOOKUP(ROW()+A$1-1,A:C,3)
で合計42と延びたw
私は結構あそべました^^
ただ、途中でも書きましたが、今一つなんで動いてるのかちゃんと理解できないところがあり、不安感一杯でVBAでチェックまでやる羽目にwww

y sakuda

後、もう一つ。
これ、余白に0が出ちゃう問題。
最初、Nullが0と表示されてるだけっての気が付かず、Textならってことで・・・
で無意味に
Text(・・・、”;”)なんてやってた
しかしその内
Txet(・・,)
と第2パラ省略してもOKだった。
Textで第2パラ省略できるなんて知らんかったw
意味があるかどうか不明ですが・・・・

jyo3

> XLookup
わたしもちらっと、、、見ただけ、、、、で、使ってませんが、、
5年ほどだったか前に、、、、、どこかの、、、エクセル関数リストに
・・・・・・Ylookup と、、言うのがあった。  そこのところに、、、
そんなのまだないでしょ・・・・と、お知らせしたら、
、、、すぐリストから消えた(もちろん)

だから、 X でなく、、、この度、、、 Y だったら、、、ほーーー
先見の明!!!  だったのにねー。

min

今回、いい問題でしたね。
A+Dは大差ありませんが
私はtでやりました。
tと&″″は意味が全然違うけど。
38
15=SUM(B$1:B1)-B1
23=T(LOOKUP(ROW()-1,A:C))

コメントの確認

コメントのプレビュー

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

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

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

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

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

処理中...

コメントを投稿

アカウント情報

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

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