ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Excel(エクセル)活用コミュの英語の単語集の見出し語と例文のリンク

  • mixiチェック
  • このエントリーをはてなブックマークに追加
英語の単語集をやっています。

このような構成になっています。
--------------------------------------------------------------
0001
acceptance [受諾]
Sign below to indicate your acceptance of these terms.
これらの条件の受諾を示すために下に署名してください。
--------------------------------------------------------------
1155まであります。

Signは、738番で、
termは、455番で見出し語で出て来ます。

見出し語の番号と別の見出し語の例文中で扱った単語をうまくリンクさせる方法はないでしょうか?

分かりにくいですよね?
自分でも分かってないんですけど、何かうまい方法はないかなと思いました。

単純に思いついたのは、画像みたいなやり方です。
増えて来たら、条件付き書式で、重複する値に色を付ける。
くらいです。他に何かいいやり方ないですか?

コメント(27)

VBAを使えば簡単にできそうですけど、VBAを使わなければ とても難しい もしくは 不可能 な気がします。
VBAを使うと、どんな風に処理できそうなんですか?
VBAは、やったことがないんですよ。

ちょっと難しいことをしようとすると、VBAになりますね。
やっぱり理解するしかないのかなぁ。
なんか愚痴みたいな書き込みで、すみません。
こんな感じでもいいでしょうか?
例文を単語ごとにバラバラにして、それぞれの単語が何行目に出てくるか判定し(その部分は非表示にしています)、Small関数で順番に並べています。

すいません、写真がちょっと見にくいかもしれないです。
例文の英文を入力するのは、やらないといけないのでしょうか?
数字だけでなんとか処理できないでしょうか?

形容詞や副詞は、比較でもなければ形が変化しないからいいとは思いますが、動詞や名詞は変化します。see saw seen sees seeing, woman women 例文を入力して、それを切り取るのではなく、数字で処理は難しいでしょうか?
>>[6]
ありがとうございます。いま、スマホからで明日パソコンで検討します。
表全体に、関数を埋め込むのは大変かな?と思いまして、例とは違いますが、番号を入力すると、その英単語、その横に例文を並べるような表はどうでしょう?

表の最後の列に作業列(順位)を、設けます。
=IF(COUNTIF(D2,"*"&$J$2&"*"),COUNTIF($D$2:D2,"*"&$J$2&"*"),"")

番号の横に 英単語を表示
=INDEX(A:E,MATCH(I2,A:A,0),MATCH(J1,A1:E1,0))

例文1〜10 の書式 "例文"####

例文を取り出す式
=IF(MAX(F:F)<K2,"",INDEX(D:D,MATCH(K2,F:F,0)))

例文の文字色を変える条件付き書式
数式:=$F1<>""
書式:フォントの色指定
適用崎:$A:$F

添付画像が、条件書式の手直し前でした。すみません。
>>[7]
確かに英単語は変化するので、その辺は難しいなと思っていました。
実際私のサンプルでもperiodsは反映されていません。

数字だけで処理、というのがどういうことかよくわからないです。
各単語すべてに対応する例文を入力しないということでしょうか?

ところでトニーさんの画像は割と読みやすいですが、私の画像はぼやけてて見えにくいですね…
スクリーンショット→ペイントでトリミングしたのですが、ほかにいい方法あるのでしょうか…。
>>[9]
表全体に関数は確かに大変なので、表と別の場所で番号とか単語を入力したら、vlookupで例文を表示し、その中の単語の場所を表示、とするほうがいいかもしれないですね。

へいちゃんさんのはまだちゃんと見てないんですが、知らないやり方とかあって、見ててわくわくします。
ほぼ独学なので、知らないことも多いもので…。
>>[11]
画像がきれいなのは、jpg形式で保存しているからだと思います。保存形式は、何にしましたか?

いま、別の単語集の例文を入力していますが、結構大変な作業です。その単語集は、例文が300にも満たないのですが、一苦労です。この単語集は、1200近くもあるので、例文を全部入力するのは、かなり大変です。

そもそもの発想として、例文中に、別の見出し語が載っているなら、相手にする例文を減らせないかということなのです。相手にするというと語弊がありますが。おそらく、2/3くらいには、なるんじゃないかと思うのです。

