
No.4ベストアンサー
- 回答日時:
意味を説明するのは数式を考えるより難しいです。
解らなかったら悪しからず。
COLUMN(A1:Z1)は1から26の配列を生成します。
従って文字列の単語が26個まで対応することになります。
実態に合わせて変更してください。
<例>30個ならCOLUMN(A1:AD1)
数式の概要は
TRIM(MID(SUBSTITUTE(SUBSTITUTE("♪"&SUBSTITUTE(A2,"//","♪"),"/",""),"♪",REPT(" ",100)),(COLUMN(A1:Z1))*100,100))で
りんご_いちご_…レモンという単語の文字間が100個の半角ブランクで繋がった文字列(_は半角ブランク100個を表す)を作成。
TRIM(MID(上記の文字列,1*100,100))→りんご
(100文字目から100文字を取得し、前後のブランクを削除)
TRIM(MID(上記の文字列,2*100,100))→いちご
(200文字目から100文字を取得し、前後のブランクを削除)
:
TRIM(MID(上記の文字列,6*100,100))→レモン
TRIM(MID(上記の文字列,7*100,100))→""
:
TRIM(MID(上記の文字列,26*100,100))→""
で次の26個の単語配列を生成。
{"りんご","いちご","ぶどう","ばなな","めろん","レモン","","",…}
MATCH関数で、この配列を検索値としてD列(検査範囲)を検査し、返った数値(配列)をLOOKUPの検査値としてC列(検査範囲)E列(対応範囲)
し、変換文字を配列取得。MATCHでエラーになる場合(置換表に文字が無い)は26個の単語配列から元の単語を配列取得。
{"Apple","Strawberry","Grape","Banana","Melon","Lemon","","",…}
TEXTJOINで配列の文字を編集
おはようございます。
とてもわかりやすくご説明いただき感謝いたします。
数式の内容を理解いたしました。
今回こそ無事に解決いたしました。
何度もお手数をおかけして申し訳ございませんでした。
ありがとうございました!
No.3
- 回答日時:
№2です。
置換表にヒットしない文字は元の文字を残す配列数式になります。
置換表は図のように最左に№(連番)を追加してください。
ローテクな配列数式なので大変長いです。
A4=TEXTJOIN("/",,IFERROR(LOOKUP(MATCH(TRIM(MID(SUBSTITUTE(SUBSTITUTE("♪"&SUBSTITUTE(A2,"//","♪"),"/",""),"♪",REPT(" ",100)),(COLUMN(A1:Z1))*100,100)),D2:D8,0),C2:C8,E2:E8),TRIM(MID(SUBSTITUTE(SUBSTITUTE("♪"&SUBSTITUTE(A2,"//","♪"),"/",""),"♪",REPT(" ",100)),(COLUMN(A1:Z1))*100,100))))

№3 様
こんにちわ。
ご回答ありがとうございます。
ご提示いただいた数式で無事解決いたしました。
ご丁寧に教えてくださり、ありがとうございました!
No.2
- 回答日時:
ローテクな配列数式でEXCEL2019以降で対応します。
置換表はB列で昇順にします。
※置換表にヒットしない文字は文字列から除外されます。
A4=TEXTJOIN("/",,IF(ISERROR(MATCH(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),
COLUMN(A1:Z1)),$B$2:$B$8,0)),"",IFERROR(LOOKUP(MID(A2,
ROW(INDIRECT("1:"&LEN(A2))),COLUMN(A1:Z1)),$B$2:$B$8,$C$2:$C$8),"")))
Ctr+Shift+Enterで数式確定入力

