アプリ版:「スタンプのみでお礼する」機能のリリースについて

win7、エクセル2007で作成中です。

シート1に
  B列 C列 D列 E列
  ID  所属 部門 名前
  1   A   1   ○○○
  2   A   1   ○○○
  10  B   1   ○○○
  11  B   1   ○○○
  30  B   2   ○○○
  31  B   2   ○○○
  60  B   3   ○○○
  61  B   3   ○○○
  100  C   1   ○○○
  101  C   1   ○○○
  150  C   2   ○○○
  151  C   2   ○○○
  200  C   3   ○○○
  201  C   3   ○○○

こんなデータがあり、IDと名前だけ印刷の必要があるのですが、
縦長で印刷しにくいので、印刷用シートとしてシート2に所属・部門別にIDと名前だけを抽出したいと思っています。
以前配列関数を習った記憶をうろ覚えで使ってみたりしていたのですがうまくゆかず。。rowもうまく扱えず><

これが完成したらこの仕事が終わるので、できればその度貼り付けなどではなく、 
スマートにできたらと思いまして。。。

ちなみに、データは度々増えていきます。

もしよろしければ、ご教授いただけませんか??
よろしくお願いいたします。

A 回答 (4件)

シート2のB1、B2に所属と部門



A5に
=IF(ROW(A1)>COUNTIFS(Sheet1!$C:$C,B$1,Sheet1!$D:$D,B$2),"",INDEX(Sheet1!$B:$B,SMALL(IF((Sheet1!$C$1:$C$1000=B$1)*(Sheet1!$D$1:$D$1000=B$2),ROW(Sheet1!$B$1:$B$1000)),ROW(A1))))
と記入、コントロールキーとシフトキーを押しながらEnterで入力
以下コピー

B5に
=IF(A5="","",VLOOKUP(A5,Sheet1!$B:$E,4,FALSE))
と記入、ふつーにEnterで入力
以下コピー

A:B列をコピーして完成。
「IDの種類ごとに別シートに印刷用シートを」の回答画像4

この回答への補足

一番初めのA、B列はきちんと出てきたのですが、コピペした方がうまく行きません。。。
キーワードが間違っていないかどうかはチェックしているのですが、、、

ものすごくスマートな式ですね!ありがとうございます!

今日もう時間が取れそうにないので、明日またチャレンジしてみようと思います!

補足日時:2013/07/02 12:10
    • good
    • 0
この回答へのお礼

画像入りで、、、ありがとうございます!
今日は手を付ける時間が無かったので、明日やってみようと思います!!

お礼日時:2013/07/01 17:06

作業列を3列も使うので、スマートとは言えませんが。



F~H列を作業用(オレンジ部分)。
F2に、 =C2&D2  G2に、 =COUNTIF($F$2:F2,F2)  H2に、 =F2&G2
として下へコピー。

I1には、表示させたい「部門」+「所属」の文字列を入力(ブルー部分)。

J2に、 =IFERROR(INDEX($B$2:$B$15,MATCH($I$1&(ROW()-1),$H$2:$H$15,0)),"")
H2に、 =IFERROR(INDEX($E$2:$E$15,MATCH($I$1&(ROW()-1),$H$2:$H$15,0)),"")
として下へコピー。

※都合上、同一シート内で作業しています。
「IDの種類ごとに別シートに印刷用シートを」の回答画像3
    • good
    • 0
この回答へのお礼

十分スマートです!!ありがとうございます!

今日は手を付ける時間が無かったので、明日やってみようと思います!!

お礼日時:2013/07/01 17:07

こんなの、如何?


添付図参照
1.列Aに「No.」欄を設けて、上から順に 1 から始まる連続番号を入力
2.セル G3 に次の[条件付き書式]を設定して、此れを右方にズズーッとドラッグ&ペースト
   数式が    =ISERROR(G3)
   フォント色  白
3.下の左端に示すセルにその右に提示した式を入力
   G3: {=SMALL(IF(($C$2:$C$20=G$1)*($A$2:$A$20),($C$2:$C$20=G$1)*($A$2:$A$20)),ROW(A1))}
     この式のみ配列数式で、行番号「20」は列A~Eのレコード数に応じて充分な数値に書き替える
   H3; =INDEX($D$2:$D$20,G3)
   I3: =INDEX($B$2:$B$20,G3)
   J3: =INDEX($E$2:$E$20,G3)
4.範囲 G3:J3 を下方にズズーッと(必要かつ充分なだけ)ドラッグ&ペースト
5.列G~Jを[コピー]して、此れをセル L1 および Q1 に[貼り付け]
6.セル G1、L1、Q1 をそれぞれ部門名 A、B、C を入力
「IDの種類ごとに別シートに印刷用シートを」の回答画像2
    • good
    • 0
この回答へのお礼

わかりやすく、ありがとうございます!!
今日は手を付ける時間が無かったので、明日やってみようと思います!!

お礼日時:2013/07/01 17:09

》 縦長で印刷しにくいので、…


「印刷しにくい」のは「縦長」だからですか?
「シート2に所属・部門別にIDと名前だけを抽出し」て印刷するのは、もっと「縦長」になるのでは?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。今日は手を付ける時間が無かったので、明日やってみようと思います!!

お礼日時:2013/07/01 17:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!