グッドデザイン賞を受賞したウォーターサーバー >>

色々検索してみたのですが同じ例が見つけられませんでしたのでどなたかに伺いたいです。

sheet1に
  1
A 13
B 14
C 15

というデータがあります。

作成したいのは、別のシートに

Aを縦に13回別のセルに、(セルA1~A13すべてに"A"が記入されている状態)
Bを縦に14回別のセルに、(セルA14~A27すべてに"B"が記入されている状態)  ・・・

と表示されるシートなのですが、普通の数式、もしくはマクロをつかってできますか?
どうぞよろしくお願い致します。

A 回答 (2件)

最初の「1」って、特に説明も無いので意味はないとしてスルーします。



手順:
シート1のA1に「累計」、B1に「項目」、C1に「回数」と記入する
B2以下にA,B,C
C2以下に13,14,15
をそれぞれ記入

A2に
=IF(C1="","",SUM(C$1:C1,1))
と記入してA5以下までコピーする

シート2のA1に
=LOOKUP(ROW(),Sheet1!A:B)&""
と記入して以下沢山コピーする。



#回答した通りに作成します。勝手に違う事をすると出来ません。
    • good
    • 8

こんにちは!


VBAでの一例です。

「1」が何を意味しているのか判らないので、↓の画像のようにSheet1の2行目以降にデータがあるとします。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に↓のコードをコピー&ペースト
→ Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")
wS2.Range("A:A").ClearContents
On Error Resume Next
For i = 2 To wS1.Cells(Rows.Count, "A").End(xlUp).Row
wS2.Cells(Rows.Count, "A").End(xlUp).Offset(1).Resize(wS1.Cells(i, "B")) = wS1.Cells(i, "A")
Next i
wS2.Range("A1").Delete shift:=xlUp
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m
「エクセルで指定回数だけ別セルに繰り返す方」の回答画像2
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel で行を指定回数だけコピーしたい

Excel で行を指定回数だけ、コピーしたいと思います。

A    B   C   D    E
ssjj kkkk ssss jajj 2
jkjk jjkj jahj kjkj 4
ksks ssss kakk uhuh 0
kaka sakk kjkj iuiiu 1

このような表があった時、E列で繰り返しの回数を指定するとして
次のシートに以下のような表ができれば
いいのですが。

A     B     C     D     E
ssjj kkkk ssss jajj 2
ssjj kkkk ssss jajj 2
jkjk jjkj jahj kjkj 4
jkjk jjkj jahj kjkj 4
jkjk jjkj jahj kjkj 4
jkjk jjkj jahj kjkj 4
jkjk jjkj jahj kjkj 4
kaka sakk kjkj iuiiu 1



膨大な数のデータですのでVBAやマクロ
が使えるといいのですが。

よろしくお願いいたします。

Excel で行を指定回数だけ、コピーしたいと思います。

A    B   C   D    E
ssjj kkkk ssss jajj 2
jkjk jjkj jahj kjkj 4
ksks ssss kakk uhuh 0
kaka sakk kjkj iuiiu 1

このような表があった時、E列で繰り返しの回数を指定するとして
次のシートに以下のような表ができれば
いいのですが。

A     B     C     D     E
ssjj kkkk ssss jajj 2
ssjj kkkk ssss jajj 2
jkjk ...続きを読む

Aベストアンサー

>VBAやマクロが使えるといいのですが。
VBAでやれば簡単なロジックで出来るが、VBAの経験はあるのかな。
(A)E列に繰り返し数があると仮定している。
(B)2003までなら、データ数は65536行以内と仮定になる。
(E列の繰り返し数の合計が)
標準モジュールに
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
d = sh1.Range("A65536").End(xlUp).Row
MsgBox d
k = 1
For i = 1 To d
For j = 1 To sh1.Cells(i, "E")
sh1.Range(sh1.Cells(i, "A"), sh1.Cells(i, "E")).Copy _
sh2.Cells(k, "A")
k = k + 1
Next j
Next i
End Sub
ーー
質問例でのテスト  Sheet2に
ssjjkkkkssssjajj2
ssjjkkkkssssjajj2
jkjkjjkjjahjkjkj4
jkjkjjkjjahjkjkj4
jkjkjjkjjahjkjkj4
jkjkjjkjjahjkjkj4
kakasakkkjkjiuiiu1

