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

エクセルでデータ管理

こんにちは いつもお世話になっています エクセル(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列にソートをかければいいかと思うのですが、その関数もわからないし、もっとスマートにできるのでしょうか。 わかりにくい表現で恐縮です。 どうぞよろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数8
  • 閲覧数139
  • ありがとう数7

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

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

任意のセルに =INDIRECT("A"&ROW(A1)*2-1) その右隣のセルに =INDIRECT("A"&ROW(A1)*2) と入力して、この2つのセルを下方向にコピー&ペースト (式の結果が0になるまで。ブランクに対しては0を返すので) この式が入っているセル範囲全体をコピーして 形式を選択して貼り付けで「値」を選択 以上でどうでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • エクセルの数式についてお尋ねします。

    数千個の単語帳を逐次ソート、整理しています。 =IF(($A9=$A10)*AND($B9=$B10),"★","○ ") A列に英単語とB列にそれに対応する日本語を入力しました(2行目以下)。 数千個の単語帳ですので、重複があります。それで、データ並び替えで整列させたあと、上下の同一セルをチェック、異なれば○、同一であれば★をC列に表示させました。 上は、セルC9の数式です。 今度は、C列を見ていくのですが、これが面倒ですので、セルC1に、その下のC列上の★マークの数を表示させたいのですが、可能でしょうか。 C列(2行目以下)には、上の数式が入っています。 よろしくお願いします。

  • エクセル 重複項目の削除

    過去分を調べましたが、数字の場合しか見つかりませんでした。 A列に A001 B002 A001 A002 B001 A002 と言う具合に文字列が入っています。 これを、関数を使って重複をなくし、 A001 A002 B001 B002 と別列に抽出したいです。 可能でしょうか。ソートは、されなくてもOKです。

  • 重複するデータの抽出について(エクセル)

    エクセル2003にて重複するデータの取り出しをしたいのですが、 わからないので教えてください。 例えば   A列   B列   C列    D列    E列・・・ 1  色  1回目  2回目  3回目   4回目 2  赤   あ    a      A       0 3  白   い    b      B       1 4  黄   う    c      C       2 5  黄   え    d      D       3 6  黒   お    e      E       4 7  赤   か    f      F       5 : このデータの中から、別のシートのA1に 赤と入力したら、B1にD列のA・Fを抽出 黄と入力したら、B1にD列のC・Dを抽出をしたいです。 VLOOKUP関数を使用してみたのですが、 赤と入力すると、D列のA(1番上のデータ)のみしか抽出出来ず、Fが抽出されません。 重複するデータがあるのはA列のみで、D列には重複するデータはありません。 わかりにくい文章ですみませんが、よろしくお願いします。

その他の回答 (7)

  • 回答No.8
  • KURUMITO
  • ベストアンサー率42% (1835/4283)

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)))

共感・感謝の気持ちを伝えよう!

質問者からのお礼

KURUMITO 様 ありがとうございました。お蔭様で解決しました。 とても便利で、手間が省けました。 特定の出典だけを出力する時にも効率的です。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

  • 回答No.7
  • layy
  • ベストアンサー率23% (292/1222)

前述コメントに一部誤りあり。 A1からA2000まで範囲選択して B2に貼付けたら、偶数行は単語に対しての出典。

共感・感謝の気持ちを伝えよう!

  • 回答No.6
  • keithin
  • ベストアンサー率66% (5278/7939)

簡単な参照式だけで出来ますが,ただし若干工夫は要ります。 いまシート名Sheet1のA1からそういったデータが並んでいるとすると C1セルに =Sheet1!A1 と記入します D1セルに =Sheet1!A2 と記入します C1:D1(工夫代としてはC1:D2)を下向けA列下端まで,つるつるっとコピーします C列昇順でCD列を並べ替え,必要に応じて各出典ごとにまとまったデータを横に並べて移動します。 #回答1の方法でも良さそうに見えますが,実際に操作してみると 「A列で並べ替える『前』に」B列だけコピーしその場で型式を選んで貼り付けて値にしておかないと 上手く行かないことが判ります。 そこだけ直せばご質問で当初考えていた方法通り,これが一番簡単です。 #「スマート」のイミが,理解出来なくても何か難しそうな数式がつかえるとカッコイーだった場合は,配列数式などバンバン難しい式はいくらでもありますのでそちらで。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

