Excelの文字列の結合でconcatenateを使用する方法があるのは理解しているのですが、以下の例と条件でconcatenateを使用する場合に、どのような式になるのかを教えてください。
また、concatenateを使用しなくてもできるということであれば、その関数及び式を教えてください。
A列 B列 C列 D列 E列 F列
結合結果 コード名1 コード名2 コード名3 コード名4 コード名5
12;34;56;78;90 12 34 56 78 90
・B列からF列にはコード名が入り、その結合結果をA列に表示させたい。
・結合結果として、コード名とコード名の間には「;(セミコロン)」が必ず入る。
・B列からF列までは必ずしも全ての列にコード名が入るわけではなく空欄になることもありうるが、その場合に入力されるコードは左詰めになる(例えば、途中のD列だけが空欄になることはない)。
・例えば、E列とF列に空欄ができた場合、結合結果は「12;34;56」になる。「12;34;56;;」にはならない。
ちなみに、使用しているExcelのバージョンは2013です。
どうぞよろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
では、ちからワザで。
=CONCATENATE( IF(Bx<>"",Bx&IF(Cx&Dx&Ex&Fx<>"",";",""),"") , IF(Cx<>"",Cx&IF(Dx&Ex&Fx<>"",";",""),"") , IF(Dx<>"",Dx&IF(Ex&Fx<>"",";",""),"") , IF(Ex<>"",Ex&IF(Fx<>"",";",""),"") , Fx )
=IF(Bx<>"",Bx&IF(Cx&Dx&Ex&Fx<>"",";",""),"") & IF(Cx<>"",Cx&IF(Dx&Ex&Fx<>"",";",""),"") & IF(Dx<>"",Dx&IF(Ex&Fx<>"",";",""),"") & IF(Ex<>"",Ex&IF(Fx<>"",";",""),"") & Fx
ちからワザで式を書いてくださいましてありがとうございます!
真っ先にご回答いただいたのに、残念ながら採用できず心苦しく思っておりました。
今回はとても大変だったと思います。
なので、ほーほけきょッさんの回答をベストアンサーとさせてください。
No.5
- 回答日時:
No.3です。
>下記の通りです
ん?もしかしてExcelのバージョンのコトですかね?
前回の方法はExcelのバージョンに関係なく使えるはずです。
※ 会社でVBA禁止!という場合は無理かもしれませんが・・・m(_ _)m
>前回の方法はExcelのバージョンに関係なく使えるはずです。
すみません。
仰る通り、バージョンのことです。
今はPCの前にいるので検証可能なのですが、さっきは離席しておりまして、スマホで回答を見ておりました。
ご回答のユーザーさまが違えど、№2との続きかと勝手に勘違いしておりました。
心の中でベストアンサーとさせてください。
No.3
- 回答日時:
こんにちは!
No.2さんが仰っているユーザー定義関数にしてみました。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペーストしてみてください。
Function mystr(myRng As Range) '//この行から//
Dim c As Range
Dim buf As String
For Each c In myRng
If c <> "" Then
buf = buf & c & ";"
End If
Next c
mystr = Left(buf, Len(buf) - 1)
End Function '//この行まで//
そしてExcel画面に戻り(VBE画面を閉じて)
通常のワークシート関数と同じ使い方をします。
仮に2行目以降にデータがある場合はA2セルに
=mystr(B2:F2)
という数式を入れます。
※ エラー処理はIF関数などを使って普通に行います。m(_ _)m
No.2
- 回答日時:
VBAに登録するユーザー定義関数を使うのは駄目ですか?
Excel2016以降(最新版に更新できるもの)なら、TEXTJOIN関数で
希望の処理が簡単にできます。
https://www.tipsfound.com/excel/04textjoin
Excel2013だと、TEXTJOIN関数がないので複雑な処理が必要です。
(No.1さんのIFの組み合わせになるので、列数が増えたときに大変)
なのでユーザー定義関数を使うことをお勧めします。
https://www.excelspeedup.com/textjoin2/
回答ありがとうございます。
すみません。
最新版を使いたいのですが、会社で使用しているexcelのバージョンが2013なのです。
No.1
- 回答日時:
=CONCATENATE( IF(Bx<>"",Bx&";",""), IF(Cx<>"",Cx&";",""), IF(Dx<>"",Dx&";",""), IF(Ex<>"",Ex&";",""), IF(Fx<>"",Fx&";","") )
=IF(Bx<>"",Bx&";","")&IF(Cx<>"",Cx&";","")&IF(Dx<>"",Dx&";","")&IF(Ex<>"",Ex&";","")&IF(Fx<>"",Fx&";","")
ほーほけきょッさん、早速の回答ありがとうございます。
試してみましたが、いずれの方法も最後にセミコロンが残ってしまいます。
コードとコードの間にだけセミコロンが必要なのですが。。。
他にありますでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) EXCEL の判定式をお教えください 3 2022/06/08 14:37
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Excel(エクセル) 【画像あり】A1が●+B1と同じ文字がB列にある+C1と同じ文字がC列にある場合D1に〇を付ける 3 2023/03/09 18:18
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- Visual Basic(VBA) 2つの条件が一致したら一覧へコピーしたい。 左から4番目以降のシート名にコードが入ったシートを全て、 5 2022/09/20 19:41
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- その他(Microsoft Office) Excel 2列の値を返す数式についてです 1 2022/11/23 22:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、改行がある場合の条件...
-
Excelでセルの書式設定を使用し...
-
OracleのSQL*PLUSで、デー...
-
日本語の表名、列名の利用について
-
GROUP BYを使ったSELECT文の総...
-
SQLについて質問です。 AVG関数...
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
SELECTの結果で同一行を複数回...
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
あるカラムのMAX値+1をINSERTし...
-
カレントレコードが無い事を判...
-
実績累計の求め方と意味を教え...
-
Access 文字+年ごとの自動採番
-
select句副問い合わせ 値の個...
-
ファイル書込みで一行もしくは...
-
ACCESSの集計クエリで3件ある...
-
MERGE文を単体テーブルに対して...
-
[VBA] ADOの Clone と AddNew
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで、改行がある場合の条件...
-
Excelでセルの書式設定を使用し...
-
GROUP BYを使ったSELECT文の総...
-
日本語の表名、列名の利用について
-
OracleのSQL*PLUSで、デー...
-
LOAD DATE INFILE で Bit(1)型...
-
列別名に二重引用符があった場合?
-
image型のInsertについて
-
COBOLソースに記述するホスト変...
-
cursor.getString
-
ADOのRecordCountプロパティに...
-
NULLのみを保持した列を除外し...
-
ACCESSのコンボボックスの右側...
-
エクセル表でA列が表示されな...
-
レコードセットからどれでも1...
-
SQLについて質問です。 AVG関数...
-
オラクル:ビューのCREATE文に...
-
1列について重複している行を除...
-
行全体を、決まった文字列があ...
-
SQLで列名の変更
おすすめ情報