No.7
- 回答日時:
面白い問題ですね。
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("012",A1,""),B1,""),C1,"")
ただ、最近、正規表現にこだわっていますので、RegExp でトライしてみました。
ちょっとややこしいですね。
Function vregReplace(rng As Range) As String
Dim out As String
Dim objReg As Object
Dim m As Variant, buf As String, c As Variant
Dim tg As String, Matches As Object
Dim Num As String: Num = "012"
Set objReg = CreateObject("VBScript.RegExp")
With objReg
.Global = True
For Each c In rng: tg = tg & c.Value: Next
.Pattern = "[" & tg & "]"
Set Matches = .Execute(Num)
buf = Num
For Each m In Matches: buf = Replace(buf, m.Value, ""): Next
vregReplace = buf
End With
Set objReg = Nothing
End Function
'Basp21正規表現ですと、
Function reReplace(rng As Range)
Dim out As String
Dim bobj As Object
Dim c As Variant, tg As String
Set bobj = CreateObject("Basp21")
For Each c In rng
tg = tg & c.Value
Next
out = bobj.Replace("s/[" & tg & "]//g", "012")
reReplace = out
End Function
ありがとうございます。
すごいです!シンプルに答えが返ってきてびっくりです。
これならどれだけ列があっても問題なしですね。
脱帽です!
No.5
- 回答日時:
超簡単!ただし、逆転の発想が必要。
何が逆転ですと?コピーの方向は上から下へ、とか、左から右へ、に決めつけないことです。右から左へコピーもありですよ。
添付図参照
1.セル G1 に 120 を入力
2.セル F1 に式 =SUBSTITUTE(G1,C1,"") を入力
3.セル F1 を“左へ”2列にオートフィル
4.“Ctrlキーを抑えたままで”、範囲 D1:G1 を下方に
__オートフィル
なるほど!
ありがとうございます。
おかげで、いろいろな解答が得られて勉強になりました。
substituteの活用、countifしか浮かばなかったので発見でした!
No.3
- 回答日時:
ユーザ定義関数での実装です。
A1セルに、=rueluoc012(A2) と入力して、A2セルに「0 1 2」等を入力してください。
Function rueluoc012(myRng As Range) As Variant
Dim I As Long
rueluoc012 = "0 1 2"
For I = 1 To Len(myRng.Text)
If Mid(myRng.Text, I, 1) <> " " Then
rueluoc012 = Replace(rueluoc012, Mid(myRng.Text, I, 1), "")
End If
Next
rueluoc012 = Replace(WorksheetFunction.Trim(rueluoc012), " ", ",")
End Function
ありがとうございます!
ユーザー定義関数、便利だとは思いますがその域には達せません(涙)
試してみました。
1セル内に数字を入力する感じですね。
参考にします!
No.2
- 回答日時:
こんばんは!
1セルに「1,2」のように表示させたい場合、関数では結構厄介だと思いますので
VBAでの一例です。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から//
Dim i As Long, k As Long, myStr As String
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
For k = 0 To 2
If WorksheetFunction.CountIf(Cells(i, "A").Resize(, 3), k) = 0 Then
myStr = myStr & k & ","
End If
Next k
If Len(myStr) > 0 Then
Cells(i, "D") = Left(myStr, Len(myStr) - 1)
End If
myStr = ""
Next i
End Sub 'この行まで//
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/18 17:23
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) Excelについて質問です(ver2019) 1 2023/06/30 21:20
- その他(Microsoft Office) ある表(10桝程度)の中に数字が入っています。ダブっている数字を除く数字の合計数の計算方法 5 2023/02/15 11:33
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel PHONETIC関数で振り仮名...
-
非表示部分はオートフィルのコ...
-
エクセル2010 セルの結合...
-
エクセルで1行間隔でのオートフ...
-
エクセル2003 星取表作成
-
前日差の比較について
-
エクセルで曜日を連続入力した...
-
エクセルで別シートの同じ位置...
-
縦書き文章で『―』表示を『|』...
-
メールアドレスの下線の入力方法
-
EXCELでコピーしたグラフのデー...
-
エクセルでセルの書式設定がで...
-
マウスのクリック、指離したの...
-
マウスのポインタが勝手に上下...
-
「丸印の中に三角のマークが上...
-
シート全体を他のブックのシー...
-
Word2007でTabキーを押すと改ペ...
-
エクセルの下部のシートタブの...
-
¥マークのキーにある横棒の出...
-
ロックしたセルのコピー&貼り付け
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel PHONETIC関数で振り仮名...
-
エクセル2010 セルの結合...
-
非表示部分はオートフィルのコ...
-
エクセルで1行間隔でのオートフ...
-
Excelで複数行ずつ連番をふる方...
-
エクセルのセル内の文字数によ...
-
エクセル入力で小文字iが大文...
-
前日差の比較について
-
エクセルで英語の単語帳を作り...
-
EXCELで月ごとに曜日と日付を自...
-
エクセル2000です。左方向に(...
-
エクセルで曜日を連続入力した...
-
エクセルでの桁数の違う小数の...
-
excel2007 セルの中の数字の頭...
-
Excel 文字数での検索方法
-
エクセル2002で 規則的に並ん...
-
シフト作成 IF関数を使用した休...
-
エクセルで、行の中に条件の数...
-
グーグルのスプレッドシートで...
-
未入力欄を空欄にする方法
おすすめ情報
申し訳ありません。
下手な書き方でした。
A1=1,B1=1,C1=2
の場合、0~2の数字の0がないので、D1に0を返す方法を教えて下さい。
もっとわかりやすく説明できたらよいのですが!!