keithin 様 ありがとうございました。お蔭様で解決しました。 回答1へのご指摘、助かりました。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

  • 回答No.5
  • layy
  • ベストアンサー率23% (292/1222)

考え方はそうでしょうが、 数式や関数なのか? A2からA2000範囲を選んでB1に貼付け。 奇数行では出典に対しての単語、 偶数行では単語に対しての出典、 となる。 C列上から1,2,1,2,1,2としてこれら区別しても良い。 これくらいは考えてみたか。これでどのくらいダメなのか明確に。 スマートとは?。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

layy 様 ありがとうございました。お蔭様で解決しました。 仰るとおりです。もうちょっと考えてみるべきでした。 「スマート」は「初心者でも使える手軽さ」ぐらいのつもりでしたが、あやふやな言葉でした。 以後気をつけます。

  • 回答No.4
noname#204879

添付図参照 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)&"")} 注:これは配列数式です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

mike_g 様 ありがとうございました。 配列数式を教えていただき助かりました。 勉強させていただきます。 簡単で恐縮ですが、お礼申し上げます。

  • 回答No.2
  • mzon
  • ベストアンサー率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.保存します。 以上、手間はかかりますが上記で対応可能です。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

mzon 様 ありがとうございました。お蔭様で解決しました。 丁寧に教えていただき助かりました。 初心者のため手軽でわかりやすいのが一番です。 大切に使わせていただきます。 簡単で恐縮ですが、お礼申し上げます。

  • 回答No.1
  • mu2011
  • ベストアンサー率38% (1910/4994)

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

mu2011 様 ありがとうございました。お蔭様で解決しました。 keithin 様のご指摘を参考にさせていただきました。 簡単で恐縮ですが、お礼申し上げます。

