プロが教える店舗&オフィスのセキュリティ対策術

エクセルの関数を教えて下さい。
Q、名前を交互に表示する。氏名に1を入れるだけで氏名①、氏名②に「1」、「2」、「3」・・・と表示する。
例   氏名           氏名①  氏名②
     1            1    2
     2            3    4
     3            ・    ・
     ・            ・    ・
     ・            ・    ・

質問者からの補足コメント

  • 素晴らしいです。1つのセルに式を入れたら表示されました。ついでで申し訳ありませんが、式のなかのそれぞれのセルは何を意味するか?教えて頂ければ、こちらとしてもっと活用出来そうです。例)=INDEX($A:$A,ROW(A1)*2+COLUMN(A1)-1)&""での、$Aの「A」は?次の「A」は?、「A1」は?次の「A1」は?「2」は?「-1」は?
    初心者で申し訳ありません。
    というのも、1から始まる前提では無く(セルC2が)2の時もあります。できれば、セルC2は手打ち若しくはリスト選択し、以降(D2、C3、D3・・・・)は式を入れておけばC2入力で表示できないか?と考えています。勝手な質問で申し訳ありません。

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/05/21 09:00

A 回答 (2件)

No.1です。



まず数式の説明から
>=INDEX($A:$A,ROW(A1)*2+COLUMN(A1)-1)&""

INDEX関数は
(配列,行番号,列番号)
になりますので、
(今回は「列番号」は無視)
まず配列に A列すべてを格納します。それが A:A の部分です。
列方向に数式をフィル&コピーしてしまうと元の配列もB列にずれてしまいますので、
固定する必要があるため「$」マークを付けて「絶対参照」にします。
(※ 「相対参照」「絶対参照」「複合参照」など、ネットで検索してみてください。)

残りの数式
>ROW(A1)*2+COLUMN(A1)-1
は「A:A」(配列内)の何行目を返すか?という行合わせだけですので、
どこか使っていないセルに
=ROW(A1)*2+COLUMN(A1)-1
という数式を入れ、となりの右隣りの列 → そのまま下へフィル&コピーしてみてください。
そうすると 2・3・4・5・・・
と交互に表示されるはずです。

少し説明すると、
Row(A1)とは数式を入れているセルは「1」となり、
COLUMN(A1)-1 は COLUMN(A1)が「1」なので数式が入っているセルは結局「0」となり、
ROw(A1)*2+COLUMN(A1)-1=2
となりますので、数式が入っているセルはINDEX関数の「2行目」を返す。というコトになります。
この式を右に一つフィル&コピーすると数式そのものが
>=ROW(B1)*2+COLUMN(B1)-1
となります(数式バーで確認してみてください)
すなわち
ROW(B1)*2 はB1セルの行番号ですので「1」のままで2倍しているので「2」となる。
COLUMN(B1)-1 はCOLUMN(B1)=2 となり 「-1」としていますので結局この部分は「1」となり
2+1=3 という結果でA列の3行目を返す!という感じです。
あとは行数合わせだけですので、各セルの数式を数式バーで確認してみてください。

上記のような感じで、
表示されているのはにINDEX関数で範囲指定した配列の何行目か?になり、
前回の画像ではA列の2行目が「1」。3行目が「2」・4行目が「3」・・・
となっていますので、あのような表示になりました。

また
>"すみません。今、気付いたのですがご指示頂いた式を他へコピーすると・・・
 1  2
 2  3
 3  4
 4  5
 ・  ・
 ・  ・
となってしまいます。何かペーストにコツがいるのでしょうか?"

に関してはコツは必要ありませんが、
どのセルのどのような数式が入っているのか判らないので
具体的なアドバイスができません。

↓の画像では前回同様の数式をC2セルに入れ D2セルまでフィル&コピー → そのまま下へコピーしています。

要するにINDEX関数でどこを範囲指定するか?によって表示される結果は変わってきます。

長々と書きましたが、数式の意味は判っていただけたでしょうか?
とりあえずはこの程度で・・・m(_ _)m
「エクセル関数の件」の回答画像2
    • good
    • 0
この回答へのお礼

有難う御座います。ご指示頂いた下記の式ではOK(あ、い、う、え・・・と交互表示)
なんですが・・・
=ROW(B1)*2+COLUMN(B1)-1・・・・OK

この式だと、あ、い、い、う、う・・・になります。どこがおかしいのでしょうか?
=INDEX($I$14:$I$22,ROW(A1)*1+COLUMN(A1)-1)&""・・・上のセルでC2(結果:あ)
=INDEX($I$14:$I$22,ROW(B1)*1+COLUMN(B1)-1)&""・・・上のセルでD2(結果:い)
=INDEX($I$14:$I$22,ROW(A2)*1+COLUMN(A2)-1)&""・・・上のセルでC3(結果:い)
=INDEX($I$14:$I$22,ROW(B2)*1+COLUMN(B2)-1)&""・・・上のセルでD3(結果:う)
=INDEX($I$14:$I$22,ROW(A3)*1+COLUMN(A3)-1)&""・・・上のセルでE2(結果:う)

$I$14:$I$22は無視してください。「あ~け」と並べた範囲指定です。

何かわかりました。「*1」の数字は「1」にしてはいけないのでしょうか?「2」すると交互に表示します。しかし。始まりが、「い」からとなります。「1」は私の方で「あ」表示するため勝手に作りました。

お礼日時:2015/05/21 17:50

こんにちは!


色々やり方はありますが、一例です。

↓の画像でC2セルに
=INDEX($A:$A,ROW(A1)*2+COLUMN(A1)-1)&""
という数式を入れ、列・行方向にフィルハンドルでコピーしています。

※ 「氏名」というコトなので元データは文字列だという前提の数式です。
(表示結果は数値であっても文字列扱いとなるため)

こんな感じではどうでしょうか?m(_ _)m
「エクセル関数の件」の回答画像1
この回答への補足あり
    • good
    • 0
この回答へのお礼

すみません。今、気付いたのですがご指示頂いた式を他へコピーすると・・・

 1  2
 2  3
 3  4
 4  5
 ・  ・
 ・  ・

となってしまいます。何かペーストにコツがいるのでしょうか?

お礼日時:2015/05/21 15:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!