質問してばかりで恐縮ですが、また行き詰ってしまいました。
皆さんのお知恵をお貸しください。
添付の画像をご覧いただくと分かりやすいと思いますが、範囲指定するのは『売価』です。
指定した範囲に含まれた売価の行項目を抜き出したいのです。
(表1)から100円以上200円未満の売価の商品を抜き出して(表2)を作りたいのです。
ここで質問した続きになります。
http://oshiete1.goo.ne.jp/qa5628538.html
よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
No.1です!
たびたびお邪魔します。
前回の数式はSheet1のデータが100行目まで対応できる数式でした。
補足を読ませていただくとデータが150個くらいあるということなので
101行目以降のデータが正確ではないと思います。
ということで・・・
前回の表はそのままで200行目まで対応できるような数式にしてみました。
Sheet1の作業列E2セルの数式を
=IF(OR(A2="",COUNTBLANK(Sheet2!$F$1:$F$2)>0),"",IF(AND(B2>=Sheet2!$F$1,B2<Sheet2!$F$2),RANK(B2,$B$2:$B$200,1)*1000+ROW(A1),""))
としてみてください。これをフィルハンドルの(+)マークでダブルクリックか、オートフィルでずぃ~~~!っと下へコピー!
そして、Sheet2のB2セルに
=IF(COUNT(Sheet1!$E$2:$E$200)<ROW(A1),"",INDEX(Sheet1!A$2:A$200,MOD(SMALL(Sheet1!$E$2:$E$200,ROW(A1)),1000)))
という数式を入れ、列方向と行方向にオートフィルでコピーしてみてください。
たぶん大丈夫だと思います。
どうも何度も失礼しました。m(__)m
何度もお返事いただき恐縮してます(_ _。)
完璧です!
一桁増やせばいいだけのことだったんですね。
Excelとは奥が深いものです。
また行き詰ったときにお世話になるかもしれませんが、よろしくお願いいたします。
ありがとうございました。
No.4
- 回答日時:
もしVBAでやりたいのなら、こういうのも簡単かと。
Sub 条件つき転記()
Const 最低値 = 100
Const 最大値 = 200
Dim 行1 As Long, 行2 As Long, 行末1 As Long, 列 As Long, 列末 As Long
' 表1の位置は("A2")分かっていると仮定します
行末1 = Range("A2").End(xlDown).Row
列末 = Range("A2").End(xlToRight).Column
' 新しい表を2行開けた下に作る
行2 = 行末1 + 3
Cells(行2, 1) = "表2"
行2 = 行2 + 1
Range("A2:D2").Copy Cells(行2, 1)
行2 = 行2 + 1
' 新しい表に条件にあう行だけを転記
For 行1 = 3 To 行末1
If Cells(行1, 2) >= 最低値 And Cells(行1, 2) <= 最大値 Then
Range(Cells(行1, 1), Cells(行1, 4)).Copy Cells(行2, 1)
行2 = 行2 + 1
End If
Next
End Sub
Sub 黄色いマーク()
Const 列 = 7 ' データのある列
Const 行頭 = 20 ' データのある行
Const 上限 = 59
Const 下限 = 50
Dim 行3 As Long, 行末3 As Long
行末3 = Cells(行頭, 列).End(xlDown).Row
Debug.Print 行末3
For 行3 = 行頭 To 行末3
If Cells(行3, 列) >= 下限 And Cells(行3, 列) <= 上限 Then
Cells(行3, 列).Interior.ColorIndex = 6
End If
Next
End Sub
色つけなどはExcelのマクロ自動記録を使えば調べられますよ。
ご回答ありがとうございます。
今回は、VBAを使ったものを希望していなかったので関数式を採用しますが、
その後上記のVBAを研究してみました。
実際やってみてかなり使えそうな感じがしました。
これをきっかけに今後はこっちの研究も進めていきます。
No.3
- 回答日時:
[フィルタオプションの設定]による求め方
(此れが最も簡単!)
1.セル E3 に式 =AND(B3>=100,B3<200) を入力
2.次の条件で[フィルタオプションの設定]を実行
抽出先 指定した範囲
リスト範囲 $A$2:$D$10
検索条件範囲 $E$11:$E$12
抽出範囲 $A$13:$D$13
ただそれだけ。ネ、簡単でしょ。
ただし「売価を昇順で」でなく、「表1」の順序のまま。
No.2
- 回答日時:
No.1です!
たびたびごめんなさい。
前回の作業列の数式では降順に表示されてしまいますので、
↓のように訂正してください。
作業列E2セルの数式は
=IF(OR(A2="",COUNTBLANK(Sheet2!$F$1:$F$2)>0),"",IF(AND(B2>=Sheet2!$F$1,B2<Sheet2!$F$2),RANK(B2,$B$2:$B$100,1)*100+ROW(A1),""))
でオートフィルで下へコピーです。
Sheet2の数式はそのままでOKのはずです。
これでSheet2には売価の昇順で表示できると思います。
どうも何度も失礼しました。m(__)m
No.1
- 回答日時:
こんばんは!
一例です。
↓の画像で説明させていただきます。
左側が元データのSheet1で右側のSheet2のF1・F2セルに
○以上・△未満 の数値を入力すればSheet2に抽出できるようにしています。
Sheet1に作業用の列を使っています。
Sheet1の作業列E2セルに
=IF(OR(A2="",COUNTBLANK(Sheet2!$F$1:$F$2)>0),"",IF(AND(B2>=Sheet2!$F$1,B2<Sheet2!$F$2),RANK(B2,$B$2:$B$100)*100+ROW(A1),""))
という数式を入れオートフィルでずぃ~~~!っと下へコピーします。
そして、Sheet2のA2セルに
=IF(COUNT(Sheet1!$E$2:$E$100)<ROW(A1),"",INDEX(Sheet1!A$2:A$100,MOD(SMALL(Sheet1!$E$2:$E$100,ROW(A1)),100)))
という数式を入れオートフィルで列方向と行方向にコピーすると
画像のような感じになります。
尚、数式はSheet1の100行目まで対応できるようにしていますが、
データ量によって範囲指定の領域はアレンジしてみてください。
以上、参考になれば幸いですが、
他に良い方法があれば読み流してくださいね。m(__)m
この回答への補足
出来た!と喜んだのですが、よく見ると範囲外の商品が混じっていました(T-T )
作業列は正しく範囲内のものが選択されているようです。
実際作るデータは商品名が150個くらいあります。
売価列の数値がアトランダムに並んでいると、範囲外のものを含んでしまうようです。
ほとんど出来上がっているのに、なんだか悔しいです・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) DSUMとSUMIFSについて。 1 2022/06/02 05:30
- Excel(エクセル) DSUM とSUMIFSについて。 6 2022/06/12 04:21
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Excel(エクセル) 単価シートから単価をエクセル関数で自動取得する方法 1 2023/07/02 22:00
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- 簿記検定・漢字検定・秘書検定 簿記2級 工業簿記 損益計算書と貸借対照表の作成 質問です。 製造間接費を5,300円分予定配賦して 1 2023/08/28 10:46
- Visual Basic(VBA) VBAで質問があります 1 2022/10/19 10:32
- Visual Basic(VBA) ChatGPTに作らせたい Excel VBA 1 2023/04/05 19:56
- 高校 日商簿記3級の勉強中なのですが 精算表が完成せず困っています。 こちらの問題の回答を教えていただきた 2 2023/03/02 09:07
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
【Microsoft Forms】回答を削除...
-
【スプレッドシート】指定の日...
-
マイクロソフト 一時使用コード...
-
VLOOKUP関数について
-
Microsoft Formsの「個人情報や...
-
英数字のみ全角から半角に変換
-
Microsoft Formsで「応答」から...
-
1つのPCに「Excel 2010」「Exc...
-
vb.net オブジェクト指向につい...
-
会社におけるOfficeライセンス...
-
Office 2021 Professional Plus...
-
エクセルで英文字に入れた下線...
-
マクロ自動コピペ 貼り付ける場...
-
会社PCのメールが更新されない
-
Outlookでの時間指定送信機能に...
-
エクセルで串刺ししたシートの...
-
マイクロソフト オフィスについて
-
Excel テーブル内の空白行の削除
-
エクセルのシフト表を簡単にGoo...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
マイクロソフト 一時使用コード...
-
英数字のみ全角から半角に変換
-
Office2021を別のPCにインスト...
-
Microsoft Formsの「個人情報や...
-
officeビジネス型のワードやエ...
-
会社PCのメールが更新されない
-
【スプレッドシート】指定の日...
-
Microsoft Officeを2台目のPCに...
-
何このステータスバー
-
2つのシートの一致する行のセ...
-
会社のTeamsのことで相談です。...
-
エクセルにリンクされるのをし...
-
Windows 11で、IME言語バー(IM...
-
office2010とoffice365の共存で...
-
Microsoftのパソコンです。 エ...
-
エクセルでXLOOKUP関数...
-
Excel関数について質問ですm(__)m
-
VBA
-
自分の専門分野の仕事。初見で...
おすすめ情報