• ベストアンサー
  • すぐに回答を!

エクセルでデータ管理

  • 質問No.6524240
  • 閲覧数134
  • ありがとう数7
  • 気になる数0
  • 回答数8
  • コメント数0

お礼率 82% (265/321)

こんにちは いつもお世話になっています
エクセル(2003)のデータ管理について教えてください。
以下のような英語単語帳データ(文字列)がA列にあります。

  A
1 出典A
2 単語
3 出典A
4 単語
5 出典B
6 単語
7 出典A
8 単語
9 出典C
10単語
(以降2000行以上あります。)

出典とは、その下の単語の出典になります。つまりA1とA2はセットになっており、以下、同じ仕様です。出典は数十種類あり、出現順序は不定です。単語は同じ出典、あるいは異なる出典で重複して出現することがあります。
ここで、質問ですが、上記のデータから出典別の単語帳をつくる方法を教えてください。
つまり、出典Aの単語、出典Bの単語というように抽出したいのです。重複データが並んでもかまいません。
素人考えでは、A2の単語をB1に引いくる関数で、出典と単語を横並びにしてから、A列にソートをかければいいかと思うのですが、その関数もわからないし、もっとスマートにできるのでしょうか。

わかりにくい表現で恐縮です。
どうぞよろしくお願いいたします。

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

  • 回答No.3
  • ベストアンサー

ベストアンサー率 47% (299/624)

任意のセルに

=INDIRECT("A"&ROW(A1)*2-1)

その右隣のセルに

=INDIRECT("A"&ROW(A1)*2)

と入力して、この2つのセルを下方向にコピー&ペースト
(式の結果が0になるまで。ブランクに対しては0を返すので)

この式が入っているセル範囲全体をコピーして
形式を選択して貼り付けで「値」を選択

以上でどうでしょうか。
お礼コメント
5goma

お礼率 82% (265/321)

don9don9 様 ありがとうございました。お蔭様で解決しました。
手間が省かれてとても便利です。
大切に使わせていただきます。
簡単で恐縮ですが、お礼申し上げます。
投稿日時:2011/02/16 10:40

その他の回答 (全7件)

  • 回答No.8

ベストアンサー率 42% (1835/4282)

2000行以上となりますと作業列を作って対応するのがよいでしょう。
A列の2行目から下方にデータが入力されているとしてB2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(A1="","",IF(MOD(ROW(A1),2)=1,"",A1&"/"&COUNTIF(A$1:A1,A1)))

C1セル、D1セル、E1セル・・には出典の文字列を入力します。
そこでC2セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(ISERROR(INDEX($A:$A,MATCH(C$1&"/"&ROW(A1),$B:$B,0))),"",INDEX($A:$A,MATCH(C$1&"/"&ROW(A1),$B:$B,0)))
お礼コメント
5goma

お礼率 82% (265/321)

KURUMITO 様 ありがとうございました。お蔭様で解決しました。
とても便利で、手間が省けました。
特定の出典だけを出力する時にも効率的です。
大切に使わせていただきます。
簡単で恐縮ですが、お礼申し上げます。
投稿日時:2011/02/16 11:04
  • 回答No.7

ベストアンサー率 23% (292/1222)

前述コメントに一部誤りあり。

A1からA2000まで範囲選択して
B2に貼付けたら、偶数行は単語に対しての出典。
  • 回答No.6

ベストアンサー率 66% (5277/7938)

簡単な参照式だけで出来ますが,ただし若干工夫は要ります。

いまシート名Sheet1のA1からそういったデータが並んでいるとすると
C1セルに =Sheet1!A1 と記入します
D1セルに =Sheet1!A2 と記入します

C1:D1(工夫代としてはC1:D2)を下向けA列下端まで,つるつるっとコピーします
C列昇順でCD列を並べ替え,必要に応じて各出典ごとにまとまったデータを横に並べて移動します。


#回答1の方法でも良さそうに見えますが,実際に操作してみると
「A列で並べ替える『前』に」B列だけコピーしその場で型式を選んで貼り付けて値にしておかないと
上手く行かないことが判ります。
そこだけ直せばご質問で当初考えていた方法通り,これが一番簡単です。


#「スマート」のイミが,理解出来なくても何か難しそうな数式がつかえるとカッコイーだった場合は,配列数式などバンバン難しい式はいくらでもありますのでそちらで。
お礼コメント
5goma

