• ベストアンサー

エクセル関数で文字をリンクさせ、カードを作りたいのですが。。。

以前、QNo.3889525 で同様の質問をさせて頂きましたが、出来栄えが良かったため、その後また子供に漢字カードを 作ってあげたくて数式を変えてみましたが、どうしても分からなくなってしまいました。 今回は、 シート1に漢字のデータ(漢字、よみ、英単語、発音記号)があり、それをシート2に印刷用としてリンクさせたいのです。 1語分のカードは表裏用があり、AB列が表用、CD列が裏用のそれぞれ2行づつで出来ています。 印刷用シートは表(AB行)裏(CD行)用で横4行/縦2行になっています。それぞれデータを1行目→2行目1行目→2行目…と 交互に入るように設定したいのですが。。。 ◆Sheet1(データ)     A     B     C       d 1   一    いち    one     発音記号 2   右    みぎ    right    発音記号 3   雨    あめ    rain     発音記号 4   音    おと    sound    発音記号 ◆Sheet2(印刷用)      A      B      C         d 1    一     右      one       right 2    いち    みぎ    発音記号    発音記号 3    雨     音      rain        sound 4    あめ    おと    発音記号    発音記号 以前質問させて頂いた時にご回答頂いた数式に手を加えてみました。現在はAB行は上手く出来ていますが、CD行がどうしても出来ません。 現在の数式は(C行) =INDEX(単語表!$C:$D,INT((ROW(C1)-1)/2)*2+COLUMN(C1),MOD(ROW(2:2),2)+1)  なのですが、シート1の3行目(rain)からしか表示されず、1~2行目(oneとright)がどうしても出てきません。 AB行は上手く出来ているので、恐らく上記の関数を少し変えれば出来るだろう!と試していたのですが、無理でした。。。 よろしくお願いいたします!!

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

=INDEX(単語表!$C:$D,INT((ROW(A1)-1)/2)*2+COLUMN(A1),MOD(ROW(2:2),2)+1) または =INDEX(単語表!$C:$D,INT((ROW(C1)-1)/2)*2+COLUMN(C1)-2,MOD(ROW(2:2),2)+1)  ですね。 COLUMN(C1)=3のために2行下の3行目を参照しています。

a_a-misa
質問者

お礼

出来ました~!ありがとうございました!! 助かりました~

その他の回答 (3)

  • yokomaya
  • ベストアンサー率40% (147/366)
回答No.4

=INDEX(単語表!$C:$D,INT((ROW()-1)/2)*2+COLUMN()-2,MOD(1+ROW(),2)+1)

a_a-misa
質問者

お礼

出来ました~!助かりました!! ANo.1さんのご回答とは若干の違いがありますが結果は同じなんですね。 色んな方法があって、関数って深いな~と思いました。 ありがとうございました~!!

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.3

#2です。 (1)のSheet1は、適切なシート名に直してください。

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.2

望む結果が得られれば良いだけで、すべてのセルに同じ数式を入れたいわけじゃないですよね? であれば、Sheet2で、 (1) A1に、=Sheet1!A1 B1に、=Sheet1!A2 A2に、=Sheet1!B1 B2に、=Sheet1!B2 という数式を入れてください。 (2) そのあと、A1:B2の範囲をC1:D2の範囲にコピー&ペーストしてください。 (3) そのあと、A1:D2の範囲を、下方向に好きなだけコピー&ペーストしてください。 これでできるはずです。

a_a-misa
質問者

お礼

こんな簡単な方法で出来たんですねー!気が付きませんでした。 ただ、ご回答頂いたとおりに試してみたのですが、発音記号の文字が 何故かしら化けてしまって上手くいきませんでした。。。 恐らくフォントに原因があるのではないかと思います。 ありがとうございました~!