Sign below to indicate your acceptance of these terms.
という例文は、acceptance=受諾を覚えるための例文ですが、738番のsignと455番のterm(s)も覚えることができます。
そうすると、単語を覚えるという意味では、738番や455番に乗っている例文を新たに覚えなくてもいいことになります。
belowやindicateも覚えることができますが、この単語集には見出し語としては、掲載されていません。

61のcareerという単語を覚える(まぁ、こんな単語は知っているけれど)のに、3番か9番の例文で学習済みということをエクセルの機能で把握したいのです。

関連する見出し語としましたが、別の言葉でもいいですが、ここを関数か何かの機能で、表示させることはできないのでしょうか?

まあ、やっぱり重複を目立たせるになるかなと思うのですが、それだと、重複は全部一緒くたになってしまうから、あまりよくないです。

二重線より左は、自分で入力するとして、右は、何らかの機能で表示できないでしょうか?
ただ、二つとは限りません。もっと多いかもしれません。まぁ、10以上あるとして、10までの表示でもいいとは思いますが。
あるいは、もっと少なくてもいいとは思います。
一つ思いつくのは、ショートカットキーです。

Ctrl+Fで検索をすることは、できます。
みずらくなってしまったので、張り直します。

英単語を入力して、
一度セルを移動して、再度入力したセルをアクティブにして、マクロを使えば(ショートカットキーを設定しておくと便利)
アクティブセルの右側に例文があれば例文が入力されます。3つあれば、右隣、その右隣、更にその右隣に、例文が入力されます。

入力セルに合わせて、手直しが必要です。
Sub Sample()
Dim c As Range
Dim firstAddress As String

With Worksheets("TANGO").UsedRange.Columns(3)

Set c = .Find(What:=ActiveCell.Value, _
LookIn:=xlValues, LookAt:=xlPart)

If Not c Is Nothing Then
firstAddress = c.Address

Do
c.Copy Destination:=ActiveCell.Offset(0, 1)
ActiveCell.Offset(0, 1).Select
Set c = .FindNext(c)
If c Is Nothing Then Exit Do
Loop Until c.Address = firstAddress
End If
ActiveCell.Clear
End With
End Sub

With Worksheets("TANGO").UsedRange.Columns(3)
シート名がTANGO  Columns(3) 例文が左から3列目 を意味しています。
c.Copy Destination:=ActiveCell.Offset(0, 1)
アクティブセルの右隣に、例文がコピーされます。.Offset(0, 1)の数字を変えて、例文を入れたいところに入れてください。

ちなみに前回の画像が見えにくようなので、もういらないとは思いますが、入れときます。
入れたはずなのに、消えちゃってたので、条件書式で指定して、色を変えます。
番号のセルが赤いのが元になった単語です。
>>[13]
なるほど、おっしゃりたいことは大体わかりました。

ちなみに画像は私もjpegです。次はかなり画面を拡大してPNGにしてみます。

で、Excelの案ですが、まずリストにすべての見出し語を入力して、そのあと1つの例文を入れたらその見出し語かそのNo.を入力欄に入力したら、例文の単語がリストの見出し語にあればそのNo.を検索結果に表示し、その番号のセルを色が変わるようにしてみました。(1枚目)

非表示にしている部分は2枚目です。
例文の単語を10番目まで(20は多いかと思い10にしました)バラバラにしたもので、見出し語にあれば番号を表示しています。(2枚目)

F9の検索結果の1単語目には=IF(ISERROR(MATCH(TRIM(MID(SUBSTITUTE(LEFT($E8,LEN($E8)-1)," ",REPT(" ",50)),(COLUMN(E8)-5)*50+1,50)),$C$12:$C$21,0)),"",MATCH(TRIM(MID(SUBSTITUTE(LEFT($E8,LEN($E8)-1)," ",REPT(" ",50)),(COLUMN(E8)-5)*50+1,50)),$C$12:$C$21,0))
という式を入力して、2単語目以降は右にコピーです。
入力する列がF列とは違う場合、COLUMN(E8)-5の部分の5を変える必要があります。

