出産前後の痔にはご注意!

過去の質問を検索しましたが、解決できなかったので質問させていただきます。

現在EXCEL2007で、お客様との取引を、VBAで作ったフォームに入力するとデータシートに書き込まれるようにしています。
データの内容は、売上日付、得意先、運搬元、運搬先、車種、ナンバー、金額、備考・・・等の計19項目で、それが1レコードとなります。売上明細です。

そこから、得意先名・日付の期間指定でデータを絞り込み、そのデータの何項目かを別シートに作ってある請求明細書の各項目欄に反映させて、それを請求明細として印刷したいのですが・・・

ちょっとした売上ソフトのようになってしまうのですが、こういったことはEXCELで可能なのでしょうか?VBAはかじった程度で知識が浅く、可能か不可能かも判断できません。
可能だとしたら、どのような手順を踏めばよいのでしょう、どなたかお知恵を貸していただけないでしょうか、よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

>抽出したデータが“車種”であれば、請求明細シートの車種の列全体を選択して設定するということでよいのでしょうか。



車種が元データ(Sheet1)のE列にあるなら、INDEX関数の範囲を「Sheet1!E:E」にしてください。

>また、いろいろ調べてみたのですが、知識不足でSMALL以降の式の区切れが今一つ理解できませんでした。
最後の …ROW($A$2:$A$1000),1000),ROW(A1))) のあたりと、SMALLが入ってくる理由が分からないのですが、できましたらその点についてさらにお教えいただけませんでしょうか。

SMALL(IF((Sheet1!$B$2:$B$1000=$A$2)*(Sheet1!$A$2:$A$1000>=$B$2)*(Sheet1!$A$2:$A$1000<=$C$2),ROW($A$2:$A$1000),1000),ROW(A1))

IF関数部分は、(Sheet1!$B$2:$B$1000=$A$2)*(Sheet1!$A$2:$A$1000>=$B$2)*(Sheet1!$A$2:$A$1000<=$C$2)が成立する(3条件とも成り立ち1になる)場合は、その行数を、成立しない場合は1000(行範囲よりも大きい数)の配列を返しています。
この配列の中で小さい順に1から順にその行数を求めています(ROW(A1)は1になります)。

この数字がそれぞれ3つの条件が合致する行数ですので、INDEX関数でその値を求めています。
この時、該当データがない場合は1000行目のデータを参照しますので、「0」と表示されことになります。

表示したいデータが車種のように文字列データの場合は、数式の最後に「&""」を追加するのが簡単な対応です。

数字データや日付データなどを引っ張ってきたいときは、上記の「&""」の追加では対応できないので、シートのオプションでゼロ値を表示しない設定などの対応をする必要がありますが、配列数式を多用すると、シートの動きが重くなるので、たとえばIF関数などで以下のような数式にするのがお勧めです。

=IF(車種のセル="","",元の配列数式)
    • good
    • 0
この回答へのお礼

ずいぶんと時間が経ってしまい失礼しました。結局、今回はVBAで何とか作成することができたのですが、配列数式のことを学ぶことができ、とても参考になりました。
どうもありがとうございました。

お礼日時:2011/10/03 09:47

このケースならVBAで対応するよりも、関数だけで処理するほうが簡単かもしれません。



元データがSheet1で、日付がA列、得意先がB列にあり、請求書シートのA2セルに抽出したい得意先名、B2セルに開始日、C2セルに終了日が入っている場合、条件に該当するC列のデータを抽出したいなら以下の式を入力して、Ctrl+Shift+Enterで確定して配列数式にして、下方向にオートフィルします。

=INDEX(Sheet1!C:C,SMALL(IF((Sheet1!$B$2:$B$1000=$A$2)*(Sheet1!$A$2:$A$1000>=$B$2)*(Sheet1!$A$2:$A$1000<=$C$2),ROW($A$2:$A$1000),1000),ROW(A1)))