関連するQ&A

  • エクセル関数で文字を一つ飛ばしにリンクさせたいのですが。。。

    エクセルで子供に英単語の暗記カードを作ってあげたいのです。 シート1に英単語のデータ(単語、意味、発音記号)があり、それをシート2に印刷用としてリンクさせたいのですが、 1単語のカードが(単語、意味、発音記号)の3行で出来ているため普通にリンクを貼って3行をセットに下へドラッグしても、 単語のデータが2行とばしでしかリンクされなくて困っています。 印刷用シートは横2行になっているので、データを1行目→2行目1行目→2行目…と交互に入るように設定したいのですが。。。  -データ-(シート1)        -印刷用-(シート2) television  テレビ 記号      television  telephone telephone   電話  記号  →    テレビ    電話 floor     床   記号        記号     記号 calculator  電卓  記号       floor    calculator                     床     電卓                     記号     記号 1行目には奇数の単語、2行目には偶数の単語がリンクされる様にすれば良いのではないか?と考えたのですが、どの様な関数を使えば 良いか分かりません。 あと関数とは別なのですが、それぞれのカードの裏に単語の意味の イラストをつけて印刷したいのですが、エクセルにイラストを沢山 つけて保存することは可能でしょうか? よろしくお願いいたします。

  • 表のばらばらの文字列を1列にまとめたい 関数

    添付の左の表を右の表にしたいです。 (1)左の表には数式が入っていて、この他にもう一つある表のデータに該当すると1列ごとにSMとかNPとか表示されるようになっています。 (2)この左の表は実際には136列あるので、結果を印刷すると一枚に収まりきらないのです。なので、右の表のように、1列に表示したいのです。 (3)1行のうち、2個以上文字列が入ることもありますが、その可能性は低いので、とりあえず1行に1個ずつ出現すると考えてもらっていいです。(2個以上文字列が出現する場合も分かれば教えてください。) (4)関数でできませんか? またはマクロでもいいです。

  • エクセル シートのリンク

    エクセルの一つのシート(印刷用)に複数のシートからのデータを数式を使い反映できるようにしています。 あるシートに、AまたはCと入力するか、空欄のままにしておき、印刷用のシートにAかCを返すとともに空欄のセルにはBと入力できるようにします。この作業を1期、2期、3期と三回くり返します。1期を入力した場合には、2期3期の部分が空欄のままになり、2期を打ちはじめると印刷用のシートの2期の表にA,Cはそのまま返し空欄のセルにはBが返るようにできないものでしょうか。今の状態は2期3期を入力しないままにしておくと当然印刷用のシートにはBが表示されていまいます。できたらマクロを使いたくないのですが。いい方法があれば教えてください。

  • excelの関数について

    EXCEL2010と2013を使っています。 例えばA列にAB001、AB002、AB003・・・と並んでいるものを、途中でAB001をAB002、AB002をAB003・・・という風に変更したいのですが、それぞれが一つずつとは限らなく、AB001が2つとか3つとかあったりします。なので、オートフィルが使えません。 今やっている方法が、まずB列でRIGHT関数で右側4つの数字を抜き出し、そのあとC列で1をそれぞれに=A1+1という式ですべて1ずつ足して、そのあとD列で ="AB"&002のようにABを付け加える数式で計算したあとA列にコピーするというやり方しかわかりません。それらをいっぺんにする方法は何かないのでしょうか?

  • エクセルの関数について。

    エクセルの関数。 Sheet1の作業列1のA2セルに =IF(COUNTA(Sheet2!2:2)=0,"",IF(Sheet2!A2="",A1,Sheet2!A2)) →数式1とする 作業列2のB2セルに =IF(A2=$D$2,ROW(),"") →数式2とする という数式を入れA2・B2セルを範囲指定 → B2セルのフィルハンドルで下へコピーしておきます。 (Sheet2の行数以上コピーしておく) そしてE2セルに =IF(COUNT($B:$B)<ROW(A1),"",INDEX(Sheet2!B:B,SMALL($B:$B,ROW(A1)))&"") →数式3とする という数式を入れオートフィルで列方向・行方向にコピーする。 教えて頂きたいことは、数式1、数式2、数式3が何を意味しているのか。 と、この数式を使って、表を作成したのですが、ある特定の数字(コード、D2セルに入力)を入力しても反応してくれない。 (E2~H2まで、空白セルの状態になります。) (sheet2は約1200行あります。) 教えて頂けないでしょうか?

  • エクセル関数

    エクセル関数を教えてください。 下記のシフト表のようなものを作成しているのですが、 【Sheet1】    A列    B列  C列   D列 ・・・・  1 氏名    4/8   4/9   4/10・・・・ 2 勤務者名  ●   △    ■ B列以降は連続した日付で 2行目は出勤日に記号を入力します。 記号は仕事種類によって違うので、種類はいろいろあります。 ちなみに、【Sheet1】のひな形は変更不可です。 この表を元に【Sheet2】に勤務者名を入力すると、 最初に出勤した日と、最後に出勤した日を表示させたいのです。 IFやVLOOK関数を使うのかな?と思いいろいろやってみたのですが、 うまくできませんでした。。。 ご協力よろしくお願いします。  

  • エクセルの関数について教えて下さい

    現在ある表を元に、見積書を作っています。 すごい効率が悪く、困っています。 A1~G3に表があります。(実際にはもっと多いです) 1行目に商品名 2行目に金額 3行目に個数 G3 に合計 1・2行目は、元々商品名・金額が入っており 3行目に個数を入れていきます。 G3に合計が入るようにしています。 B2、350円  C2、320円  D2、400円  E2、500円  F2、550円  G2 B3、 1    C3、      D3、 1    E3、       F3、      G3、750円  (現在のG3に入っている数式) =F3*F2+E3*E2+D3*D2+C3*C2+B3*B2 項目が多い為、数式がすごい事になっています。 もっといい方法はないでしょうか? わかる方おられましたら、教えて頂けませんか? よろしくお願いします。

  • Excel 関数 

    初心者です条件にあったものを参照する数式を教えてください よろしくお願いいたします! ~sheet1~ A列     B列  回数    金額 3,000以下  29,800 3,000以上  39,800 4,000以上  49,800 上のようなsheet1に表があり sheet2にA列に下のように1の表示がある場合のみ sheet1の条件にあった金額を sheet2のC列に表示させる数式を教えてください。  A列  B列    C列       回数   金額(円)  1    5O,712   49,800  1    133    29,800  1    3,014    39,800       3,014  (計算しない) わかりにくい説明かもしれませんが… すみませんがよろしくお願いいたします。   

  • エクセルの関数で

    商品の在庫表があり、 別のシートで現在あるぶんだけを表示して印刷したいのですが 商品数が多く見づらいので在庫が0個の商品の行をとばして 上詰めで表にして毎日印刷したいのですが 日付だけを変えると簡単に変わるように作るにはどうしたらよいのでしょうか?

  • エクセルシートで行の高さをあわせる

    エクセルで4シートにわけ、表を作っていますが 1・2シート、行の高さをあわせているんですが、(右クリック→行の高さで)印刷するとどうしてもあいません。。。 どうしてでしょうか・・? 資料として綴じるので・・・困っています。 分かる方があれば早急に教えてください。

専門家に質問してみよう