P8のリンク先1には=IF(ISERROR(SMALL($F8:$O8,COLUMN(F8)-5)),"",SMALL($F8:$O8,COLUMN(F8)-5))
で、これも右にコピーです。

入力欄を使うことで、シートを関数だらけにせずにすみますし、該当欄の色を変えることが出来ます。
いちいち入力欄に毎回入れないといけないのと、該当欄があればその都度その単語のところに「例文不要」とか書きこまないといけないですが…
私が考え付くのはこんな感じですね。

ただ、私も英語はじめいくつかの言語を勉強した経験からすると、例文は重複していてもたくさん読んだ方がいいとは思いますよ。
単語は数学の公式などと違って、意味するところはひとつではないですし、ニュアンスとかを理解するには少しでも多くの文章と出会うのが早道です。
と、ここで言っては元も子もないですが…(笑)
英語の勉強頑張ってくださいね。
>>[12]

Excelで、関数を使うというのは、考え方の問題だと思います。
ふつう、VLOOKUPを使う人は少ないと思います。
INDEX,MATCHのほうが、応用が効くので、多くの人はINDEXを使うと思います。

おいらも独学です、本とネットが先生です。^^;
>>[19]
私も単語が例文の中にあるかどうかの判定にはMATCHを使っています。
その判定に使う例文を引用するのはVLOOKUPを使いました。

そういえばその辺のところを上の書き込みで解説するのを忘れていました^^:

私もマクロも使いますが、個人的に関数が好きなんですよね。
マクロも好きですがまだまだ勉強不足なので、もっと突き詰めていけばより好きになると思うので、がんばります!
書くの忘れてましたが、結果表示の部分の意味と例文はリストからVLOOKUPを使って表示しています。
画像が見づらくなっていてすみません。
番号がいいのですか?
見出し語を入力して、見出し語のセルをアクティブにして、マクロを実行すれば、例文のセルにそれまでに見出し語を入力した例文があれば、例文が入力されます。なければ空白なので、例文を入力します。
見出し語を含む例文が3つあればその向こう3つのセルにそれぞれ 例文が入力されます。
数字より、例文が入ったほうが便利かと思いましたが、数字にこだわるのであれば、それに該当する番号が入るよう手直しをすればいいと思います。

>>[23]
例文を1155も入れるのは、正直、手間なんです。見出し語を入れるくらいは仕方ないとして、例文を全部入力するのは、できれば避けたいです。
>>[24]

例文が入力されていれば、自動的に入るので、手入力入りません。
入力されていなければ、手入力しないといけません。

Sign below to indicate your acceptance of these terms.
が入力されていて、見出し語 terms を入力して、マクロを実行すれば
見出し語 terms の右隣、例文のセルにSign below to indicate your acceptance of these terms.が、自動的に入力されます。

termsを太字にしたいのであれば、新たなVBAを作ったほうが楽かと思います。見出し語のセルの文字数を取得して、例文の何番目から始まるかを取得すれば、後は太字にすればいいと思います。その後、下のセルに移動して繰り返す そういうVBAになるかと思います。

例文を入れるマクロを Ctrl+K にして
太字にするマクロを Ctrl+L にしておけば、
入力は 見出し語を入れて Ctrl+k で例文を埋めて
すべての単語を入れたあとで Ctrl+L で 例文の見出し語を太字に変換
そういう手順が考えられます。
>>[25]
太字や赤字は、例として見易いようにそうしました。自分で使うためには、しなくていいのです。
どうしても、関数を使うということでしたら、配列数式を使うことになると思います。
この場合は、範囲を決めないといけないので、新たに行を入れることができなくなります。

例文をひとつだけにするのであれば、D3(例文1)に入る式は

=INDEX(A:C,MATCH("*"&B3&"*",C:C,0),MATCH($A$1,$A$1:$C$1,0))

ということになるかと思います。
この場合は、拾ってくる番号は、一番若い番号になります。

MATCH($A$1,$A$1:$C$1,0) の $C$1を、変えることで、番号ではなくて例文になります。

ログインすると、残り3件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Excel(エクセル)活用 更新情報

Excel(エクセル)活用のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。