<図1>
A B
1 あいう
2 えお
3 かきく
4 けこ
5 さしす
<図2>各行の空白セルを詰めて表示させる
A B
10 あいう けこ
11 かきく
12 さしす
13 えお
以前の投稿で以下のようなものはあったのですが、
上記のようにしたい場合、どの様な関数を組めばいいのでしょうか?
------以下,参考にした例------
<図1>
A B
1 あいう
2 えお
3 かきく
4 けこ
5 さしす
<図2>各行の空白セルを詰めて表示させる
A B
10 あいう えお
11 かきく けこ
12 さしす
13
14
【関数】
A10: =IF(ROW(A1)>COUNTA(A$1:A$5),"",INDEX(A$1:A$5,SMALL(IF(A$1:A$5<>"",ROW($A$1:$A$5),""),ROW(A1))))
A 回答 (12件中1~10件)
- 最新から表示
- 回答順に表示
No.12
- 回答日時:
お恥ずかしい限りですね
もう解決しているとされる下段の式を書いていましたね、
取り急ぎ
上段用の式を5行表示ではありますが作りましたので
お確かめください。
=OFFSET($A$1,MOD(10-LARGE(INDEX(($A$1:$B$5<>"")*(11-ROW($A$1:$B$5))-($A$1:$B$5<>"")*(COLUMN($A$1:$B$5)-1)*5,,),ROW(A1)+(COLUMN(A1)-1)*5),5),TRUNC((10-LARGE(INDEX(($A$1:$B$5<>"")*(11-ROW($A$1:$B$5))-($A$1:$B$5<>"")*(COLUMN($A$1:$B$5)-1)*5,,),ROW(A1)+(COLUMN(A1)-1)*5))/5),1,1)
A10に此を入力、
A10:B14にフィルなどでコピーしてください
エラー処理はしていませんが
イレギュラー時はC1を参照するだけですから
そもそもC1がヌルならばエラー処理も要らない…
と、いうことで 敢えてしていません。
長くなってしまいましたが致し方ありませんね
ところで
お示し頂いた式
=IF(ROW(A1)>COUNTA(A$1:A$5),"",INDEX(A$1:A$5,SMALL(IF(A$1:A$5<>"",ROW($A$1:$A$5),""),ROW(A1))))
は、私の環境Excel2003では、動作確認が取れませんでした。
大体IF構文の使い方がめちゃくちゃなので、
はっと見で「ダメダメだ」と解る位の
低い次元の話しなのですが、
確認してみたらやはり駄目ですね。
恐らく2007でも駄目でしょう…
式中に配列数式のIFを使うのは本当に難しいレベル、
私自身避けて通る物ですから、
ね。
No.11
- 回答日時:
済みません、式間違えていました。
お詫びの上訂正します。
誤記
=IF(SUMPRODUCT((A$1:A$5<>"")+0)<ROW(A1),"",OFFSET(A$1,LARGE(INDEX((A$1:A$5<>""),,)*(6-ROW(A$1:A$5)),A1)-1,0,1,1))
正記
=IF(SUMPRODUCT((A$1:A$5<>"")+0)<ROW(A1),"",OFFSET(A$1,6-LARGE(INDEX((A$1:A$5<>"")*(6-ROW(A$1:A$5)),,),ROW(A1))-1,0,1,1))
A10に記入後
フィルなどでA10:B15にコピーしてください。
失礼しました。
No.10
- 回答日時:
最初の列では4行以下になってもよいものとして答えてましたが、4行にとどめたいとのことですね。
その場合にはC1セルに次の式を入力して、式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。
その後に式をD1セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(COLUMN(A1)=1,IF(ROW(A1)>COUNTA($A$1:$A$5)+COUNTA($B$1:$B$5),"",IF(ROW(A1)<=COUNTA($A$1:$A$5),INDEX($A$1:$A$5,SMALL(IF($A$1:$A$5<>"",ROW($A$1:$A$5),""),ROW(A1))),IF(AND(ROW(A1)<=4,ROW(A1)<=COUNTA($A$1:$A$5)+COUNTA($B$1:$B$5)),INDEX($B$1:$B$5,SMALL(IF($B$1:$B$5<>"",ROW($B$1:$B$5),""),ROW(A1)-COUNTA($A$1:$A$5))),""))),IF(ROW(A1)<=COUNTA($A$1:$A$5)+COUNTA($B$1:$B$5)-4,INDEX($B$1:$B$5,SMALL(IF($B$1:$B$5<>"",ROW($B$1:$B$5),""),ROW(A1))),""))
No.8
- 回答日時:
=IF(SUMPRODUCT((A$1:A$5<>"")+0)<ROW(A1),"",OFFSET(A$1,LARGE(INDEX((A$1:A$5<>""),,)*(6-ROW(A$1:A$5)),A1)-1,0,1,1))
これで行けると思うのですけど…
如何でしょうか?
お役に立てていたなら幸いです。
以下お遊び
Option Base 1
Sub 抽出ベタ方()
Dim カウンタ3 As String, カウンタ2 As Long, カウンタ1 As Long, 目 As Range, レンジ2 As Range, レンジ1 As Range, 字(1 To 5, 1 To 2) As String, 本頁 As WorkSheets
Set 本頁 = ThisWorkBook.ActiveSheets
With 本頁
Set レンジ1 = .Range("A1:B5")
Set レンジ2 = .Range("A10:B15")
End With
For カウンタ1 = 1 To 2
カウンタ3 = 0
For カウンタ2 = 1 To 5
If レンジ1.Cells(カウンタ2, カウンタ1) <> "" _
Then
カウンタ3 = カウンタ3 + 1
Let 字(カウンタ3, カウンタ1) = CStr(レンジ1.Cells(カウンタ2, カウンタ1).Value)
End If
Next カウンタ2
Next カウンタ1
For カウンタ1 = 1 To 2
For カウンタ2 = 1 To 5
レンジ2.Cells(カウンタ2, カウンタ1).Value = 字(カウンタ2, カウンタ1)
Next カウンタ2
Next カウンタ1
End Sub
Sub 抽出()
Dim レンジ1, As Range, レンジ2 As Range, カウンタ2 As Long, カウンタ1 As Long, 本頁 As WorkSheets
Set 本頁 = ThisWorkBooks.ActiveSheets
For カウンタ1 = 1 To 2
カウンタ2 = 0
Set レンジ2 = 本頁.Range("A1:A5").Offset(0,カウンタ1 - 1).SpecialCells(xlCellTypeFormulas)
If Not レンジ2 Is Nothing _
Then
For Each レンジ1 In レンジ2
カウンタ2 = カウンタ2 +1
Set 本頁.Range("A10").Cells(カウンタ2, カウンタ1) = レンジ1
Next レンジ1
End if
Next カウンタ1
End Sub
No.7
- 回答日時:
こんばんは!
VBAでやれば一発でできそうですが・・・
関数での方法をご希望だというコトですので、
↓の画像のようにD・E列を作業用の列とします。
D1セルに
=IF(A1="","",COLUMN(A1)*100+ROW())
という数式を入れE5セルまでオートフィルでコピーしておきます。
そしてA10セルに
=IF(COUNT($D$1:$E$5)<ROW(A1)+(COLUMN(A1)-1)*4,"",INDEX($A$1:$B$5,MOD(SMALL($D$1:$E$5,ROW(A1)+(COLUMN(A1)-1)*4),100),INT(SMALL($D$1:$E$5,ROW(A1)+(COLUMN(A1)-1)*4)/100)))
という数式を入れ、列・行方向にオートフィルでコピーで画像のような感じになります。m(_ _)m
No.6
- 回答日時:
回答No2,3,4です。
C1セルには次の式を入力して、式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。
その後にその式を下方にドラッグコピーします。
=IF(ROW(A1)>COUNTA(A$1:A$5)+COUNTA(B$1:B$5),"",IF(ROW(A1)<=COUNTA(A$1:A$5),INDEX(A$1:A$5,SMALL(IF(A$1:A$5<>"",ROW($A$1:$A$5),""),ROW(A1))), IF(ROW(A1)<=COUNTA(A$1:A$5)+COUNTA(B$1:B$5),INDEX(B$1:B$5,SMALL(IF(B$1:B$5<>"",ROW(B$1:B$5),""),ROW(A1)-COUNTA(A$1:A$5))),"")))
回答本当にありがとうございます。
以下で試したところ
A B
1 あいう
2 えお
3 かきく
4 けこ
5 さしす
A B
1 あいう えお
2 かきく あいう
3 けこ かきく
4 さしす けこ
5 えお さしす
となってしまいます。
No.5
- 回答日時:
そんなややこしいのを関数でやったら、検証もメンテナンスも大変です。
マクロでやってみました。
Sub Sample()
Dim rRange As Range
Set rRange = Range("A1:B5") '対象範囲を設定
nStartRow = 10 '貼り付け開始行
nCount = 4 '何行まで貼り付けるか
nDatRow = nStartRow
nDatCol = 1
For i = 1 To rRange(rRange.Count).Column
For j = 1 To rRange(rRange.Count).Row
If rRange(j, i) <> "" Then
Cells(nDatRow, nDatCol) = rRange(j, i)
nDatRow = nDatRow + 1
If nDatRow >= (nStartRow + nCount) Then
nDatRow = nStartRow
nDatCol = nDatCol + 1
End If
End If
Next j
Next i
End Sub
No.4
- 回答日時:
回答No2です。
A列やB列の10行以内にデータが入力されているのでしたらC1セルには次の式を入力しD1セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。
=IF(ROW(A1)>4,"",IF(COLUMN(A1)=1,IF(ROW(A1)<=COUNTIF($A$1:$A$10,"*?"),INDEX($A$1:$A$10,ROW(A1)*2-1),INDEX($B$1:$B$10,(ROW(A1)-COUNTIF($A$1:$A$10,"*?"))*2)), IF(COLUMN(A1)=2, IF(ROW(A1)<=COUNTIF($A$1:$A$10,"*?")-4,INDEX($A$1:$A$10,8+ROW(A1)*2-1), IF(AND(ROW(A1)>COUNTIF($A$1:$A$10,"*?")-4,ROW(A1)<=COUNTIF($A$1:$A$10,"*?")-4+COUNTIF($B$1:$B$10,"*?")),INDEX($B$1:$B$10,(ROW(A1)-(COUNTIF($A$1:$A$10,"*?")-4))*2),"")))))
前回回答2の式でうまくいかなかったのはA列やB列でお示しのデータ以外に下の行の方にデータが入力されていたことによるものでしょう。
何度も回答を入れてくださり本当にありがとうございます。
A B
1 あいう
2 えお
3 かきく
4 けこ
5 さしす
で試したところ
(これ以下のセルには一切にデータはありません。)
以下の様になってしまいうまくいきません。
A B
1 あいう えお
2 かきく
3 さしす
4 0
5
No.3
- 回答日時:
回答No2です。
こちらでは式を入力して正しく表示されることを確認した上で答えています。ご自分で直接セルそれぞれにデータを入力して試験してみてください。A列やB列にはお示しのデータ以外にはないことを確認してください。C1セルには次の式を入力します。
=IF(ROW(A1)>4,"",IF(COLUMN(A1)=1,IF(ROW(A1)<=COUNTIF($A:$A,"*?"),INDEX($A:$A,ROW(A1)*2-1),INDEX($B:$B,(ROW(A1)-COUNTIF($A:$A,"*?"))*2)), IF(COLUMN(A1)=2, IF(ROW(A1)<=COUNTIF($A:$A,"*?")-4,INDEX($A:$A,8+ROW(A1)*2-1), IF(AND(ROW(A1)>COUNTIF($A:$A,"*?")-4,ROW(A1)<=COUNTIF($A:$A,"*?")-4+COUNTIF($B:$B,"*?")),INDEX($B:$B,(ROW(A1)-(COUNTIF($A:$A,"*?")-4))*2),"")))))
再度回答ありがとうございます。
確かに
A B
1 あいう
2 えお
3 かきく
4 けこ
5 さしす
の場合はうまくいきます。
説明が不足し申し訳ございません。
空セルの位置は可変となります。
つまり
A B
1 あいう
2 えお
3 かきく
4 けこ
5 さしす
の場合は
A B
1 あいう
2 かきく
3 けこ
4 さしす
5 えお
の様に空セルの位置関係なく詰めて表示したいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) IFERROR、SMALL関数について 2 2022/08/22 23:40
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Excel(エクセル) Excel関数式で該当月日のみ表示し、それ以外の月日を空白にしたい。 1 2022/07/17 11:59
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
- Excel(エクセル) エクセル 行番号を自動で振るには 3 2022/08/08 20:19
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンを買い替える際、前の...
-
Microsoft Officeを2台目のPCに...
-
office2019 のoutlookは2025年1...
-
英数字のみ全角から半角に変換
-
Office 2021 Professional Plus...
-
office365って抵抗感ないですか?
-
Microsoft 365 の支払いが反映...
-
漫画喫茶のローカルフォルダに...
-
Excel テーブル内の空白行の削除
-
大学のレポート A4で1枚レポー...
-
Office2021を別のPCにインスト...
-
Excel VBA 日程表からスケジュ...
-
マクロ自動コピペ 貼り付ける場...
-
Outlook で宛先が複数の場合の人数
-
エクセルでXLOOKUP関数...
-
会社PCのメールが更新されない
-
特定の語句を含むワードファイ...
-
Excel 小生ど素人です、数式を...
-
Officeを開くたびの「再起動メ...
-
http://oshiete.goo.ne.jp/qa/1...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
英数字のみ全角から半角に変換
-
Microsoft Officeを2台目のPCに...
-
office2019 のoutlookは2025年1...
-
outlookのメールが固まってしま...
-
【Excel VBA】PDFを作成して,...
-
大学のレポート A4で1枚レポー...
-
エクセルでXLOOKUP関数...
-
マクロ自動コピペ 貼り付ける場...
-
会社PCのメールが更新されない
-
Excel 日付を比較したら、同じ...
-
Office 2021 Professional Plus...
-
Excel 小生ど素人です、数式を...
-
officeソフトについて教えてく...
-
Microsoft Formsの「個人情報や...
-
マクロ1があります。 A1のセル...
-
Excel テーブル内の空白行の削除
-
特定の語句を含むワードファイ...
-
Outlook で宛先が複数の場合の人数
-
office365って抵抗感ないですか?
-
teams設定教えて下さい。 ①ビデ...
おすすめ情報