上記のl数式では、該当データがないと「0」と表示されますので、この「0」を非表示にするには、Excelのオプションで「ゼロ値のセルにゼロを表示する」のチェックを外してください。

なお、抽出する値が文字列の場合は、数式の最後に「&""」を付けることで対応することもできます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
これなら解決できそうと思い、試行錯誤してみましたが、配列数式はあまりなじみがなくうまくいきませんでした。

基本的なことで申し訳ないのですが、この式を設定する範囲なのですが・・・
抽出したデータが“車種”であれば、請求明細シートの車種の列全体を選択して設定するということで
よいのでしょうか。

また、いろいろ調べてみたのですが、知識不足でSMALL以降の式の区切れが今一つ理解できませんでした。
最後の …ROW($A$2:$A$1000),1000),ROW(A1))) のあたりと、SMALLが入ってくる理由が分からないのですが、できましたらその点についてさらにお教えいただけませんでしょうか。

面倒なお願いで申し訳ないですが、どうかよろしくお願いいたします。

お礼日時:2011/07/03 23:09

例えば元となる表がシート1に有ってA1セルに売上日付、B1セルに得意先、C1セルに運搬先などの項目名が右横に入力されてT1セルまでにあるとします。


また、データを抽出したい得意先名はシート2のA1セルに、期間の初めはB1セルに、期間の終わりはC1セルに入力してシート2にそれらの希望に沿ったデータを表示させることにします。
そこでシート1には作業列としてU列を使用しU2セルには次の式を入力して下方にオートフィルドラッグします。

=IF(AND(B2=Sheet2!$A$1,A2>=Sheet2!$B$1,A2<=Sheet2!$C$1),MAX(U$1:U1)+1,"")

その後に例えばシート2の3行目にはシート1の1行目で使われた項目名で請求書を作成するうえで必要な項目名をA3セルから右横方向に並べて入力します。

シート2のA4セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。

=IF(OR(ROW(A1)>MAX(Sheet1!$U:$U),COUNTIF(Sheet1!$1:$1,A$3)=0),"",INDEX(Sheet1!$A:$T,MATCH(ROW(A1),Sheet1!$U:$U,0),MATCH(A$3,Sheet1!$1:$1,0)))

これで請求書を作るのに必要な項目が選択した得意先と期間についてシート2に表示されますので、例えばシート3には請求書のスタイルを作ったうえでシート2からのデータを直接表示させるようにすればよいでしょう。

これら一連のことが完成していればシート2の1行目の条件を変えることで新しい得意先の請求書もできることになりますね。参考になりましたら幸いです。
    • good
    • 0
この回答へのお礼

お礼が遅くなりましたが、どうもありがとうございました。
結局、VBAで何とか作成することができました。

お礼日時:2011/10/03 09:49

1例です。

19項目のデータは、横1列に並んでいるものとします。

データシートの19項目の前(一番左側)に、ID/No.を入れます。
あとはそのIDを入力するところをつくり、VLOOKUPで反映させれば、一応のことは出来ます。

私は領収書や封筒の宛名印刷、送付案内の宛名等で同様の方法を用いております。
    • good
    • 0
この回答へのお礼

早々にありがとうございます。なるほど、VLOOKUPを使うという方法もありますね。
ありがとうございます。

お礼日時:2011/06/30 16:00

このQ&Aに関連する人気のQ&A

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

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

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

Q【エクセル】一覧から指定データ抜粋⇒請求書作成

エクセルに関して下記の通りマクロ、若しくは関数にて自動化を図りたいと思っております。

私はマクロは組んだことございませんが、必要があれば実践致しますので、下記処理に関して
ご教示いただければと存じます。

【処理内容】
①実績データA(画像参照)から灰色部分のセルを抽出
②請求書データ(画像参照)の灰色部分に参照
 ※実績データAのH3店舗名に店舗A、店舗B・・・を基準に
  請求書データのSheet分けされている店舗A、店舗Bにそのまま参照される。

皆様の知恵をどうかご教示ください。