>VBAやマクロが使えるといいのですが。
VBAでやれば簡単なロジックで出来るが、VBAの経験はあるのかな。
(A)E列に繰り返し数があると仮定している。
(B)2003までなら、データ数は65536行以内と仮定になる。
(E列の繰り返し数の合計が)
標準モジュールに
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet1")
Set sh2 = Worksheets("sheet2")
d = sh1.Range("A65536").End(xlUp).Row
MsgBox d
k = 1
For i = 1 To d
For j = 1 To sh1.Cells(i, "E"...続きを読む

Qエクセルで同じ数値を複数回いっぺんにセルコピーしたい

リース物件の料率を出す関数のために、月額をリース月数分並べなくてはなりません。

例えば10000という数字をA列に30回ずらりと下へコピーさせたいのですが、関数かそのほかの方法ありますか。30という数字は物件によって変わります。
よろしくお願いします。

Aベストアンサー

関数でやって見ます。
B2に回数を入れる。例 とりあえず0を入れる
B3に繰り返し数字 例 とりあえず0を入れる
B4に=IF(COUNTIF($B$2:B3,$B$3)>$B$2,"",$B$3) と入れて
最大入力可能行数分だけ、式を複写。(B4:B33など)
そこで
例えばB2に回数7
B3に数字1000などを入れると、瞬時に
B4:B10が1000になります。

Qエクセル関数【指定条件で繰り返し】

色々検索やら、考えてみたのですが、解決できずで質問させていただきました。

エクセル2003なのですが、やりたい内容としては

   A    B    
1    1     りんご
2    1     みかん
3    2    すいか
4    1    なし
5    3    いちご
・・・
・・・
・・・


という内容を、別シートに関数でA1から

   A  
1    りんご
2    みかん
3    すいか
4    すいか
5    なし
6    いちご
7    いちご
8    いちご
・・・
・・・
・・・

という形でできればと思っているのですが。

どなたか教えてくださると助かります!!
やはり固定の数字でないと中々難しいでしょうか?ひねっても全然頭にでてきません。。。

Aベストアンサー

シート1のC1は0でC2セルには次の式を入力し下方にオートフィルドラッグでした。

=IF(B2="","",SUM(A$2:A2))

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qある範囲のセルから任意の値を検索して、その隣のセルの値を取得するという関数はありますか?

Excelの関数について質問します。
ある範囲のせるを検索して、その隣のセルの値を取得するという関数を探しています。
なければユーザー定義で作りたいと思っています。
VLOOKUP関数では一番左端が検索されますが、
それをある範囲まで拡張して、
その右隣の値を取得できるようにしたいのです。
どうかお知恵をお貸しください。

Aベストアンサー

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場合によっては、IFをかぶせてCOUNTIFで確認した方が良いかもしれません。
 ex. =IF(COUNTIF(A1:F200,X1)=1,【上記数式】,"えらー")

ちなみに、VBAでやるならこんな感じになるかと。

動作の概要
 【検査範囲】から【検査値】を探し、
 最初にHITしたセルについて、右隣のセルの値を返す。
 ex. =Sample(X1,A1:F200)

'--------------------------↓ココカラ↓--------------------------
Function Sample(ByVal 検査値 As Variant,ByVal 検査範囲 As Range)
 For Each セル In 検査範囲
  If セル = 検査値 Then Exit For
 Next セル
 Sample = セル.Offset(0, 1)
End Function
'--------------------------↑ココマデ↑--------------------------

いずれもExcel2003で動作確認済。
以上ご参考まで。

●X1セルの値を範囲A1:F200の中から探して、その右隣のセルの値を返す

 =OFFSET(A1,SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1))-1,SUMPRODUCT(COLUMN(A1:F200)*(A1:F200=X1)))

※最初のA1はワークシートの左上隅を示すものなので、検索範囲に関わらずA1固定
※SUMPRODUCT(ROW(A1:F200)*(A1:F200=X1)) ⇒ A1:F200で値がX1と一致するセルの行番号

>その「ある範囲」の中には検索したい値が入っているセルは1つしかありません。
というのが前提です。複数のセルがHITすると関係ないセルの値が返るので、
場...続きを読む

Qエクセルでの行数・列数を指定しての一括コピーの方法

エクセルの活用テクニックについて質問させていただきます。
よろしくお願い致します。

エクセルで、A1のセルに入っている内容を、
「A列の1000行目まで一括でコピーする」なので、
行数を指定しての一括コピーというのできるのでしょうか?

また、もし可能であるとすれば、
行だけではなく列でもそういった事は可能でしょうか?

ご存知の方がいらっしゃれば、教えていただけると助かります。
よろしくお願い致します。

Aベストアンサー

質問する時は OSとか Excelのバージョンとか 大事な情報は必ず
書きましょうね。でないと回答者が困ります。

Windows前提で回答します。

ジャンプ機能か 名前ボックスに「A1:A1000」と入力して Enter
で選択できるので 既に数式が入っているなら Ctrl + D
まだ数式が入っていないなら 数式を入れて Ctrl + Enter確定

QExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。

以下のようなプログラムをVBAで作成したいと考えています。

A1のセルに値があれば、その値をB1に返す。
次にA2のセルに値があれば、その値をB2に返す。
A行に値がある一番下のセルまで同じようなことをさせたいと考えています。

VBAは初心者です。
どなかた宜しくお願い致します。

Aベストアンサー

#2さんと似たものですが・・・・参考にしてください。

Sub test001()
Dim i As Long
i = 1
Do While Cells(i, 1) <> ""
Cells(i, 2) = Cells(i, 1)
i = i + 1
Loop
End Sub

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング