2017-03-29 5 views
2

次の形式のデータを持つ表があります。下の行の値が空白でない場合、列ヘッダーを連結します。

Data
enter image description here

私は完成の表は、以下の強調表示1のように移入するための空白の列を持っていると思います。したがって

Finished Table
enter image description here

、Iは、各行における非空白セルのヘッダを返すと連結されます式またはVBAを必要とします。

+0

これまでに何を試みましたか?少なくとも、ネストされた 'IF()'ステートメントは動作するように見えます。 – BruceWayne

+0

IF関数を試しましたが、引数が多すぎるというエラーが発生しました – Elissa

答えて

4

の配列式として以下を使用してください。

=TEXTJOIN("-->", TRUE, IF(LEN(C3:I3), C$2:I$2, "")) 

enter image description here

プリエクセル2016のバージョン

あなただけ一緒に文字列の文IFのシリーズは、クリーンな代替は、ユーザー定義関数(別名UDF)を書くことがあるかもしれない可能性がありますが。標準VBAモジュールコードシートで

:Android携帯用エクセル、エクセルモバイル、:

Function udf_Stitch_Together(r As Range, _ 
          h As Range, _ 
          Optional d As String = "-->", _ 
          Optional blnks As Boolean = False) As String 
    Dim s As String, c As Long 
    For c = 1 To r.Cells.Count 
     If CBool(Len(r.Cells(c).Text)) Then _ 
      s = s & IIf(Len(s), d, vbNullString) & h.Cells(c).Text 
    Next c 
    udf_Stitch_Together = s 
End Function 

enter image description here


TEXTJOINは次のバージョンでExcel 2016で導入されたを¹しましたエクセル2016(Office 365)、エクセル2016(Mac用)、エクセルオンライン(Excelオンライン)、エクセル用エクセル、エクセル用エクセル、アンドロイドタブレット用Excel

+1

Clever!私は 'TextJoin()'で遊んでいましたが、セルに値を入力するだけの良い方法は見つかりませんでした。 – BruceWayne

+0

私はExcel 2010を使用していますが、TEXTJOIN式は認識されません。しかし、それは私がやりたいこととまったく同じように見えます。私のバージョンのExcelに似た式がありますか? – Elissa

+0

これは、調べたい実際の列数**に依存します。 7つの列は7つのネストされたIF条件でも範囲外ではありませんが、より短い式があります。 – Jeeped

関連する問題