• ベストアンサー

リストの作成

受注日・ユーザー名・品名等を一覧として作成したのですが、ユーザー名の一覧表を作成したいのですが、ユーザー名には重複しているものもあります。 フィルタオプションで可能な内容だとは思いますが、この場合には、内容が追加した場合に、手作業で再びフィルタオプションを使わなければならないので、これを計算式等で自動でリスト作成が出来るようにしたいのですが、可能でしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

(1)VBAにしろ (2)ピボットテーブルにしろ リスト再作成のキッカケは与えてやらないといけません。 VBAだけは精緻にやれば、自動で出来るかも知れません。 (3)関数では、本当は抜き出しにあたる作業は不得手です。 理由は、受ける側で式を入れないといけないが、どのセルでどこのセルから受ければよいか一見不定だからです。 下記はそれをかいくぐるやり方です。 簡単のため、不要なセルに不要な数字が出る部分は出たままにします。 (例データ)A1:A14に(B列については、後で 説明しますので、元は空白のままでよい) (A列) (B列) 氏名 山野 1 野口 2 久野 3 山野 3 野見山 4 山田 5 野宮 6 野口 6 久野 6 今井 7 伊野 8 今井 8 田中 9 使わない列を1つ使います。B列と仮定します。 B2に式=IF(COUNTIF($A$2:A2,A2)=1,B1+1,B1) といれ、下に複写すると、上記のようになります。 Sheet2に移り A1に式 =OFFSET(Sheet1!$A$1,MATCH(ROW(A1),Sheet1!$B$1:$B$30,0)-1,0) と入れます。$B$1:$B$30の$30の部分は一番最下行より下の余裕を加えて大きくしてください。 A1の式を下へ複写します。 (結果) 山野 野口 久野 野見山 山田 野宮 今井 伊野 田中 #N/A となります。 #N/Aは出さないように出来ますが、本質ではないので省略。 Sheet1で氏名の列以外もSheet2に移したい時は、式の最後の,0)の0を「Sheet1でのA列からの隔たり列数の数字」に置換え、Sheet2のB1、C1、D1・・列に式を増やして、下に式複写してください。 Sheet2でデータ始まりの行を1行目からでないときは式に修正が必要です。

その他の回答 (2)

回答No.2

A2にユーザ名が入っているとして、B2のセルに以下の関数を入力してください。 =COUNTIF(A:A,A2) A列に重複がないと1、あるとある数だけ表示されます。 引数のA:AはA列全てが対象ですが、例えば1~100行まででしたら、$A$1:$A$100としてください。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

「データ」「ピボットテーブル」なら「データの更新」が使えます。 元範囲を列全体にして、空白を非表示にすればいいかと データ欄には件数か受注日の最大値等にすればいいと思います。

関連するQ&A