Aベストアンサー

元となっているデータ(リスト)に空白の行がありますが、どのような意味があるのでしょうか?

行番号が特にぼけていてわからないので、適当にデータを作って回答します。添付図参照
Sheet2!A5セルに
=MATCH(B2,Sheet1!E:E,0)
Sheet2!A6セルに
=SUM(A5,MATCH($B$2,INDEX(Sheet1!E:E,Sheet2!A5+1):Sheet1!E$9999,0))
下へオートフィル(範囲は適宜変更してください)

Sheet2!B5セル
=IF(ISNA($A5),"",INDEX(Sheet1!B:B,Sheet2!$A5))
Sheet2!C5セル
=IF(ISNA($A5),"",INDEX(Sheet1!D:D,Sheet2!$A5))
Sheet2!D5セル
=IF(ISNA($A5),"",INDEX(Sheet1!F:F,Sheet2!$A5))
Sheet2!E5セル
=IF(ISNA($A5),"",INDEX(Sheet1!G:G,Sheet2!$A5))
Sheet2!B5:E5セル範囲を下へオートフィル

作業列のA列 非表示

元となっているデータ(リスト)に空白の行がありますが、どのような意味があるのでしょうか?

行番号が特にぼけていてわからないので、適当にデータを作って回答します。添付図参照
Sheet2!A5セルに
=MATCH(B2,Sheet1!E:E,0)
Sheet2!A6セルに
=SUM(A5,MATCH($B$2,INDEX(Sheet1!E:E,Sheet2!A5+1):Sheet1!E$9999,0))
下へオートフィル(範囲は適宜変更してください)

Sheet2!B5セル
=IF(ISNA($A5),"",INDEX(Sheet1!B:B,Sheet2!$A5))
Sheet2!C5セル
=IF(ISNA($A5),"",INDEX(Sheet1!D:D,Sheet2!$A5))
Sheet2!D5セル
=IF...続きを読む

QエクセルVBAを使って請求書作成ソフトを作りたい

VBAという言葉を初めて知ったばかりの初心者です。
現在エクセルで顧客名簿、顧客別売上帳、請求書用紙を作っています。
今までは手書きをPCに代えただけで、エクセルを使っている意味といえば、ナンバー登録している顧客名簿からVLOOKUPを使って請求書に顧客名、住所を自動で移す作業位です。

今回、売上が上がると売上帳、請求書に同時に転記できるようなソフトを自分で作ろうと思ったのですが、早くも行き詰まっています。

構想としては、
(1)ユーザーフォームで顧客NO.を入力すると氏名・住所データが確認のため出る。
(2)合っていれば、何月何日締、品名、数量、金額等を入力をする。
(3)登録ボタンで、別シート(ブック)に顧客別の売上帳を用意して、フォームに書き込んだ内容を転記する。
(4)請求書ボタンで、フォームの内容が既存の請求書用紙に転記される。

顧客数は900件ほどで年間稼働している顧客は70件程度です。
果たしてエクセルVBAで作ることは可能でしょうか?
またそのために参考にできるサイトがあれば教えていただけないでしょうか?

いくつかサイトを見た結果、シート内でマクロの登録をさせる方法は何となく理解できるのですが、上記のような方法になると全くお手上げです。

コードの意味などを書いてあるサイトはないでしょうか?
参考にしたいと思っても、アルファベットの羅列の内容が理解できないため、自分で理解できません。

どなたかよい勉強方法を教えてください。
宜しくお願いします。

VBAという言葉を初めて知ったばかりの初心者です。
現在エクセルで顧客名簿、顧客別売上帳、請求書用紙を作っています。
今までは手書きをPCに代えただけで、エクセルを使っている意味といえば、ナンバー登録している顧客名簿からVLOOKUPを使って請求書に顧客名、住所を自動で移す作業位です。

今回、売上が上がると売上帳、請求書に同時に転記できるようなソフトを自分で作ろうと思ったのですが、早くも行き詰まっています。

