No.10ベストアンサー
- 回答日時:
#2です。
例によって関数ではなくVBAですが、縦に入力する場合の方法を書いておきます。#2のコードのOffset(-1)のところを、Offset(,-1)に変更するだけです。
一応、今回のコードの説明を書いておきますね。ご参考までに。
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
→開いているブックの中にあるシートが変更されたとき、下記のコードを実行する
(同時に、変更されたセルをTargetという引数に格納する)
On Error GoTo er
→エラーが発生したときはer:にジャンプして、何もせずに終了させる
If Target.Offset(,-1).Value = "a" Then Range("f10") = Target.Value
→もしTargetの左のセルが"a"だったら、F10セルにTargetの値を入れる(以下4行同じ)
er:
→エラー発生時のジャンプ先(左端のセルを変更した時、上の行がエラーとなってしまうため)
End Sub
→コード終了の宣言
詳しい説明ありがとう御座います。
やっと内容を理解する事が出来ました。
関数での方法が分からないのは残念でしたが、私の作りたいシートは出来上がりそうです。
本当にありがとう御座いました。
No.8
- 回答日時:
#7です。
A列にアルファベット、B列に数字。
D1にa、D2にb、D3にc、D4にdとして、
E1に以下を入れ、数式バーにカーソルがあるうちに、ShiftキーとCtrlキーを同時に押しながらEnterキーを押下、下へオートフィルでいかがでしょう。
=IF(ISERROR(MATCH($D1,A:A,0)),"",INDEX($B:$B,MAX(IF($A$1:$A$10000=$D1,ROW($A$1:$A$10000),""),1)))
No.7
- 回答日時:
#5です。
前回の式では入力する値の桁数が少ないと、不正確な結果を出してしまいました。修正案です、より複雑になってしまいました。もっと簡潔に出来そうな気もするのですが・・・。
数式バーにカーソルがあるうちに、ShiftキーとCtrlキーを同時に押しながらEnterキーを押してください。
=IF(ISERR(FIND(A4,RIGHT($A$1,LEN($A$2)),1)),"",LEFT(RIGHT($A$2,SMALL(IF(LEFT(RIGHT($A$1,ROW($A:$A)),1)=A4,ROW($A:$A)),1)),1))
No.6
- 回答日時:
#2で答えた者ですが、
また、#2では「1行目にa~d、2行目に値」と書きましたが、数値を入力した時に
すぐ上のセルの文字を判定するようになっているので、「a~d」と「値」の間に
空欄がなければ、1、2行目以外でも大丈夫です。
実際は縦に使用するつもりなので、皆さんの回答を理解出来るように頭フル回転中です(あまり回りません)。
ところで、関数では無理なのでしょうか?
No.5
- 回答日時:
関数でやってみました。
A
1 acbadcbba
2 935841621
3
4 a
5 b
6 c
7 d
として、任意のセルに下をコピーし、まだ数式バーにカーソルがあるうちにShiftキーとCtrlキーを同時に押しながらEnterキーを押します。数式の両脇に{}が付きます。その後オートフィルで下へコピー。
=LEFT(RIGHT($A$2,SMALL(IF(LEFT(RIGHT($A$1,ROW($A$1:$A$20)),1)=A4,ROW($A$1:$A$20)),1)),1)
No.4
- 回答日時:
#1 comv です
大きな勘違いをしていたようですねスミマセン
以下のようなことでしょうか?
A B C D E
1 acbadcbba
2 935841621
3
4 a b c d
5 1 式 → → →
6 2 ↓
7 3
8 4
9 5
10 6
11 7
12 8
13 9
A1に記号入力 a~d
A2に対する値を入力
A5:A13に1~9を記載
B4:E4に a~dを記載
B5に式
=TEXT(MAX(IF(LEN($A$1)>=ROW($A$1:$A$30),IF((MID($A$1,ROW($A$1:$A$30),1)=B$4)*(MID($A$2,ROW($A$1:$A$50),1)*1=$A5),$A5))),"#")
と入力後 [Ctrl]+[Shift]を押したまま[Enter]で確定
B5:E13の範囲に複写
No.3
- 回答日時:
A-iと言う範囲(9番目)までなら、小文字英字として
Private Sub Worksheet_Change(ByVal Target As Range)
s = ""
For i = 1 To Len(Target)
s = s & Trim(Str(Asc(Mid(Target, i, 1)) - 96))
Next i
MsgBox s
End Sub
で良いでしょう。
sを好きなセルにセットすること。
何に使うか想像できないが。
No.2
- 回答日時:
VBAで作ってみたんですが、これでいいでしょうか?
1行目のセルにa~dを、その下の2行目にそれに対応する値を入力するとします。
1.「ツール」>「マクロ」>「Visual Basic Editor」を開きます。
2.左上のほうの「ThisWorkbook」というところで右クリックをして、「コードの表示」を選択します。
3.右側の大きな画面に下記のコードを入力します。(コピー&ペーストでいいはず。)
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo er
If Target.Offset(-1).Value = "a" Then Range("f10") = Target.Value
If Target.Offset(-1).Value = "b" Then Range("g10") = Target.Value
If Target.Offset(-1).Value = "c" Then Range("h10") = Target.Value
If Target.Offset(-1).Value = "d" Then Range("i10") = Target.Value
er:
End Sub
4.下のタスクバーのボタンでエクセルの画面を表示してください。
これで、F10~I10のセルにそれぞれa~dの下に入力した値が表示されると思います。
上記のコードのRange("○○")の部分を修正することにより、別のセルに表示させることが可能です。
VBAの存在も知らなかったのですが、一応希望道りになりました。ただ、どう使えばよいのか良く分かりませんので、もっと勉強してみます。
ありがとう御座います。
No.1
- 回答日時:
こんばんは
>上記の例では、aは1 bは2 cは1 dは4 です。
で acbadcbba が 935841621 になる規則性が
わからないのですが
単純に a=1 b=2 C=1 d=4 なら
A1にa~dを入力
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"a",1),"b",2),"c",1),"d",4)
結果は acbadcbba なら 112141221 となります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) エクセルで、例えばAのセルの値次第で、Bのセルの値を自動入力する方法を教えてください。 2 2022/08/02 12:10
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Excel(エクセル) 独自の条件を用いた計算式、もしくは別の方法で打ち出す事は可能でしょうか? 6 2022/05/18 10:38
- Excel(エクセル) 特定の条件で計算式を組みたいのですが、教えて頂けますでしょうか? 6 2022/10/28 19:02
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルの数式について教えてください。 3 2023/01/29 10:36
- Excel(エクセル) エクセルの自動更新のタイミングについて 1 2022/07/20 16:12
- Excel(エクセル) エクセルで 例えばA1のセルに1+1 と入力すると B1のセルに2 と答えが出る関数があったと思いま 8 2022/12/16 20:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの数式について教えてくだ...
-
エクセルの「赤」の印刷がうま...
-
エクセル おすすめフォント
-
pdfの表をexcelにはりつけて計...
-
[オプション]の[アクセスビリテ...
-
Excelのデーターを消して保存し...
-
エクセルの「入力規則」のプル...
-
エクセルで特定のセルに入力が...
-
関数の説明
-
CSVファイルについて質問です。
-
エクセルで不等号記号(≠)が上に...
-
UNIQUE関数が使えないバージョ...
-
Excelについて
-
【マクロ】名前を保存する際に...
-
エクセルであるセルに数字を入...
-
Excelにいついて質問です。
-
Excelの関数について教えてくだ...
-
Excel ピボットテーブルで日付...
-
Excelでセルの値が同じか...
-
エクセルでの作業計算方法について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報