人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

参考の表で
左の入力欄に該当する名前を右の名前欄にコピー
各ホールごとに上から順に入れたい、
どの方法が一番わかり易いでしょうか?

1288075098
●拡大する

●質問者: mitsueda
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:コピー ホール 入力 名前
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Silvanus
●28ポイント

ご質問の際には、基本的には「トラックバック・コメントを受け付ける」設定にされた

状態の方が宜しいかと思います。回答受付を開始した後でも

「回答受付一時停止→トラバ・コメ受付可→回答受付再開」で変更できます。

???

左から4列目のホール名のところで、何故ホール名が4つずつあるのか、

そこの理由が判らない上、Excelのバージョンも不明なので明確な回答はできませんが、

次の様な方法はいかがでしょうか。Excel 2007か2010を想定しています。

1~3列目が記入されていて、4列目と5列目は空白の状態であるとします。

1) 2列目の「名前」を5列目にコピー

一番上の列見出し("B"と書かれた部分)を選択して[Ctrl]+[C]

2) 5列目にペイスト

一番上の列見出し("E"と書かれた部分)を選択して[Ctrl]+[V]

3) 同様に3列目の「入力」を4列目にコピー&ペイスト

4) 4列目と5列目を選択

一番上の列見出しを2列分選択する("D"と"E")

5) メニュー[データ]→[並び替え]で「先頭行をデータの見出しとして利用する」にチェック。

「最優先するキー」を「入力」、「並び替えのキー」を「値」、「順序」を「昇順」に設定し

[OK]をクリック。


2 ● くろょ
●100ポイント ベストアンサー

左の入力欄に該当する名前を右の名前欄にコピー

各ホールごとに上から順に入れたい

つまり、参考の表は、左端の行番号は無視して、左の2列と右の2列に分かれていて、

左の表は「先着順でホールの利用希望者名と利用希望のホール名」が書かれていて、

右の表は左の表から、先着順で、各ホールごとに、実際に利用可能な利用希望者名をリストしたい、

(表の例で言えば、各ホール一度に4名までは利用可能なので、ホール名が4つずつある)

という事ですね?


VBAを使って関数を定義するのが一番分かりやすいと思いますが、

それはきっと別の方が回答してくれると思いますので(笑)、


私は、ワークシート上の標準関数のみでやってみました。

こういう感じになります:

f:id:kuro-yo:20101027191058p:image

(使用バージョン Microsoft Excel 2003)


セルD2には

=IF(ISNUMBER(E2),INDEX($A$2:$A$13,E2),"")

セルE2には

=MATCH(C2,OFFSET($B$2:$B$13,IF(C2=C1,E1,0),0,ROWS($B$2:$B$13)-IF(C2=C1,E1,0)),0)+IF(C2=C1,E1,0)

という式が入っています。

D列とE列の残りの行は、D2:E2をそのまま下方向コピーした内容です。

ホール名は参考表のように、必ずひとかたまりになっている事を前提としています。

E列は中間結果の保持のために必要ですが、邪魔でしたら、列幅を0にするなどで隠せば良いでしょう。


ご覧の通り、あまりスマートではありません。スマートさでは、やはりVBAで関数を作成するのが一番いいですね。

◎質問者からの返答

大変な回答を有難う御座いました、

お陰でなんとか旨く出来ました。

今後とも宜しくお願い致します。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