2017-03-27 8 views
0

複数の値を検索してリスト(1つのセルの1つの値)として返す方法を見つけました。しかし、私は見つかったリストを単一のセルに表示する必要があります(ブレークライン付きの文字列として)。各値の後にセミコロンを付けてください。例えば複数の値を検索して1つの文字列を返す

: - :(単一セルに表示)

A 
A 
B 
B 
B 
C 

結果:

ソースリスト(1値1個のセル)

A; 
B; 
C; 

ありがとうございます!

+0

私が見る限り、これにはVBAが必要です。 –

+0

すべての配列式要素を1つの文字列に連結する方法はありますか? E.私が知る限り、すべての配列要素を合計することができます。 – Serg

答えて

2

一意の値を抽出し、それらの値を連結する必要があります。

a2:a7 = {a, a, b, b, b, c}の場合はb2と入力し、ctrl + shift + enterを入力します。

=IFERROR(INDEX($A$2:$A$7,MATCH(SUM(COUNTIF(B$1:B1,$A$2:$A$7)),COUNTIF($A$2:$A$7,"<"&$A$2:$A$7),0)),"") 

はその後b2をコピーしてb3:b7に貼り付け。今すぐユニークな値のリストがあります。この方法はthis answerです。

リストがあるので、参加する必要があります。これをc2に入力してください。

=IF(B2="", "", B2&";"&CHAR(10)) 
&IF(B3="", "", B3&";"&CHAR(10)) 
&IF(B4="", "", B4&";"&CHAR(10)) 
&IF(B5="", "", B5&";"&CHAR(10)) 
&IF(B6="", "", B6&";"&CHAR(10)) 
&IF(B7="", "", B7&";"&CHAR(10)) 

画像を参照してください。

enter image description here

私はこれがulgyである知っています。しかし、Excelには組み込みの式はありません。 VBAのない他の回避策は、ちょうどの場合にherethereです。

ところで、Google Spreadsheetはこれらすべてを組み込み関数として提供しています。ちょうど1行。

=join(";"&char(10), filter(unique(A2:A7), not(isblank(unique(A2:A7)))))&";" 
+0

タイプミスか視覚的なメタファーか、** ulgy **のボーナスポイントか分かりません。 – Jeeped

+0

これが私の仕事であれば、Google Spreadsheetでやります。 –

+0

ああ、それはタイプミスです...私はそれを修正する必要がありますか? :( –

0

ユーザー定義関数(別名UDF)で静的辞書オブジェクトを使用し、重複するものを上書きします。

Option Explicit 

Function udfUniqueList(str As String, _ 
         delim As String, _ 
         Optional cs As Boolean = False) 
    Dim a As Long, arr As Variant 
    Static dict As Object 

    If dict Is Nothing Then 
     Set dict = CreateObject("Scripting.Dictionary") 
    End If 
    dict.RemoveAll 
    dict.CompareMode = IIf(cs, vbBinaryCompare, vbTextCompare) 

    arr = Split(str, Chr(10)) 
    For a = LBound(arr) To UBound(arr) 
     dict.Item(arr(a)) = a 
    Next a 

    udfUniqueList = Join(dict.keys, delim) & delim 

End Function 

静的オブジェクトは、オブジェクトが反復使用のために再作成する必要がない限りカラムにコピーする機能に最適です。

enter image description here

先セル内の「テキストを折り返す」回すことを忘れないでください。

関連する問題