No.1ベストアンサー
- 回答日時:
こんにちは
並びに規則性があるので、最初の参照位置さえ与えれば後は単純計算で求められると思います。
(例えば、参照の最初が必ずF10であるとか、あるいは目視で探して最初の位置だけどこかのセルに記入するとか)
無駄に計算量が増えますが、同じ日付を表から探して該当するデータを転記する例を以下に。
・回答の都合上同じシート内に表示しています。
・2行目の日付と10、14…行の日付はともにシリアル値であるものとします。
・日付は2000年代、データは100%を超えないものと仮定
(日付値とデータが偶然一致することがないためです)
・元データの範囲は(ひとまず)$F$10:$L$24と仮定しています。
添付図では、B3セルに
=IFERROR(INDEX($F$10:$L$24,INT(SUMPRODUCT((ROW($F$10:$L$24)*100+COLUMN($F$10:$L$24))*($F$10:$L$24=B$2))/100)+ROW(A1)-9,MOD(SUMPRODUCT((ROW($F$10:$L$24)*100+COLUMN($F$10:$L$24))*($F$10:$L$24=B$2)),100)-5),"")
の式を入力し、B4セルにフィルコピーし、更に、B3:B4セルを右方にフィルコピーしてあります。
※ もしも、データと日付とが同じ値をとる可能性があるような場合には、
「元データの行番号のMod 4が2である」という条件を加えれば、日付の部分だけを対象として検索するようになります。(式を短くするために省略してあります)
この回答へのお礼
お礼日時:2021/04/14 15:05
ご回答いただきましてありがとうございます。
こんなに長い数式が必要だとは思いもしませんでした。
そしてもっと早く質問していればよかったと後悔しております。
まだまだエクセルについては勉強が必要そうです。
No.2
- 回答日時:
No1です。
>こんなに長い数式が必要だとは思いもしませんでした。
No1にも書きましたが、日付を検索する方式なので長くなっています。
同じ方式でも、作業セルを使えれば短くすることは可能です。
B列に対応するセル位置の計算(SUMPRODUCT関数部分)を作業セルに一旦計算させておいて、それを参照しながら計算する方式にすれば、かなり簡単にできます。
あるいは、最初のセル位置との関係が分かっているなら、そのままでも規則的に計算することが可能になります。
例えば、No1のレイアウト例で、B列は必ずF10セルと対応することがあらかじめ分かっているのなら、B2セルに
=INDEX($F$10:$L$24,INT(COLUMN(G1)/7-1)*4+ROW(A2),MOD(COLUMN(G1),7)+1)
を入力して、フィルコピーすれば、大分短い式ですが、同様の結果を得ることができます。
(こちらは、検索をせずに、規則性を利用して参照先を決める方法です)
No.3
- 回答日時:
ご質問者のご希望の「INDEX関数」を活用した回答が既になされていますが、「INDIRECT関数」を用いた回答も考えられますので、お示しします。
fujillinさんの言葉を借りれば、こちは、検索をせずに、規則性を利用して参照先を決める方法です。
sheet1に元データがあり、これをsheet2に転記する前提です。
ご質問者がお示しになった画像のように、スタート位置がsheet1のF10で、これをsheet2のO2へ転記するところから始めるのだとすると、O2に
=INDIRECT("Sheet1!R"&ROWS($1:10)+INT((COLUMNS($O:O)-1)/7)*4&"C"&COLUMN($F10)+MOD(COLUMNS($O:O)-1,7),0)・・・・・・①
または、
=INDIRECT("Sheet1!R"&ROW(A10)+INT((COLUMN(A1)-1)/7)*4&"C"&COLUMN($F10)+MOD(COLUMN(A1)-1,7),0)・・・・・・②
を記述し、下方向、右方向へオートフィル等でコピーしてください。
①の数式を簡単に説明すると
(1)ROWS($1:10)の部分は元データのスタート行が10行目であると指定
(2)INT((COLUMNS($O:O)-1)/7)*4の部分は転記元と転記先との行位置を調整。「転記先が7列進むごとに転記元を4行進める」を繰り返す。
(3)COLUMN($F10)の部分は元データのスタート位置がF列目であると指定
(4)MOD(COLUMNS($O:O)-1,7)の部分は転記元と転記先との列位置を調整。0~6を繰り返す。
転記元、転記先の位置の調整は上記の説明を参考に、実際のデータに基づいて変更してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ある数値に対して、値を返す数式についてです 2 2022/09/13 22:06
- Excel(エクセル) エクセル VBA セルの結合 2 2022/09/07 11:48
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Excel(エクセル) シート参照を含む数式を連続コピー 3 2022/12/10 11:42
- Excel(エクセル) エクセルの関数について 5 2023/01/26 15:26
- Excel(エクセル) セルを参照して条件で値をコピーする 3 2023/02/08 17:45
- Visual Basic(VBA) シート間で同じ値があったらコピペ 1 2022/05/08 09:39
- Visual Basic(VBA) シート間で同じ値があったら指定範囲をコピーして貼り付け 1 2022/11/07 08:01
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) Excel 表の作成について 3 2022/06/16 12:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでの作業計算方法について
-
はがきについて。
-
エクセル 文字を増やしたい。
-
セルの内容表示が邪魔になる
-
Microsoft365に変えたのですが...
-
エクセルの計算
-
Microsoft1Officeの互換ソフト...
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
エクセル初心者です 関数の入れ...
-
Excel ピボットテーブルで日付...
-
【関数】適切な文字数の数字を...
-
LOOKUP関数を使えばいいのでし...
-
Aというブックの1というシート...
-
エクセル関数を教えてください
-
Excelのチェックボックスの使い...
-
エクセル 白黒印刷で白線を印刷...
-
時間によってファイル名が変わ...
-
WPS OFFICEでの縦書きについて
-
エクセルの条件付き書式につい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報