関連するQ&A

  • エクセル 重複データの検索(COUNTIF関数!?)

    A列とB列で、重複しているデータ(数字)を検索するための関数を教えて下さい。 確か、こんなような↓関数だったと思うのですが、ちょっと違うようです。 C2=IF(COUNTIF(A2,B1:B2377),"","×")

  • エクセルIF関数について

    エクセルIF関数について エクセルのIF関数を利用して、重複するデータを抽出したいと思っています。 エクセルのIF関数を利用したことがないため、別の対応策があれば そちらも教えていただけませんでしょうか・・ 宜しくお願いいたします。 下記のようにA列に入っている1,2,3,4,5があり重複しているものをD列に一つにまとめ重複している1、5の合計分と重複していないものをEに表示させたいと思っています。     A  B     D   E 1  1  123    1  249 2  1  3      2  3 3  1  123    3  345 4  2  3      4  234 5  3  345    5  1665   6  4  234     7  5  555 8  5  555 9  5  555 D1、E1にはどのような関数で対応するのが適しているのでしょうか?

  • エクセルで重複しないものだけを抽出したい

    下記のようなデータがあります。 A B C D 1 20 30 40 1 20 32 41 1 20 30 49 1 20 81 39 2 20 76 40 2 20 32 41 2 20 30 49 3 20 81 39 3 20 39 40 3 20 32 41 4 20 30 49 4 20 81 98 このうち、列Aの他と重複しない部分であり、かつ先頭行を抽出するにはどのようにしたらよいでしょうか? 上記の例で言うと、列Aの1から4までのそれぞれ1行目を選ぶという作業です。 抽出後 A B C D 1 20 30 40 2 20 76 40 3 20 81 39 4 20 30 49 vlookupなどの関数でできるのでしょうか?教えてもらえたらうれしいです。お願いします。

  • エクセルデータの紐付について

    エクセル データの紐付けについて あるデータを参照して、重複しているデータを抽出したいのです。 <例> (1)赤く記しているA列の読みが元のデータとします。 (2)黄色で示しているD列の読みと重複しているデータを探します。 (3)最終的に、黄色で示しているように表示します。 どのような関数を使えばできるのでしょうか? よろしくお願いいたします。

  • Excelー全部又は一部の文字が重複するデータ抽出

    例えば、 A列:株式会社いろは B列:いろは セルにこの様に文字データがあるとき、A列全体からB列全体の一部の文字が含まれる場合に、A列のデータを抽出したいです。 IF(NOT(COUNTIF(A:A,B1)),"",B1) この関数では完全一致するものを抽出できることが分かりましたが、一部一致のような設定はできないでしょうか。

  • エクセル関数について教えてください。下記のように(分かりにくかったらす

    エクセル関数について教えてください。下記のように(分かりにくかったらすいません)A列(アルファベット)とB列(数字)にデータがあります。B列にソートをかけ同じ値のものを揃えた状態で、B2~B5が同じもので、なおかつA2~A5も同じデータのものをC列に抽出したいのですが、エクセルが分かりません。C列に抽出するのは「あり」でも「○」でも分かればいいです。 エクセル関数は初心者なので、分かりやすく簡単にご回答していただけますようお願いしjます。。。 1 A列 B列 C列 2 abc 123 あり 3 def 123 4 edf 123 5 abc 123 あり 6 ghi 789 あり 7 ghi 789 あり 8 ghe 789

  • エクセルマクロで重複数値と以外の数値を抽出する

    数値の表を作成しておりますが、 重複数値で困っております。マクロで教えてください。 A列11&#65374;20まで1.2.2.4.5.6.6.8.9.10とあるデータに 2と6が重複しています 重複数値2.6をB列2行目以降に、C列2行目以降にはそれ以外の1.4.5.8.9.10 を抽出したいのですが、マクロで教えてください。 (offsetを使ってできますか?) また、重複数値を抽出する自作関数ってできるでしょうか? よろしくお願いいたします。

  • 重複データの抽出

    重複した数字のデータを抽出してまとめたいのですが教えていただけないでしょうか? 例えば A列    B列   1245     1365     1245 1398 1365 1155 1245 この表を      A列    B列   1245    1245 1365    1365 1245    1398 1398    1155 1365 1155 1245 のようにまとめたい A列の重複したデータを抽出しB列にまとめたいのですが、なるべく関数でやりたいのですが、良い方法をお願いいたします。

  • エクセルVBAで重複データの削除

    A列、B列、C列・・・とデータが入っていて、B~D列の5行目から10行目が関連の有るデータのかたまりとします。 C~D列の全てのデータが重複している場合に、最初のほうのデータ(行番号が小さいほう)を残すものとして、重複データを削除したいのです。 削除するときは、 B~Dの範囲で削除する。A列等は削除しない。 削除したらデータは上に詰める。 データはソートしない。 ということをやりたいのですが、簡単に出来ますでしょうか? 良く覚えていないのですが、ネット上で色々探してみても、必ずソートしている気がしたので、ソートしない方法が知りたいのですが。

  • EXCEL 条件による重複セルの検出

    列A   列B   (列C) A2001   0    (*) A2001   0    (*) A2001   1    (*) A2001   1    (*) A2001   2 A2001   2 A2002   0 A2003   1    (*) A2003   1    (*) A2003   3 A2003   3 列A、Bに上記のようなデータが入力されている。 以下の条件でデータを抽出し、列Cに印(上の例では*)を付けたい。 1.列Aが重複しているならば、 2.重複しているデータの中で列Bを比較し、 3.列Bの中で最大の値ではないものに対して*を付ける。 このような処理を行いたいのですが、さっぱり分かりません。 関数でも、VBAでもどちらでもかまいません。 どうぞよろしくお願い致します。