No.1
- 回答日時:
こんばんは
各文字列を探し置き換え、つなげる・・TEXTSPLIT・MATCH・INDEXを使っても
1セルでやるのは・・どうだろう?無理っぽいけど
文字の探し置き換えが無くただ決まった文字を置き換えるだけなら
例えば、
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"//","|"),"/",""),"|","/")
とか・・関数は良く解らないので
ユーザー定義関数でやっちゃうのはどうでしょう
かのん2222様は使い方をご存知かと思いますので登録詳細は割愛
Function VlpRep(rVip As Range, rTrg As Range, ix As Integer, n As Integer, _
Wt As String, Rp As String, k As Integer) As String
'VlpRep(vLookup範囲,計算対象セル,vLookup抽出列index,検索方法,置換文字,置換後文字,右削除文字数)
Dim arr As Variant
Dim strTrg As String
Dim i As Long, buf As String
strTrg = Left(rTrg.Text, Len(rTrg.Text) - k)
arr = Split(strTrg, Wt)
'On Error Resume Next 'vLookUP見つからない場合は飛ばす
For i = 0 To UBound(arr)
If Not buf <> "" Then
buf = Application.VLookup(arr(i), rVip, ix, n)
Else
buf = buf & "/" & Application.VLookup(arr(i), rVip, ix, n)
End If
Next
VlpRep = buf
End Function
数式例(画像の配置)
=VlpRep(C7:D10,A2,2,0,"//","/",1)
関数リストなどに登録するコードは割愛
№1 様
こんにちわ。
ご回答いただきありがとうございます。
ユーザー定義関数については使用したことがないため、調べてみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
別シートのリストから置換する方法
Excel(エクセル)
-
エクセルで置換リストを別ブックにおいたマクロを作りたい
Excel(エクセル)
-
エクセルの関数SUBSTITUTEを、複数の条件を簡単に書く方法
Excel(エクセル)
-
-
4
Excel VBA リストに一致したデータの置換について
Visual Basic(VBA)
-
5
Excelの複数置換はSUBSTITUTEを重ねるしかない?
Excel(エクセル)
-
6
複数の文字列のいずれかが含まれていたらTRUEを返す関数について
Excel(エクセル)
-
7
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
8
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
9
あるセルに特定の文字列を打つと、他のセルに決められた文字が自動入力するように
Excel(エクセル)
-
10
文字列から英数字のみを抽出する関数
Excel(エクセル)
-
11
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
12
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
13
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
14
エクセルで文字を含む式に、カンマ(,)をつけるには??
Excel(エクセル)
-
15
条件付書式で「=#N/A」に色を付けたい
Excel(エクセル)
-
16
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
17
Excelの「0」だけ非表示、小数点の0.~は表示したいのですが、どうすればいいのでしょう。
Excel(エクセル)
-
18
Excelで数式の入っているセルを空白と認識させたい
Excel(エクセル)
-
19
<追加質問>【Excel関数】特定の文字を別表のリストの文字に変換したい
Excel(エクセル)
-
20
エクセルで空白セルを含む列の最終行の値を取得する式を教えてください
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】3つのセルの中で最新...
-
LibreOffice Clalc(またはエク...
-
【マクロ】数式を入力したい。...
-
【マクロ】excelファイルを開く...
-
エクセルの関数について
-
【マクロ】変数に入れるコード...
-
エクセルのリストについて
-
【マクロ】左のブックと右のブ...
-
【マクロ】【相談】Excelブック...
-
【マクロ】実行時エラー '424':...
-
エクセルのVBAで集計をしたい
-
【マクロ】元データと同じお客...
-
Office2021のエクセルで米国株...
-
【マクロ】【配列】3つのシー...
-
【画像あり】オートフィルター...
-
vba テキストボックスとリフト...
-
他のシートの検索
-
【マクロ画像あり】❶1つの条件...
-
エクセルの複雑なシフト表から...
-
【関数】=EXACT(a1,b1) a1とb1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【Excel関数】特定の文字を別表...
-
マキタの14.4Vと18Vバッテリー...
-
DocuWorks 文字認識 検索でき...
-
PowerPointで比例記号を入力す...
-
文字変換において、m3(立方)の...
-
VBAで小数を16進数に変換
-
エクセルでインチの分数表示
-
ワードの文字変換について
-
和暦を西暦に変換する方法
-
EXCEL VBA 記号の削除
-
9文3分、10文という足袋のサイ...
-
アドオン
-
IMEツールバー(文字変換)を固...
-
「Д」表示の仕方がわかりません。
-
word2010で変換がおかしくなり...
-
mp4→sb1
-
DVDレコーダーで「莉」「來」の...
-
RGB出力を直接HDDレコーダに録...
-
ハガキ宛名の住所の数字を漢数...
-
エラー"Next"に対する"for"があ...
おすすめ情報
お礼で無事解決したとお伝えしたのですが、追加でご教授願います。
(COLUMN(A1:Z1))
→この部分なのですが、どのような意味か教えていただいてもよろしいでしょうか?