Excel関数に詳しい人来て
■ このスレッドは過去ログ倉庫に格納されています
abcaaabcabc
この中でbが何個あるか数える方法ある?
関数で まぁ関数の組み合わせがあるからイッチには難しいかな セル内の特定文字数をカウントする
…ここまで教えたらもう完璧に分かるだろ >>8
組合せでもいいから教えて
多分SEQUENCE関数との組合せになると思ってる =LEN(対象文字列)-LEN(SUBSTITUTE(対象文字列,"b","")) ググり方を覚えなきゃいくら勉強しても勉強したそばから忘れて勉強が無意味になっちゃうぞ 一応ググったけど思ってたのと同じ理屈だった
数えると言うよりは差分から文字数を数える…
おっとここまでな >>16
もし文字列に空白があった場合はbと空白の数が足されない? >>17
ググれカスってのはねテメェの小さな脳みそで物考えるより先人の遺したメモ書きを読んだ方が早くて正確に結果出せて学ぶ事も多いって意味なんだ
だから考えてる暇があるならググれカスって言葉を思い出して欲しいな 違うな
空白の文字を作るんじゃなくてそのセルからbを空白にするからその空白はオリジナルになるのか >>19
空白セルは0として処理されるで
(半角スペース、全角スペースを空白って書くのは紛らわしいのでやめてね)
計算式はb以外を除いているので空白セルもスペースも無関係やで >>24
なるほど出来たわ
そこからが問題で色々悩んでるからちょっとまっててな 何がしたいのかを先に言って状況画像をうpしてくれると助かる >>28
この画像のA列にはカッコがあって↓
[
と
]
このA1番目のカッコ内を取り出すにはどうすればいいのかなと思って
http://imgur.com/AAVgiWC.png 2番目のカッコ内だから
def
と
6789
を取り出したい A1が1の場合とA1が1以外の場合があるはず
1以外の場合は再帰しないといけないからLAMBDA関数を使うと思うんだ
どう思う? FINDで左から何番目に]があるか調べて
LEFT関数で取り出せば? >>33
FINDは左の開始位置から何番目に最初の]が出てくるかを調べるから2個目とか3個目は式が長くなりそうだな >>34
○番目の[と]の間を取り出したい
多分ワークシート関数だけだと再帰使わないと無理っぽい ごめん、VBAは使えないんだ
社内で使用禁止だから =LET(a,FIND("💩",SUBSTITUTE(A2,"[","💩",A1))+1,b,FIND("💩",SUBSTITUTE(A2,"]","💩",A1))-a,MID(A2,a,b)) >>29
@これのA1が1の場合
AこれのA1が[の数の上限だった場合
↑この2つの場合の処理はわかった
問題はA1が@とA以外の場合 >>38
それ最初のカッコ内だけしか取り出せなくない? >>38
あとA2が何回も出てくるから
A2→a
a→b
b→c
にすればMID(a,b,c)になってわかりやすそう >>44
SPLIT関数が新しく出たの?
と思ったらスプ氏だった SPLITはスプシとVBAと両方存在するから干渉しないのかなと思ってる >>52
というわけだが
関数でやるとかなり難しいやつだな >>52
なるほど>>1の言いたかった事が理解出来た あ、[]は消えてもいいんだっけ?
なら最初の置換するところで★と☆に置換すればいい 違う
>>29を見てほしいんだが
A1番目に登場する[]の中を取り出したい
A1の数値が変わるとその中身も変わるはず A1が1なら
abc
12345
A1が2なら
def
6789
A1が3なら
ghi
1234567
みたいに取り出したい
http://imgur.com/AAVgiWC.png >>62
疲れてんなぁ
甘い物でも食って来いwww >>62
10個あってもできるから
まず自分で同じように組んで試してから言えよ >>69
すまん牧野じゃないしググっても分からんかった
ちなみに俺はグーグル先生がないとまともにエクセル関数作れない なるほどLAMBDAを使わないで出来た
http://imgur.com/6NXFSnR.png
このA1が5の場合(エラーの場合)A1を1ずつ減らすにはどうすればいい?
http://imgur.com/hln1AY2.png =LET(f,LAMBDA(f,str,delim,idx,IF(idx<1,MID(str,1,IFERROR(FIND(delim,str)-1,LEN(str))),f(f,MID(str,IFERROR(FIND(delim,str)+1,1),LEN(str)),delim,idx-1))),f(f,f(f,A2:A4,"[",A1),"]",0)) >>73
こちらこそありがとう
おかげさまでLAMBDAの戻り値fを引数に渡せることに気づけました
LAMBDAの使い方メモ
=REDUCE(A1,BYROW(A2:B4,LAMBDA(ab,LAMBDA(s,SUBSTITUTE(s,INDEX(ab,,1),INDEX(ab,,2))))),LAMBDA(s,f,f(s)))
A1 ="abcabc"
A2:B4 ={"a","x";"b","y";"c","z"} ■ このスレッドは過去ログ倉庫に格納されています