ツイッター出題回答
文字列のセルだけ結合

ExcelマクロVBAとエクセル関数についての私的雑感
最終更新日:2020-06-15

文字列のセルだけ結合


ツイッターに出したたお題です。
セル範囲の、文字列のセルだけを文字列結合してください。
つまり数値のセルは無視して文字列結合するという事です。


お題「文字列のセルだけ結合」

さて、図のように、数値のセルを無視して数値以外のセル値のみ文字列結合してみましょう。

※条件:データは半角限定です。

ちなみに、いじわる問題です。

エクセル VBA 文字列のセルだけ結合 PHONETIC関数


こちら、あまり反応無いのですけど、
あれっ、簡単すぎた?、それとも難しい?
あっ、いじわる問題と書いたからでしょうか。
いじわると言うより、いかに幅広い関数知識があるかという問題です。

最初に「いじわる問題」と書いたように、あまり真剣に考えられちゃうと、用意した答えを出しづらいかも…
問題に条件を付けるのは、
その条件が無いと成立しない、もしくは、その条件下ならではの答があるという事です。

で、条件をもう少し正確に書く必要がありました。
※データは半角英数限定


1個の関数だけで実現できます

いろいろと回答ありがとうございました。
用意した回答は、
=PHONETIC(A1:A7)
範囲を指定できて、そして結合してくれます。
なので、漢字があると問題として都合悪いので、半角限定にしました。
正確には、英数限定とした方が良かったかもしれません。

PHONETIC関数については、以下を参照してください。
PHONETIC関数(文字列からふりがなを抽出)
文字列から「ふりがな」を抽出します。セルに「ふりがな」が無い場合(他のソフトから文字列をコピペ等)は、セルの値がそのまま表示されます。PHONETIC関数の書式 PHONETIC(範囲) 範囲 ふりがなの文字列を含む1つまたは複数のセル参照を指定します。

せっかくなので、普通に考えた時の数式の例としては、
=CONCAT(TEXT(A1:A7,""))
=CONCAT(IF(ISNUMBER(A1:A7),"",A1:A7))
これらは、回答で頂いたものとほぼ同じです。

VBAでの回答も

Sub sample()
  Dim ary
  ary = WorksheetFunction.Transpose(Range("A1:A7"))
  Dim i As Long
  For i = LBound(ary) To UBound(ary)
    If TypeName(ary(i)) <> "String" Then
      ary(i) = ""
    End If
  Next
  Range("C1") = Join(ary, "")
End Sub

このVBAは、他の回答と被らないように、わざわざ少し変わった書き方をしていますので、模範解答とは違います。
こういう書き方もあるというご参考に。



同じテーマ「ツイッター出題回答 」の記事

文字列のセルだけ結合
時間に関する関数の扱い方
COUNTIF関数の結果は?
【超難問】エクセル数式問題
入力規則で○△を入れる数を制限する方法
キーボード操作だけで非表示列を表示
4,9を使わない連番作成
連番を折り返して出力
コメントから特定形式の年月を取り出す
抜けている数値を探せ
15桁を超える数値の足し算


新着記事NEW ・・・新着記事一覧を見る

ByRef引数の型が一致しません。|ツイッター出題回答 (2023-09-22)
シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
列幅不足による###表示や指数表示を判定する|VBA技術解説(2023-07-12)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-07-04)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