[[20180827181411]] 『CONCATENATE関数 空白の場合』(よっぴー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『CONCATENATE関数 空白の場合』(よっぴー)

いつも勉強させていただいております。
CONCATENATE関数で教えてください。

A1:E1 セルに文言が入っています。
F1セルに
B1が空白なら A1の
C1が空白なら A1 “/” B1 の
D1が空白なら A1 “/” B1 “/” C1 
E1が空白なら A1 “/” B1 “/” C1 “/” D1

というように “/” 差し込んで結合した文言を表示したいのですが
考えが浮かびません、文字は必ず左セル詰めで入っています。
F1セルに入れる計算式を教えてください。
よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


D1が空白のとき最後に”の”
E1が空白でないときはE1を表示しないのでしょうか。

とりあえずCONCATENATEを使うより、&で繋いだほうが良いと思います。
=A1&IF(B1="","の","/"&B1&IF(C1="","の","/"&C1&IF(D1="","","/"&D1&IF(E1="","",""))))
(にゅるん) 2018/08/27(月) 18:23


にゅるん様

さっそくの回答ありがとうございます。
「の」はタイプミスです、すみません。
E1が空白でない場合はE1もつなぎますが
教えていただいたIF関数と&でつないでみます!
ありがとうございました。
(よっぴー) 2018/08/27(月) 18:27


バージョンによっては、TEXTJOINが使えるかもしれません。

=TEXTJOIN("/",TRUE,A1:E1)&"の"

(マナ) 2018/08/27(月) 18:48


書いている間にマナさんとかぶりましたが、Excel2016が買い切り型でなく365のほうならばTEXTJOIN関数で対応できそうな気もしますがどうでしょうか

私の環境(Excel2013)では、試せないので強引にユーザー定義関数を使って・・

【標準モジュールに貼付】

    Function TEXTJOIN風(区切文字 As String, 空白の処理 As Boolean, 範囲 As Range)
        Dim MyRNG As Range
        Dim buf As String

        For Each MyRNG In 範囲
            If MyRNG.Value = "" Then
                If Not 空白の処理 Then buf = buf & MyRNG.Value & 区切文字
            Else
                buf = buf & MyRNG.Value & 区切文字
            End If
        Next

       TEXTJOIN風 = Left(buf, Len(buf) - Len(区切文字))

    End Function

【数式として入力】
=TEXTJOIN風("/",TRUE,A1:E1) &" の"

(もこな2) 2018/08/27(月) 19:29


 =SUBSTITUTE(TRIM(A1&" "&B1&" "&C1&" "&D1&" "&E1)," ","/")

 こういうこと?
(笑) 2018/08/27(月) 19:47

 VBAなら

 UDF
 セルに

 =HConc(A1:E1,"/")

 標準モジュールへ

 Function HConc(rng As Range, myJoin As String) As String
     HConc = Join(Filter(rng.Parent.Evaluate("if(" & rng.Address & _
            "<>""""," & rng.Address & ")"), False, 0), myJoin)
 End Function
(seiya) 2018/08/27(月) 19:53

回答をいただいた皆様

関数をネストさせる方法、VBA,そしてTEXTJOIN関数と
いろいろな方法を教えていただきありがとうございます。
今回は初めてTEXTJOIN関数を使うことによって
やりたい事が簡単にできました。
皆様の優しさと知識量に感謝致します!

(よっぴー) 2018/08/28(火) 07:34


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.