お礼率 82% (265/321)

keithin 様 ありがとうございました。お蔭様で解決しました。
回答1へのご指摘、助かりました。
大切に使わせていただきます。
簡単で恐縮ですが、お礼申し上げます。
投稿日時:2011/02/16 10:53
  • 回答No.5

ベストアンサー率 23% (292/1222)

考え方はそうでしょうが、
数式や関数なのか?

A2からA2000範囲を選んでB1に貼付け。
奇数行では出典に対しての単語、
偶数行では単語に対しての出典、
となる。
C列上から1,2,1,2,1,2としてこれら区別しても良い。

これくらいは考えてみたか。これでどのくらいダメなのか明確に。


スマートとは?。
お礼コメント
5goma

お礼率 82% (265/321)

layy 様 ありがとうございました。お蔭様で解決しました。
仰るとおりです。もうちょっと考えてみるべきでした。
「スマート」は「初心者でも使える手軽さ」ぐらいのつもりでしたが、あやふやな言葉でした。
以後気をつけます。
投稿日時:2011/02/16 10:49
  • 回答No.4
添付図参照

B2: {=IF(ISERROR(SMALL(IF($A$1:$A$3000=B$1,ROW($A$1:$A$3000)),ROW(A1))),"",INDEX($A$1:$A$3000,SMALL(IF($A$1:$A$3000=B$1,ROW($A$1:$A$3000),""),ROW(A1))+1)&"")}
注:これは配列数式です。
お礼コメント
5goma

お礼率 82% (265/321)

mike_g 様 ありがとうございました。
配列数式を教えていただき助かりました。
勉強させていただきます。
簡単で恐縮ですが、お礼申し上げます。
投稿日時:2011/02/16 10:42
  • 回答No.2

ベストアンサー率 48% (26/54)

スマートではないですが、下記手順で処理可能だとは思います。
(バックアップはとってから作業してくだいさね)

1.B1に『IF(MOD(ROW(),2)<>0,A1,0)』と入力します。
2.C1に『IF(MOD(ROW(),2)<>0,A2,0)』と入力します。
3.B1,とC1とそれぞれ最後の行までコピーします。(ドラッグしてください)
 ※この時点で「出典」の横(Bに出典、Cに単語)となります。
4.B,Cの列を選択しコピーします。(選択後、右クリックコピーでOKです)
5.B,C列上で右クリックし『書式を選択して貼り付け』を選択します。
6.貼り付けの『値』を選択し『OK』を押します。
7.『Esc』を押します。(選択状態を解除するためですので、他の方法でもいいです。)
8.B列を選択します。
9.『編集(E)』⇒『ジャンプ(G)』を選択します。
10.『セルの選択』を押します。
11.『定数(O)』を選択し、『数値(U)』のみチェックし、『OK』を押します。
 ※この時点で出典以外のセルが選択されている状態になります。
12.選択中のセル上で右クリックします。(選択が解除されてしまった場合は8からやり直してください。)
13.『削除(D)』を選択します。
14.『行全体(R)』を選択し、『OK』を押します。
15.A列を削除します。
 ※この時点で必要な情報のみになります。
16.A,Bの列を選択します。
17.『データ(D)』⇒『並べ替え(S)』を選択します。
18.優先されるキーを列Aにして『OK』を選択します。
19.保存します。
以上、手間はかかりますが上記で対応可能です。
お礼コメント
5goma

お礼率 82% (265/321)

mzon 様 ありがとうございました。お蔭様で解決しました。
丁寧に教えていただき助かりました。
初心者のため手軽でわかりやすいのが一番です。
大切に使わせていただきます。
簡単で恐縮ですが、お礼申し上げます。
投稿日時:2011/02/16 10:23
  • 回答No.1

ベストアンサー率 38% (1910/4994)

一例です。
(1)B1に=A2を入力、B1:B2を選択して右枠したのフィルボタン(■)をダブルクリック
(2)A列で並び替え、B列を選択してコピー→右クリックで形式を選択して貼り付け→値を選択→OK
(3)A列の単語行を削除
お礼コメント
5goma

お礼率 82% (265/321)

mu2011 様 ありがとうございました。お蔭様で解決しました。
keithin 様のご指摘を参考にさせていただきました。
簡単で恐縮ですが、お礼申し上げます。
投稿日時:2011/02/16 10:18
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