• ベストアンサー

Excelの関数

Excelの関数を教えて下さい。 「Sheet1」に入っている内容を「Sheet2」へ下記のように変更して表示させたいのですが、効率の良い関数が分かりません。 ※ちょっと表が波打ってますが…。  「Sheet1」    →   「Sheet2」   A   B        A 1  あ  い      1  あ 2  う  え      2  い 3  お  か     3  う 4  き  く      4  え 5  け  こ      5  お     ・          ・     ・          ・     ・          ・  上には5行しか入力していませんが、実際の作業は20~25行あります。 説明がつたなくて申し訳ありませんが、宜しくお願い致します。         

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

  • ベストアンサー
  • nekoron07
  • ベストアンサー率37% (69/184)
回答No.2

No.1です。 すみません、式中のシート名が違ってました(汗)。 =IF(MOD(ROW(),2)=0,OFFSET(Sheet1!$B$1,ROW()/2-1,0),OFFSET(Sheet1!$A$1,(ROW()+1)/2-1,0))

xkurox
質問者

お礼

xkurox様 教えて下さったようにしたら無事出来ました。 とても助かりましたありがとうございました。

その他の回答 (6)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.7

◆こんな方法もありますよ ★Sheet2の式 A1=OFFSET(Sheet1!$A$1,INT((ROW(Sheet1!A1)-1)/2),MOD(ROW(Sheet1!A1)-1,2)) ★下にコピー

xkurox
質問者

お礼

maron--5様 ご回答のお陰で作業時間が格段に短くなりました。 とても助かりました。 ご回答下さいまして、ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

VBA なら Sub test01() k = 1 For i = 1 To 100 For j = 1 To 2 Cells(k, "E") = Cells(i, j) k = k + 1 Next j Next i End Sub

xkurox
質問者

お礼

imogasi様 VBAバージョンもご回答下さりありがとうございます。 VBAはよく分からないのですが、 コピー&ペーストしたらビビッと出来て感動しました。 ありがとうござました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

例えばD列に =IF(ISODD(ROW()),INDEX($A$1:$B$100,(ROW()-1)/2+1,1),INDEX($A$1:$B$100,INT((ROW()-1)/2+1),2)) した方向に式を複写。 ISODD(ROW())は奇数列なら、の意味。 例データ A列  B列    D列 あ い あ う え い お か う え お か

xkurox
質問者

お礼

imogasi様 ご回答ありがとうございます。 この関数ですと、同じシートに表示が出来るので修正の時にとても重宝します!! とても助かりました。

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

シート2のA1に以下の数式を設定して下方向にコピーして下さい。 =OFFSET(sheet1!$A$1,INT((ROW()-1)/2),(MOD(ROW(),2)=0)*1)

xkurox
質問者

お礼

補足に入力してしまいました。 mu2011様 ご回答下さいましてありがとうございます。 OFFSETの関数は使い方がわからないのですが、 こちらのご回答を参考にし応用できるようにしたいと思います。 大変参考になりました。

xkurox
質問者

補足

mu2011様 ご回答下さいましてありがとうございます。 OFFSETの関数は使い方がわからないのですが、 こちらのご回答を参考にし応用できるようにしたいと思います。 大変参考になりました。

回答No.3

別の方法で、 Sheet2のA1に =INDIRECT("Sheet1!"&"A"&(ROW()-1)/2+1) Sheet2のA2に =INDIRECT("Sheet1!"&"B"&ROW()/2) と入力し、そしてSheet2のA1,A2の2つのセルを囲んで、 下へオートフィルします。 これで、Sheet1のA列とB列が交互に表示されます。

xkurox
質問者

お礼

guchi_yama様 この様なやりかたもあるのですね!! 助かりました。そして参考になりました。 ありがとうございました。

  • nekoron07
  • ベストアンサー率37% (69/184)
回答No.1

sheet2のA1のセルに =IF(MOD(ROW(),2)=0,OFFSET(Sheet2!$B$1,ROW()/2-1,0),OFFSET(Sheet2!$A$1,(ROW()+1)/2-1,0)) と入力して、下方向にコピー、で出来ました。

関連するQ&A