構想としては、
(1)ユーザーフォームで顧客NO.を入力すると氏名...続きを読む

Aベストアンサー

いきなりフォーム作成してVBAでは、ちょっと敷居が高いかもしれません。
以下は、アドバイスです。
>現在エクセルで顧客名簿、顧客別売上帳、請求書用紙を作っています。
ひとつのファイルに、顧客名簿、売上台帳、請求書フォーマット作成します。
顧客別売上帳ではダメです。一枚のシートに縦方向にデータが蓄積されるようにします。
売上台帳
 入力日付 顧客No 品名 数量 単価 締日・・などでしょう。

追加で、商品名一覧表
 登録番号 品名 単価 在庫 仕入先などでしょう。
更に、入力作業用のシートも準備します。

(1)、(2)ですが、入力作業用のシートで
セルに 顧客No(入力規則は設定します)いれるとVlookup関数で他表示。
他セルに 商品の登録番号入れると品名、単価がVlookup関数で表示。
数量など入力して ボタンを押すと
(3)になりますが
シートのセルの内容が売上台帳の末尾の行に追加される(VBA)

(4)は、請求書のシートに、顧客番号と締日いれると、条件にあった
一覧表が請求書のフォーマットにあったセルに表示される。
関数でも可能ですし、VBAで抽出しても出来ます。

取合えず、ここまで準備して、(3)についてシートの構成など例をあげて、再度質問
(4)についても同様に別途質問 と言った手順で質問しなおしてみてください。
色々とアドバイス出ると思います。
そこで得たコードをフォームの上に応用する事は、次のステップで宜しいのでは。

いきなりフォーム作成してVBAでは、ちょっと敷居が高いかもしれません。
以下は、アドバイスです。
>現在エクセルで顧客名簿、顧客別売上帳、請求書用紙を作っています。
ひとつのファイルに、顧客名簿、売上台帳、請求書フォーマット作成します。
顧客別売上帳ではダメです。一枚のシートに縦方向にデータが蓄積されるようにします。
売上台帳
 入力日付 顧客No 品名 数量 単価 締日・・などでしょう。

追加で、商品名一覧表
 登録番号 品名 単価 在庫 仕入先などでしょう。
更に、入力作...続きを読む

Q【エクセル】表から条件に合ったデータを別シートに順番に抽出したい

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
74 PC
75 ペン
76 モニタ



80 


【補足】
元の表(シート1)を編集することがあるので
自動的に反映されるよう、関数で作成できたらと思います。
シート2の構成上、抽出後のソートや、フィルタオプションは避けたいです。

わかりづらい文章で申し訳ございませんが
どなたかいいアドバイスがありましたら教えてください。
お礼は明日になってしまいますが、必ずご返答いたします。
よろしくお願いいたします。

 

エクセルの表である条件にあてはまる行を
別シートに順番に抽出されるような関数を教えてください。


シート1のB列にあるデータが"渋谷区"のとき
シート2のE74からE80くらいまでに
シート1のC列のデータを上から順に抽出されるようにしたいです。

【シート1】
A        B         C
1 東京都 渋谷区  PC
2東京都  港区  PC
3東京都 新宿区  マウス
4東京都 渋谷区  ペン
5東京都 渋谷区  モニタ



10

【シート2】

E
...続きを読む

Aベストアンサー

>E74に関数を入力し、その後関数をE80までドラッグすればよいのでしょうか?
いいえ。
1.
=INDEX(シート1!C1:C11,SMALL(IF(シート1!B1:B10="渋谷区",ROW(A1:A10),11),ROW(A1:A10)))&""
の数式を掲示板上でコピーします(シート名は合わせてください)
2. E74:E80セル範囲を選択します
3. 数式バーで[Ctrl]+[V]貼り付け
4. [Ctrl]+[Shift] +[Enter] でセルへの入力を確定させます

>その際、絶対参照や相対参照は必要でしょうか?
セルのコピーはしませんので不要です。
参考まで

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エクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qexcelからexcelへの差し込み印刷

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

