質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

解決済

3回答

2238閲覧

エクセル シートの転記

yama0131

総合スコア16

0グッド

0クリップ

投稿2020/05/07 07:42

前提・実現したいこと

Excelでデータの転記を行いたいです。

下記画像の区分1に1とある行をAというシートに、区分1に2とある行をBというシートに…
といったように条件に当てはまった行だけそれぞれのシートに転記を行いたいです。

画像のシートにはデータを入力していき、そのデータが入力の都度他シートに反映されるイメージです。

出来ればマクロやVBAなどを使わず、関数のみで実現させたいです。

イメージ説明

試したこと

転記先のシートに =転記元!A1 のようにすべてのデータを転記させて、
フィルターをかけて区分が1のデータのみ集計をする。

上記でも集計自体はできるが、データ入力後に毎回フィルターをかけなおす必要がある。

if文で区分が1の時にデータを表示すると空白の行ができてしまう。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mattuwan

2020/05/07 08:29

>出来ればマクロやVBAなどを使わず、関数のみで実現させたいです。 数式のみで結果を得たいという事でしょうか? Webを検索したら、サンプルあると思いますが、 ここはプログラミング系のサイトなので、 VBAが出来る人は複雑な数式を避ける傾向があるので、 エクセルの一般機能系の掲示板で聞いた方がより良い回答が 得られると思います。
yama0131

2020/05/07 08:42

確かにそうですね。 別サイトで再度質問してみます。 ありがとうございました。
guest

回答3

0

最強の回答かどうか分かりませんが、最低限の要件は満たせているかと思います。

シートA・セルA1:1(半角数字)
シートA・セルA2:=MATCH(1, INDIRECT("sheet1!A$"&(A1+1)&":A$6"), 0)+A1
シートA・セルB2:=INDIRECT("Sheet1!D"&A!$A2)
シートA・セルC2:=INDIRECT("Sheet1!E"&A!$A2)
シートA・セルD2:=INDIRECT("Sheet1!F"&A!$A2)
シートA・セルE2:=INDIRECT("Sheet1!G"&A!$A2)
シートA・行3~行13:行2をオートフィル

簡単に内容を説明します・・・

シートA・A列では、MATCH関数を使って、該当データの存在する行番号を計算しています。
シートA・B~E列では、A列で計算した行番号を使って、シート1のデータを参照しています。
シートA・B~E列の関数にMATCH関数を埋め込んでいないのは、MATCH関数が重くて何度も書きたくないからです。

※#N/Aや取得結果なしの0表示(シートA・セルE2,E3)等の回避はご自身でお願いします。

エクセルのキャプチャ

投稿2020/05/07 15:44

編集2020/05/09 00:42
hamham-km

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

関数だとどうしても入力したデータにしたがってシートに振り分けるような動作は難しいように感じます。
入力後にマクロの実行操作が必要にななりますが、VBAで実装したほうが期待する表示結果を得やすいと思われます。
ある特定の条件でフィルタした結果を別のシートに転記(コピー)するには、AdvancedFilterを使うとよいです。

VBA

1AdvancedFilter CriteriaRange:=抽出条件, CopyToRange:=コピー先, Action:=xlFilterCopy, Unique:=False

SUMなどの集計行については、シートの上部に書き、その下の行をコピー先として貼り付けるとよいのではないでしょうか?

投稿2020/05/20 13:25

etsuhisa

総合スコア416

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

シート1に作業列を追加してこんな方法も。

シート1にCOUNTIFで「当該区分1の何番目の出現か」を表す検索用文字列を作る。
. =COUNTIF($A$2:A2,A2)&"_"&A2 (ここでは分かりやすさから文字列にしたが、1つの数値にまとめた方が速いかも)
シート1
他シートでVLOOKUP。
. =VLOOKUP(ROW()-1&"_"&$A$1,Sheet1!$B$2:$E$7,B$1,FALSE)
シート2

投稿2020/05/08 01:05

ikadzuchi

総合スコア3047

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問