0

私はworkbook1からworkbook2にデータを取り込む必要がある2つのブックを持っています。そのような達成のための識別子はempIDです。それぞれempIDのために、私は彼らが働いた場所を示す必要があります。だから、サンプルデータは、この
Workbook1
EMPID .....名前....住所...市...州のように見えます....
4ジップ
Excelでコンマ区切りリストを作成する

Workbook2
EMPID .......
1 12をlocationworked2 33
3~9
1~99

Iは、それぞれに異なるセルにデータを返すために、この式を使用していますempID

=IFERROR(INDEX($B$2:$B$8, SMALL(IF($A$11=$A$2:$A$8, ROW($A$2:$A$8)-ROW($A$2)+1), ROW(1:1))),"") 

しかし、私はカンマ区切りリストを作成して、一つのセル内のすべてのものを入れたいです、のようなので、

1 11,12,55,99 
2 33,76 

など

カンマ区切りのリストが私の所望の出力でのように作成されるように構文を変更する方法はありますか?

+0

Excel 2016にアクセスできる場合は、** ctrl + shift + enterで入力した '= TEXTJOIN("、 "TRUE、TRANSPOSE(IF(Empl = A2、Location、"))) 'を使用できます**ワークブック2のC欄にデータがある(& B;の列を仮定するとユニークなEmp IDが表示されますが、2012年にはそれを行う方法がわかりません) –

+0

@RonRosenfeld - 残念ながらExcel 2016にはアクセスできません。 –

答えて

1

は、ブック2では、私は、列C

=IFERROR(VLOOKUP(A1,A2:$C$50,3,0)&","&B1,B1). 

これはあなたのデータは限りダウン行50として、スプレッドシートの最後で何行と$C$50を交換して行くことを前提に、この式を追加しました。

これは変数のリストである場合は、しかし、Ctrlキー+ Shiftキーを使用+配列に数式を設定しますことを忘れないでください

A2:$C$50 

の代わりに

=INDIRECT("A2:C"&MATCH(TRUE,D:D="",0),1) 

を使用しています。

次に、この数式をすべての行にコピーします。 VLOOKUPがシートを処理します。次に、このリストをあなたのレポートシート(この場合はそのシート1と考える)からVLOOKUPで参照することができます。 csvリストを含む各従業員IDの最初のインスタンスが自動的に選択されます。

+0

この目的のための優れた公式。下界の '$ C $ 50 'は少なくともテーブルと同じ長さのセルであればいいと思います。あなたの数式は、9行のデータだけで '$ C $ 5000'を参照するのと同じくらいうまく機能します。また、結果が数値順に返されなければならない場合、彼はあらかじめテーブルをソートしてIDで昇順に並べ替えることができます。場所による降順 –

+0

配列MATCH式を必要としない場合の呼び出しが良い。しかし、VLOOKUPの美しさは、そのテーブルを参照するときにソートを必要としないことです。 Lotus 123のようなAIを持たない人は、無差別に最初のインスタンスを取得するので、ソースデータの並べ替えはそれ以上のメリットをもたらさない(ただし、ソースデータを視覚的に分かりやすく解説する) –

+0

位置IDは逆の順序です。私が書いたように、ソートは彼が彼の質問で示したように、OPが位置IDをソートされた順序で望むなら、ソートは役に立ちます。 –

関連する問題