Aベストアンサー

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。

イメージはわかるが、エクセルに差込印刷の機能はありません。
ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

...続きを読む

Qエクセルで別シートから内訳を反映させる方法。

エクセルで簡易な合計請求書を作成しました。

しかし別シートから内訳を引っ張ってくる方法がわかりません。

知恵をお貸しください。

下記の画像で上画面のシートが合計請求書のフォームになります。
下画面の別シートに売上が入力しておりその入力した売上を店舗ごとに
集計して表示されるような関数が上シートの金額部分に入っています。

上のシートの緑色部分にはマクロが登録されており押すと金額と店舗の住所が
合計請求書のフォームに反映されるようになっております。

ここで緑のボタンを押した時に住所と一緒にその合計請求書のフォームの下に金額の内訳が入るように関数を入れたいのですがそういった関数はありますでしょうか?

分かり辛い説明で申し訳ありません。

宜しくお願いいたします。

Aベストアンサー

おそらく以下の部分だけを詳細に補足説明されれば希望のデータを表示できるように思います(ほかの情報は今回の質問と関係あるのでしょうか?)

>今回作成したいのはこの合計請求書のテンプレート下に集計シート(20日〆)の中から
該当する販社拠点の内訳データーを引っ張ってきたいのです。

すなわち該当する販社拠点のデータがどのセルにあり、内訳データ(金額だけ?)がどこにあるか説明するだけでご希望の内訳が表示できると思います。
この件については、提示された条件なら、すでに回答した数式で表示できると思いますが、うまく表示できていないのでしょうか?

>=COUNTIFS('集計用シート (20日〆)'!D:D,"××株式会社",'集計用シート (20日〆)'!E:E,"○○店")

念のため確認ですが、上記の数式では特定の販社拠点だけしか利用できないシートになっているのですが、本当に上記のように会社名と店名を文字列として入力しているのでしょうか?

>出来ればC列の貼り付けマクロを押した時、住所金額と一緒に内訳を貼り付けできるようにしたいのですが…

これまでの補足説明をみても、希望の処理とシートのレイアウト(例:A列→印刷マクロとは何、20日〆シートに入力されているデータは?)がいまひとつわからないのですが、もしマクロ処理したいというなら、処理するセル位置の情報を正確に提供するだけでなく、貼り付けマクロのコードも提示したほうが解決が早いと思います。

おそらく以下の部分だけを詳細に補足説明されれば希望のデータを表示できるように思います(ほかの情報は今回の質問と関係あるのでしょうか?)

>今回作成したいのはこの合計請求書のテンプレート下に集計シート(20日〆)の中から
該当する販社拠点の内訳データーを引っ張ってきたいのです。

すなわち該当する販社拠点のデータがどのセルにあり、内訳データ(金額だけ?)がどこにあるか説明するだけでご希望の内訳が表示できると思います。
この件については、提示された条件なら、すでに回答した数式で表示で...続きを読む

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

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

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

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

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

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

Qエクセル 関数を使っての自動転記について

ネットでいくつか検索してみましたが、こちらの検索方法が悪かったためかヒットしなかったので
改めてこちらで質問させて頂きます

今回の質問内容ですが、例えばの話シートAのA列の1行目に1組、2行目に2組、3行目3組と入力してあり、それがシートBのA列にも同じく1組、2組、3組・・と同じように表示したいというものです

それだけでしたらイコールを使えば良いのですが、さらにシートAの1組、2組、3組と追加でその下の4行目に4組と入力した場合、シートBにも自動で3組の下の行に4組と入力されるようにしたいというものです
(例えばの話なので1行目の文字がりんご、2行目の文字がみかんといったように数字以外になる事ももちろんあります)
OFFSET関数やCOUNTA関数を使って、シートAの空白以外のセルを数えて、そのセル数分だけ
シートBにデータが表示されるようにしたいのですが具体的な関数の組み合わせが分かりません

