• ベストアンサー

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/17068)
回答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/17068)
回答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

  • エクセル関数

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

  • エクセル関数 何を使えばいいか教えてください

    初心者なもので作成中の資料に関数等を使ってスムーズに表示したいと考えています どなたかお知恵を貸して下さいますようお願いします。 出来れば本日中に頂けると有難いです。 内容     表1           表2  累計  実数   累計  実数 A   1    ?     A  3    ? B   2    ?  ⇔  B  2 ? C  3    ?     C  1 ? D  4    ?     D  1    ? 上記のようなエクセルシートがあります。 ・実数値を求めます(普通は引き算すればいいのですが…) ・行Aから行D 及び 累計と実数は固定です ・表1は行Aから下へ累計値を入力 表2は行Dから上へ累計値を入力 上下両方の入力方法に対して対応できる関数式を教えてください。 説明が下手なのですみません

  • Excelでキーを使って関数で列を行への変更

    Excelで下記の事を関数で行うことが出来るでしょうか?方法を知っている方がいましたらお教えください sheet1    A B   1 1 33  2 1 33  3 1 34  4 1 45  5 2 21  6 2 25  7 2 25  sheet2    A  B  C  D  E   1  1  33 33 34 45 2  2  21 25 25 Sheet1の状態のキーをA列とした場合に、 Sheet2でキーをA列に入力後 B1 C1 D1 E1 に 関数を使って列でまとまっているデーターを 行にする方法が分かる方、お教え願います。 (Sheet2の B1 C1 D1 E1に入れる関数の 組み方合わせが分からないと言うことです。 また、マクロはわからないので><) よろしくお願い致します。 実際にはsheet1のデータが1万件近くあるので、手作業は、辛いです。また、sheet1のA列キー以外のデーターが頻繁に変わるので効率よく作業したいの思いがあります。

  • エクセル関数を教えて下さい。

    エクセルの数式を教えて下さい。三角関数を全く忘れていますのでよろしくお願 いします。 図形とエクセルの表を画像でアップしました。  Aは角度  B/C/Dは長さ   一行目   セルA1に 任意の角度を入力 B1に 任意の長さを入力するとC1には C の長さの値が出るエクセル関数 D1には Dの長さの値が出るエクセル関数  2行目も同じ様に  A2に 角度  C2に長さを 任意に入力すると  B2とD2に 長さが出てくる エクセル関数   3行目も同じ様に  A3に角度 D3に長さを 任意入力すると  B3とC3に 長さが出てくるエクセル関数  4行目  B4とC4に 長さを任意入力すると  A4に角度 D4に長さが出てくる エクセル関数 

  • エクセルの関数について教えてください。

    エクセルの関数について教えて下さい。 ”シート1”に、”シート2””シート3””シート4”から、ある文字列”あああ”が同じものをその行をまるまるシート1に表示したいのですが。。。 そのような方法はありますか?一列一列SUMIFで関数を入力しなければいけませんか? 説明がわかりにくくて申し訳ありません。 宜しくお願い致します。

  • エクセル関数について

    下記のようなエクセルのデータを作りたいのですが、どのような関数を使えばいいかわかりません。 シート1           シート11           シート12            A    B         A    B            A    B  1  田中 500円    1 田中  500       1 田中  500 2               2 シート2    A    B         A   B             A    B  1  伊藤 300円     3 伊藤 300         2 伊藤  300 2  佐藤 400円     4 佐藤 400         3 佐藤  400 このようにシート1から10まで2行入力する欄を作ります その中から大事なデータだけを集計するため一度シート11に反映させます この時2行目が空欄の場合はシート11も空欄になっています。 そしてこのシート11から空白部分を除いて順番に並べるシート12を作りたいです。 シート11は=Sheet1!A1のように単純に反映ができるのかと思うのですが シート12へ空白を除いて反映させる方法がわかりません。 わかりづらい質問でも申し訳ありませんが  何卒よろしくお願い致します。  

  • エクセル関数で…

    たびたびお世話になっております。誰かお願いいたします!  A B・ ・ V 1あ い・ ・ 99 2う え・ ・ 10 3あ か・ ・ 3 4き く・ ・ 5 5あ こ・ ・ 5 ・・ ・・ ・ ・ ・・ ・・ ・ ・ とエクセルに入力があります。 A列であ、V列で99以外の行を数えたいのですが…。 どうにかエクセル関数を使ってカウントしたいのですが、どうしてもうまく数えられません。 どなたかご存知の方がいらっしゃいましたら、教えてください。 よろしくお願い致します。

  • Excelの関数式について

    ExcelのB列(B2:B50)にフラグ「0」または「1」が入力されています。 フラグ「0」が入力されている行番号を関数を使用して取得したいと思っており、 下記関数でできるのですが、フラグ「0」が複数連続で続いた場合は、1つ目だけの 行番号を取得したいのですが、どのように変更したらよいのでしょうか。 D列に下記関数式を入力して、以下オートフィルしています。 =IF(COUNTIF(B$2:B$50,0)<ROW(A1),"",SMALL(INDEX((B$2:B$50<>0)*10^3+ROW(B$2:B$50),),ROW(A1))) 例えば、下記のようば場合は、行番号「2、5、8」を取得したいです。    A   B 1      -1 2       0 3      -1 4      -1 5       0 6       0 7      -1 8       0 9      -1 ・ ・

  • Excelの関数を教えてください

    初めまして。よろしくお願いします。 関数を使って、以下のようなデータを作成することができれば、 その関数を教えてください。 Sheet1には次のように入力されています   A       B 1 日付      金額 2 2010/1/1 500 3 2010/2/5  300 4 2010/1/23 10000 5 2010/2/1  200 ・ ・ ・ A列に日付、B列に金額が入力されていて、行は決まっていません。 これをSheet2に集計したいのですが、B2~B13に関数を使ってできますか? Sheet2   A     B 1 月    金額 2 1月 3 2月 4 3月 ・ ・ ・ 13 12月 14 合計 Excelがわからなくてこまっています。詳しい方、ぜひ教えてください。 よろしくお願いします。

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

    エクセルの関数。 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行あります。) 教えて頂けないでしょうか?

専門家に質問してみよう