不明な点御座いましたら追記にてお答えしますのでお分かりになる方がいらっしゃいましたら
ご教授の程お願いします

Aベストアンサー

>画像の方を添付しましたのでこちら見て頂ければ伝わると思います
回答No.1、またはNo.2で十分です。
文字列のときは回答No.1で良いでしょう。
Sheet1のセルで未入力のとき0が代入されるとき文字数0の文字列を代入します。
=文字列1&文字列2 → 文字列1文字列2
="ABC"&"XYZ" → "ABCXYZ"
="ABC"&"" → "ABC"
Sheet1!A1に"1組"と入力されているとき
=Sheet1!A1&"" → "1組"
=IF(Sheet1!A1="","",Sheet1!A1) → "1組"
Sheet1!A1が未入力のとき
=Sheet1!A1&"" → ""
=IF(Sheet1!A1="","",Sheet1!A1) → ""
数値と文字列の双方に対応させるときは回答No.2の方を使うことをお勧めします。
尚、Sheet1の未入力セルに対するSheet2のセルにも必要な行番号までコピペしてください。
OFFSET関数やCOUNTA関数は必要ありません。

Qエクセルで伝票に自動記載?

例えば、納品書のひな形があったとして、そこへ別のシートに打ったデータを記載したいのですが出来るでしょうか。

データとしては、
一行に日付、名前(取引先)、商品名、値段を打っていき、範囲指定するとそのデータがひな形に転記されて印刷するというような感じなんですが。
納品書としては、取引先毎で印刷するので、最低限範囲指定する場合はソートを駆けてそろえておくものとします。

たぶんデータベースソフトとかでは簡単にできるとは思うのですが、お知恵をお貸しください。

Aベストアンサー

【推奨】ワードで差し込み印刷を行う

準備:
ワードで納品書のひな型を作成する
エクセルでリストを作成する
リストには、今回印刷したい対象行に印刷したいシルシを記入しておくとよい

手順:
http://pc.nikkeibp.co.jp/article/technique/20100805/1026763/

ポイント:
URLの2ページ目の中段に表示されているエクセルのリスト画面で、「チェックマーク」を入れた行が印刷される
リスト画面がオートフィルタのようになっているのを選び、印刷したい対象行を絞り込んで差し込むことができる



【よくあるご相談】エクセルだけでやる
マクロを使い、リストの対象データをひな型シートにイチイチ転記して都度印刷させます

参考:
http://www.geocities.jp/ttak_ask/office_docu/es4_21.html

ポイント:
工夫すれば、リストを1セルずつわざわざ転記するような事をする必要はありません。
たとえばひな型シートの例えばA1セルに、リストの「何行目」を参照したいか2とか4とか数字で記入、ひな型の所定のセルにはそれぞれリストのA1行目のデータを参照してくる数式を
=INDEX(Sheet1!A:A,A1)
などのような数式で準備しておきます

あとはこのA1セルの数字を、実際に印刷したい行番号を順繰り2,3,5、7…などのようにマクロ等を使ってひとつずつ記入させます。ひな型に指定行のデータが自動的に表示されるので、印刷と併せてマクロにすべてを実行させます。

勿論実現するには、ある程度のマクロの知識が必要です。試しにここでサンプルとか作り方を教わっても、ご自分で実際のエクセル向けに手直しできなければ、役には立ちません。

【推奨】ワードで差し込み印刷を行う

準備:
ワードで納品書のひな型を作成する
エクセルでリストを作成する
リストには、今回印刷したい対象行に印刷したいシルシを記入しておくとよい

手順:
http://pc.nikkeibp.co.jp/article/technique/20100805/1026763/

ポイント:
URLの2ページ目の中段に表示されているエクセルのリスト画面で、「チェックマーク」を入れた行が印刷される
リスト画面がオートフィルタのようになっているのを選び、印刷したい対象行を絞り込んで差し込むことができる



【よくある...続きを読む


人気Q&Aランキング