以下のことを実現したいのですが、良いやり方があれば教えていただきたいのですが。
シート1(在庫一覧表)    シート2(日報)
|A|あ|2|         |A|う|2|
|A|う|2|         |B|こ|3|
|B|こ|3|    ←    |A|あ|2|
|C|さ|1|         |B|こ|3|
                  |C|さ|1|
                  |A|あ|2|
シート2に日報として、毎日作業したものを入力していきます。ここでいう、アルファベット、ひらがな、数字の、3項目の組み合わせで、1つの品物になります。
そのひとつの組み合わせを、重複なく、シート1に一覧として出したいのですが。
いつも決まった品物を作業する仕事ではないので、品物の数は限りなく増えていきます。
※新しい始めての品物だとしても、日報に入力すれば、自動的にシート1に追加されるように・・・
アクセスを使えば良いのかもしれないのですが、パソコンにも不慣れな人も多数使用することになるので、シートを切り替えるだけで全体の流れがわかるようにしたいのです。
いろいろ調べたのですが、ぴったりのやり方が見つからなかったため、質問します。どうかよろしくお願いします。

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

A 回答 (6件)

PCが復旧しました。

補足について、少しコメントを・・・・

補足の内容からするとExcel向きの処理ではないと思います。1対100位でAccess等のデータベースソフトを使用すべきでしょう。
入力などは専用のフォームを作れば対応できますし、必要なデータを抽出したり一覧表なども簡単に作成できます。それを目的にしたソフトですから当然でしょう。

近ごろは、Accessでデータ管理、抽出等を行い、Excelで製表したりユーザーにデータとして提供しています。これを全てExcelで行うことも可能でしょうがデータ管理の面ではExcelではやりたくないのが実感です。入出力、抽出等はかなりの作りこみが必要になってしまいます。

Excelのデメリットとしては、入出力の作りこみが必要だったり、ソートやマージの問題、普通は計算(四則演算やVlookUpなど)をデータ単位(行単位)に作る必要があることですね。入力の時に過去のデータがそのBookにあったりしてExcel自体が重くなり操作性も悪くなってきます。

データベースの解説本とかには最初に在庫管理があったりしませんか?最初は簡単な例からはじめていけば、お望みのものが完成できると思います。

参考に書いてみました。がんばって下さい。
    • good
    • 0
この回答へのお礼

遅くなりましたが、本当に何度もありがとうございます。
やっぱりそうですか~。今でも、予測して必要な大きさの表をまず作ってみたのですが、かなり重くて、一つの再計算をするのに3分ほどかかってしまいます。
とりあえず今は、これで、手動計算にしてしのごうと思います。
その間に、アクセス勉強して、がんばって作りたいと思います。
本当にありがとうございました!!!

お礼日時:2001/11/19 08:46

ようやく何がやりたいのかわかってきたような気がします。


|商品コード1|商品コード2|商品コード3|…|数量|…
|文字列   |文字列   |文字列   |…|数値|…
つまり、上のような見出しのリストがあって、商品コード1・2・3をまとめて検索キーにして、キーが重複することなく数量の合計を得たいということですよね?
それならば、フィルタオプションよりもピボットテーブルを使った方がいいですね。

まず、Sheet2で[データ]→[ピボットテーブルとピボットグラフ レポート]を選択。ピボットテーブル/ピボットグラフウィザードが開きます。
「Excelのリスト/データベース」「ピボットテーブル」にチェックが入っていることを確認し[次へ]をクリック。
Sheet2の日報のデータの入っている部分を指定して[次へ]をクリック。
(データの入っている範囲が自動的に選択されるはず)
ピボットテーブルの作成先をSheet1!$A$1と選択して[完了]をクリック。
Sheet1にピボットテーブルが作成され、ピボットテーブルツールバーが表示されます。
ピボットテーブルツールバーから商品コード1・商品コード2・商品コード3を順に行のフィールドへドラッグします。
数量をピボットテーブルの左上のフィールドへドラッグします。
すると、小計を含めたピボットテーブルが自動的に出力されますから、小計の部分を右クリックして[表示しない]を選択します。
下記のような表が出来上がったはずです。(表は等幅フォントで見て下さい)
┌────────────────────┬───────┐
│合計 : 数量 │ │
├──────┬──────┬──────┼───────┤
│商品コード1│商品コード2│商品コード3│ 計 │
├──────┼──────┼──────┼───────┤
│A │あ │2 │Aあ2の数量合計│
│ ├──────┼──────┼───────┤
│ │う │2 │Aう2の数量合計│
├──────┼──────┼──────┼───────┤
│B │こ │3 │Bこ3の数量合計│
├──────┼──────┼──────┼───────┤
│C │さ │1 │Cさ1の数量合計│
├──────┴──────┴──────┼───────┤
│総計 │総計 │
└────────────────────┴───────┘
数量ではなくデータの個数が必要であれば、左上「合計:数量」の部分をダブルクリックして、ピボットテーブルフィールドから「データの個数」を選択。すると、表は下記のようになります。
┌────────────────────┬────────┐
│データの個数 : 数量 │ │
├──────┬──────┬──────┼────────┤
│商品コード1│商品コード2│商品コード3│ 計 │
├──────┼──────┼──────┼────────┤
│A │あ │2 │Aあ2のデータ個数│
│ ├──────┼──────┼────────┤
│ │う │2 │Aう2のデータ個数│
├──────┼──────┼──────┼────────┤
│B │こ │3 │Bこ3のデータ個数│
├──────┼──────┼──────┼────────┤
│C │さ │1 │Cさ1のデータ個数│
├──────┴──────┴──────┼────────┤
│総計 │総計 │
└────────────────────┴────────┘
マクロで自動化も出来ますが、わたしもVBAを勉強中の身で、いまいち上手く組めないので、それは他の方におまかせします。

この回答への補足

あと、具体的な方法の質問ではないのですが、もし、このような日々いろんなものが入庫し、(しかし、いつも違うものとも限定できないところが微妙)すぐに在庫がなくなるものもあればず~っとあるものもある。取引先、品物も限定されていないので品物にIDも付けられず・・・という在庫管理を、”詳しく知らない人”でも日報を入力したり、簡単に見たい品物のデータを閲覧したりということはアクセスの方が向いているのかということが知りたいのですが。(もちろん、がんばって設計すれば・・という前提ですが)
使い方がわがままなので、使う人が勉強してできるようになるというのが一番いいとはわかっているのですが、教えていただけたら・・・と思います。

補足日時:2001/11/16 19:31
    • good
    • 0
この回答へのお礼

ありがとうございます!!
今までほとんどピボットテーブル使ったことがなかったのですが、こういう風に使えるんですね。このやり方を自動化できればこれもすごく見やすい表になると思いました。
しかし、自動化・・・今の私もできないので、マクロの記録で試してみようかと思いますが・・・。

お礼日時:2001/11/16 19:05

補足のとおりにしてみました。


シート3を作業用シートにして最終的にシート1にデータを移しています。
シートの構造が分かりませんので、シート1とシート2の対象3列の位置をモジュールに登録してください。最初の4行です。
それとシート名1,2,3は実際のシート名にしてください。Set の3行です。

マクロは、メニューから、ツール→マクロ→Visual Basic Editor でVBE画面に移り、
そのメニューから挿入→標準モジュールで標準モジュールを挿入し下記マクロを貼り付けます。

タイミング?はシート1に抽出したい時ですが・・・(質問の意味が分かっていない?)
頑張ってください。
なお、今から帰宅しますが自宅PCの調子が悪いし、旅行に出かけますのでしばらく連絡できません。ご了承ください。

Public Sub FilterCopy()
  Const s2Col1 = "F" '日報 対象3列の最初の列
  Const s2Col3 = "H" '日報 対象3列の最後の列
  Const s1Col1 = "B" '在庫管理表 対象3列の最初の列
  Const s1Col3 = "D" '在庫管理表 対象3列の最後の列

  Dim ws1 As Worksheet 'シート1
  Dim ws2 As Worksheet 'シート2
  Dim ws3 As Worksheet 'シート3
  Dim rowMax As Long 'シート2の使用行数
    Set ws1 = Worksheets("Sheet1") '在庫管理表 B:Dが対象3列としてあります
    Set ws2 = Worksheets("Sheet2") '日報 F:Hが対象3列としてあります
    Set ws3 = Worksheets("Sheet3") 'ワーク

  'シート2のデータ範囲をつかむ。シート3をクリアする
  ws2.Activate: Range(s2Col1 & "1").Select
    rowMax = Range(s2Col1 & "65536").End(xlUp).Row
    ws3.Cells.Clear

  'フィルタをかけて、結果をシート3にコピーする
  ws2.Activate: Range(s2Col1 & "1").Select
  ws2.Range(s2Col1 & ":" & s2Col3).AdvancedFilter xlFilterInPlace, , , True
  ws2.Range(s2Col1 & "1:" & s2Col3 & rowMax).SpecialCells(xlCellTypeVisible).Copy
  ws3.Activate: Range("A1").Select: ActiveSheet.Paste

  'シート3をソートする
  Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
    , Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:=xlGuess

  'フィルタを解除する
  ws2.ShowAllData

  'シート1の対象3列をクリアする
  ws1.Range(s1Col1 & "2" & ":" & s1Col3 & Range(s1Col3 & "2").End(xlDown).Row).ClearContents

  'シート3のデータのみコピーする
  ws3.Activate
  ActiveCell.CurrentRegion.Select
  Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1, 3).Select
  Selection.Copy 'シート3のデータ部分だけコピー

  'シート1に貼り付ける
  ws1.Activate
  Range(s1Col1 & "2").Select: ActiveSheet.Paste

End Sub

この回答への補足

あと、具体的な方法の質問ではないのですが、もし、このような日々いろんなものが入庫し、(しかし、いつも違うものとも限定できないところが微妙)すぐに在庫がなくなるものもあればず~っとあるものもある。取引先、品物も限定されていないので品物にIDも付けられず・・・という在庫管理を、”詳しく知らない人”でも日報を入力したり、簡単に見たい品物のデータを閲覧したりということはアクセスの方が向いているのかということが知りたいのですが。(もちろん、がんばって設計すれば・・という前提ですが)
使い方がわがままなので、使う人が勉強してできるようになるというのが一番いいとはわかっているのですが、教えていただけたらと思います。

補足日時:2001/11/16 19:05
    • good
    • 0
この回答へのお礼

ありがとうございます!!
うまくできました。とてもうれしいです。
とても丁寧に書いていただき、本当にありがとうございます。勉強になりました。
私の作りたい表はもしかしたら、根本から改善すべき点があるのかもしれませんが、とりあえず、今、少しでも仕事が効率よくなる表ができました。
とても困っていたので助かりました。

お礼日時:2001/11/16 18:54

質問の意味をはかりかねています。

前半ではシートから絞り込むように思えますが、後半では過去のデータに日報のデータを追加するようにも思えます。
とりあえず、シート2のデータを重複なしにシート1にかき出すモジュールを作ってみました。追加も応用すれば簡単でしょう。
データはシート2のA~C列にあり、1行目には表題があると仮定しています。
ご参考に。

標準モジュールに貼り付けます。(Excel97で作成しました)

Public Sub FilterCopy()
  Dim ws1 As Worksheet 'シート1
  Dim ws2 As Worksheet 'シート2
  Dim rowMax As Long 'シート2の使用行数
    Set ws1 = Worksheets("Sheet1")
    Set ws2 = Worksheets("Sheet2")

  'シート2のデータ範囲をつかむ。シート1をクリアする
  ws2.Activate: Range("A1").Select
    rowMax = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
    ws1.Columns("A:C").ClearContents 'シート1のデータを消去

  'フィルタをかけて、結果をシート1にコピーする
  ws2.Activate: Range("A1").Select
  ws2.Range("A:C").AdvancedFilter xlFilterInPlace, , , True
  ws2.Range("A1:C" & rowMax).SpecialCells(xlCellTypeVisible).Copy
  ws1.Activate: Range("A1").Select: ActiveSheet.Paste

  'ソートする
  Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Key2:=Range("B2") _
    , Order2:=xlAscending, Key3:=Range("C2"), Order3:=xlAscending, Header:=xlGuess
  
  'フィルタを解除する
  ws2.ShowAllData
  ws1.Range("A2").Select
End Sub

この回答への補足

すみません、自分でもうまく説明できていないと思ったのですが・・・。
日報を入力する前に、在庫管理表に、新規の品物を入力していくとすると、抽出しなくても良いのですが、複数の人が入力する可能性(そうすると、すぐにはそれが新規のものかどうかわからない)があるのと、もちろん、ある程度操作できる人なら、一度入力したものかどうか調べられるのですができない人もいるということで、ただ日報に作業したものをどんどん入れていけば、一枚目の在庫管理表シートに重複のない3項目の組み合わせが出せれば、それを検索条件にして、その時点での総在庫数が出せるかと思ったのですが・・・。

こういうものを作るにはVBAできないとな~と思い、まだはじめたばかりでうまく応用できず、もし、やっていただけるならば、少しお願いしたいことがあるのですが・・・。
記述してある内容がぼんやりとしかつかめていないので、もうそのようになっているのかもしれないのですが、
 ※ 3項目の列のみフィルタをかけて、抽出で、在庫管理シートの3列のみに貼りつけしてもらいたいのですが。(他のセルにはその抽出されたものを検索条件にして日報の出荷数、入荷数などを集計するように作っているのですが)
 ※ あと、このマクロの設定のしかた(どこに設定して、どのタイミングで使えるのか)を教えていただけませんか?
もっと勉強した上で使うのが良いとは思うのですが、会社の都合上、早く完成しないと・・・という状況です。
パソコンの導入も始めたばかり、一定の決まった商品を扱うだけですまない(単発の仕事多し=種類多し)人員も少ない小さな会社なので、既製のものが使えなく困っていました。勉強したてでつたない質問ですが、よろしくお願いします。

補足日時:2001/11/15 18:53
    • good
    • 0

日報のシート(シート名:日報)の一番左に列挿入します。


1行目が見出しだとして、A列2行目に以下の数式を入れます
=B2 & C2 & D2
この場合、A2の表示結果は“Aう2”
という形となります。
これを全ての行にコピーします

在庫一覧表(シート名:在庫一覧表)の方も同様に一番左側に列挿入し
=B2 & C2 & D2
を全ての行にコピーします

ここで票の右側E列に個数を表示することとし、E2式は
=COUNTIF(日報!A:A,A2)
これを全ての行にコピーすれば各商品の在庫が自動計算されます。

また、在庫一覧表に銘柄を登録し忘れている可能性がありますからこれをチエックするために、空いているセルに
=IF(COUNTA(日報!A:A)=SUM(在庫一覧表!E:E),”OK”,”銘柄の未登録があります”)
を入れておくとチエックになると思います。

短時間で作るならばこの方法でしょうか?

この回答への補足

そうですね~。途中までの、&を使ってそれぞれの在庫を計算するまではなんとかできていたのですが(このことで1週間ほど考えた末)、その後、考えすぎて、どうしても自動的に新しいものを認識して登録させなければ!!と頭が煮詰まっていたのですが、未登録のものがありますよ!と、知らせるという手もあったのですね・・・
最後に、短時間で作るならということですが、手間をかければ、まだもう少し何とかなるでしょうか?エクセルの範囲でも・・・

補足日時:2001/11/15 16:48
    • good
    • 0

同じシート内であればフィルタオプションを使えばできますが、そのやり方で構わないでしょうか?

この回答への補足

ありがとうございます。
同一シート内でもかまわないのですが、この方法を使うとすると、フィルタオプションの設定と、その作業をマクロに記録したりできれば、エクセルをわからない人でも使えるのでしょうか?
すいません、あまりフィルタオプションを使ったことがないので、とんちんかんな補足になってるでしょうか?

補足日時:2001/11/15 16:45
    • good
    • 0

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

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

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

QAccess2000のフォームでのフォームのIMEが、2度目以降変更してしまう。

アクセス初心者です。
Accsss2000のフォームでのデータ入力を楽におこなうために、例えば名前ならばテキストボックスのプロパティシートのその他タブから、IME入力モードをオンにしてかつIME変換モードを人名/地名に変更したのですが、1回目の入力はIMEが全角・人名モードになるのですが、2度目以降は半角カタカナ・人名/地名モードになってしまいます。全角ではありません。なぜでしょうか?
また上のタブにIME入力モード保持というのもありますが、どういう時に利用すればよいのでしょうか?

Aベストアンサー

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、「ひらがな/全角カタカナ/半角英数」などのモードを特に指定
 しない場合に使用します。そのため、特定モードで固定したい場合は、
 それに合わせた設定値(ここでは「ひらがな」)を指定する必要がある、
 ということです)


> 上のタブにIME入力モード保持というのもありますが、どういう時に
> 利用すればよいのでしょうか?

私自身はこの設定は使用していないのですが・・・(汗)

例えば、取引情報を入力する場合、『企業略称』テキストボックスには
「アルファベットの略称」や「漢字の略称」、「カタカナの略称」がそれぞれ
連続することになります。
このとき、同テキストボックスの『IME 入力モード』を「ひらがな」などに固定
してしまうと、アルファベットやカタカナの略称のデータを入力する際には
毎回手動で「全角カタカナ」や「半角英数」に切り替える・・・という使い方を
する方もいる可能性があります。
『IME 入力モード保持』は、恐らくそういう場合を想定した機能ではないかと
思います。
(もちろん、ひらがなからの変換で全角カタカナや半角英数に変換するように
 している人の場合は、切替は不要ですので、この設定は使用しなくても
 かまわないことになります)

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、...続きを読む

QExcelのVlookupについて質問です シート1 ▽ A B ⑴ ⑵ シート2 ▽ A B C

ExcelのVlookupについて質問です

シート1
▽ A B



シート2
▽ A B C D E F
⑴ 1 あ 4 か 7 さ
⑵ 2 い 5 き 8 し
⑶ 3 う 6 く 9 す

というふたつの表から検索したいのですが、何か方法はあるのでしょうか。
シート1のA⑴に「5」と打てばA⑵に「き」と、「7」と打てば「さ」と検索するようにしたいです。
列は2列でないと検索できないのでしょうか。
よろしくお願いします。

Aベストアンサー

こんにちは!

VLOOKUP関数ではないのですが、A2セルに
=IFERROR(INDEX(Sheet2!A1:Z100,SUMPRODUCT((Sheet2!A1:Z100=A1)*ROW(A1:A100)),SUMPRODUCT((Sheet2!A1:Z100=A1)*COLUMN(A1:Z1))+1),"")

どうしてもVLOOKUP関数でやりたい場合は
=IFERROR(VLOOKUP(A1,OFFSET(Sheet2!A1:B100,,SUMPRODUCT((Sheet2!A1:Z100=A1)*COLUMN(A1:Z1))-1),2,0),"")

といった感じでしょうかね。

※ A1~Z100セルまでを対象としています。m(_ _)m

Qフォーム等入力時においてIMEが働かない(?)

よく起こる現象で、インターネットでフォーム入力や、Yahooとかの検索入力で日本語入力をしたいときに、IMEが働かない現象が起きています。半角英数のみ入力ができます。私の環境だけでしょうか‥。
キーボードの「半角/全角」キーが効かないので、IMEツールバーを出して、マウスで日本語入力の「あ」にしても入力画面では半角英数に戻ったりします。
Wordやメモ帳を起動すると、正常に働くので、メモ帳を立ち上げてそこへ入力して、コピーしてペーストをしたりして対処をしています・・。
常にメモ帳を立ち上げておけば解決とかの意味ではありません。
IEをアクティブウィンドウにした場合、IMEが働くなくのです。

Aベストアンサー

確かIEのバグだったと思います。

対処法のリンクを貼っておきますので、参考にしてください。
http://www.tku.ac.jp/~densan/local/ie7-ime/ie7-ime.html

Q=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $

いつもお世話になってます。
以下の関数式について、お時間がありましたらどうぞご教示ください。

=IF(ISNA(VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)),"",VLOOKUP($A1,sheet2!$A$1:$B $12,2,FALSE))

「シート2の範囲指定した表にA1セルの値と同じ値の右隣になる値を返せ。ただし該当なき場合は空白とせよ。」

純粋になんでこのような構文になるのかが解りません。

1.ISNAってそもそもなんでしょう?
2.同じ式を繰り返すのはなぜ?
(模範式で、このように同じ式を繰り返す構文があまり無いように思えたのです。)

・参考となる他所のページがあれば教えて下さい。
・素人です。お手柔らかにお願いします。

(エクセル2003)

Aベストアンサー

1.ISNAってそもそもなんでしょう?
ISで始まる情報関数の一つで、#N/A!エラーのみを判定する関数
結果はTRUE(真),FALSE(偽)のいずれかになります。
エラー判定のIS関数には他に
ISERR:#N/A!を除くすべてのエラーを判定する関数
ISERROR:すべてのエラーを判定する関数
があります。

2.同じ式を繰り返すのはなぜ?
ISNAの判定する値がセルでなく数式の結果だからです。
A2=VLOOKUP($A1,sheet2!$A$1:$B$12,2,FALSE)
なら
A3=IF(ISNA(A2),"",A2)
ということになります。A2のように計算の為のセルを省略する為に
=IF(ISNA(数式),"",数式)のように同じ数式を2回繰り返しになってます。

QWebフォームのIMEモードを入力項目毎に自動切替

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにアプリケーション側で制御されるものが大半だと思っておりました。それを聞いてある人は「そんなことはない、世の中の大半のアプリはそんなことを制御していない、「普通」は自分でIMEで制御しながら入力するものだ」、と言っていたので議論になりました。これからウェブサイトを作ろうと思っているので、最終的にはこの議論はアプリ側にそのような実装をするかどうかというところに帰着するのですが、まずは「一般的にどうなのか」というところでご意見を頂きたいと思います。ちなみに、日本のメジャーなサイト(航空会社、ポータル、携帯電話、電気屋)10個でユーザ登録フォームを確認したところ、名前欄をクリックしてもいずれもIMEのモードはひらがなに変更されませんでした。そこで今は友人が正しくて、僕が間違っていたどころか、「そもそも、名前入力時に自動的にひらがなにモード変換されるようなサイトって本当にあるのだろうか。。」というような状態になっております。どなたか、教えてください。よろしくお願いします。

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにア...続きを読む

Aベストアンサー

IMEのON/OFFができるスタイルシート「ime-mode」は、Internet Explorerが独自に追加した仕様で、Internet Explorerでは入力モードが切り替わりますが、その他のブラウザでは保証されません。
http://www.htmq.com/style/ime-mode.shtml

今、確認したところ、IE8はもちろん切り替わり、Firefox 3.6も切り替わりましたが、Google Chromeは切り替わりませんでした。
Opera,Safari,Sleipnir…等は試してません。

大手のサイトでは「より多くのブラウザで表示できること」が求められますので、独自仕様の「ime-mode」を使っているところは少ないのではないでしょうか。
逆に「Internet Explorerしか表示できなくて良い」と割り切ってるサイトや、社内だけに公開するようなページは「ime-mode」が使われていると思います。

Q【EXCEL】数式=SUM(A1*B1+A2*B2+・・・+A100*B100)を簡略化したい

お世話になります。

今Excelで、A1~A100とB1~B100まで数値が入っています。
セルC1に「=A1×b1」、C2に「=A2*B2」…C100に「=A100*B100」と入力しました。
そしてセルC101に「SUM(C1:C100)」と入力して合計を出しました。
(実際はもっと複雑な計算なのですが、説明の為に簡略化しています)

そうすると、計算結果セルが多く発生するためファイルサイズが莫大になってしまうのと、それを数千行×6列以上を一気に計算するとXPのリソースが足りないと出て計算できません。
なので2~3列ずつ何回も数式コピペを繰り返すことになっています。

そこで【別セルに掛け算をしてから全部SUMで足す】のではなく【1つのセルに掛け算とSUMを組み込む】という事を考えて
=SUM(A1*B1+A2*B2+・・・+A100*B100)を
を入力しようとしたのですが、数式が長すぎて四苦八苦です。

この式、なんとか簡略化できませんか?

Aベストアンサー

積の合計なら
=SUMPRODUCT(A1:A100,B1:B100)
でいいのでは?

QACCESS フォーム上 テキストボックスを移動するごとに文字の入力モードが戻ってしまう

ACCESSでフォーム上で入力をしています。
テキストボックスを移動するごとに半角英数になってしまい非常に不便です。

テーブルではIME入力モード:ひらがな、IME返還モード:一般としています。
テーブルのデザインビューの状態では指定している通りのひらがなで入力できるのが、フォームになると半角英数の状態です。
フォームのプロパティから何か設定を変更しなければいけないのでしょうか?
よろしくお願い致します。

Aベストアンサー

maigo-no-konekoさん
ACCESS2000では次の機能があります。
テーブルの項目定義のIMEの設定内容が引き継がれる仕様なのか
否か不明ですが、フォームの定義画面でテキスト項目やコンボボックス
など入力項目毎に指定します。
(ただし、シフトキーを押しながらマウスクリックすることで
複数選択できます)

1)テキストポックスのプロパティ画面を呼び出します。
2)その他 タブにIME関連の項目があります。
  IME入力モード保持 直前に入力した項目のIMEの入力設定
  状態を引き継ぐ場合は「はい」にします。直前の入力項目の
  設定によらない場合は「いいえ」にします。
  IME入力モード オンまたはひらがな等にします。
           ここでご希望の入力方法を選択します。
  IME変換モード 一般(人名や地名などを入力す場合は
  人名/地名)にします。

Q【質問】ブック名AからシートをブックBへ移動する時、ブックAにシートを残してブックBにもコピーするには?

こんにちは、みなさん!!

【質問】ブックAのシートを、ブックBに移動する時に、ブックAにも
同シートを残しておき、さらに、ブックBに同シートを移動する事は
できますか?ドラック&ドロップでは、ブックAにシートはなくなり、
完全に、ブックBに移動されてしまいます。

ご存知の方いらっしゃいましたらよろしくお願いします。

Aベストアンサー

はじめまして

ブックAの該当シートタブを右クリック、移動またはコピーを選択、移動先ブックをブックBに、コピーを作成するにチェックを入れてOK。
これでいけます。

また、ドラッグアンドドロップでするなら、「CTRL」キーを押しながらやってみてください。
移動ではなくコピーになります。

的外れでしたらごめんなさい。

QAccess フォームのテキストボックスに半角英字のみで入力する設定は

IME入力モードをテーブル・フォームともオフにしたのですがひらがな入力モードになってしまいます。
フォームのテキストボックスに半角英字のみで入力する設定としてプロパティのIME入力モードをオフにするやり方自体が間違っているのでしょうか。
それともATOKを使っているなど利用するパソコン側の問題でしょうか

Aベストアンサー

IME入力モードを「使用不可」にしましょう。

Qエクセル 日報売上を月報に展開するマクロで困っております。準備するシート(1)日報入力シート

エクセル 日報売上を月報に展開するマクロで困っております。

準備するシート
(1)日報入力シート
(2)月報売上シート

日報入力シートに作ったボタンを押すとB3の日付(今日)と月報売上シートA列の2~31に用意された日付(1ヶ月分)を参照する

一致した場所(B列~D列)に 入力シート B7:D7のデータを貼り付ける作業を考えております。

以下は過去の事例を参考にさせて頂きました。日付が横軸ですが、目的は縦軸です。

日報入力は1回のみですので、重複はなく1行ずらす処理は必要ありません。

ご教示頂けば助かります。
よろしくお願い致します。

Sub ボタン1_Click()
Dim FRng As Range
Dim Rw As Long
With Sheets("月報売上シート")
If Range("B3").Value = "" Then
MsgBox "入力日を記入してください。", vbExclamation
Exit Sub
End If

Set FRng = .Rows(1).Find(Range("B3").Value, lookat:=xlWhole)
If Not FRng Is Nothing Then
Rw = .Cells(Rows.Count, FRng.Column).End(xlUp).Row
If Rw < 3 Then Rw = 3 Else Rw = Rw + 1
.Cells(Rw, FRng.Column).Resize(, 3).Value = Range("B7:D7").Value
Else
MsgBox "転記先日付が 見つかりません。", vbCritical
Exit Sub
End If
End With
Set FRng = Nothing
MsgBox "転記しました。", vbInformation, "完了"
End Sub

エクセル 日報売上を月報に展開するマクロで困っております。

準備するシート
(1)日報入力シート
(2)月報売上シート

日報入力シートに作ったボタンを押すとB3の日付(今日)と月報売上シートA列の2~31に用意された日付(1ヶ月分)を参照する

一致した場所(B列~D列)に 入力シート B7:D7のデータを貼り付ける作業を考えております。

以下は過去の事例を参考にさせて頂きました。日付が横軸ですが、目的は縦軸です。

日報入力は1回のみですので、重複はなく1行ずらす処理は必要ありません。

...続きを読む

Aベストアンサー

Private Sub Sample()
  Dim lngMaxRow As Long
  Dim NippoWs As Worksheet
  Dim GeppoWs As Worksheet
  Dim rng As Range
  Dim lngRow As Long
  Dim lngCol As Long

  Set NippoWs = Workbooks(ThisWorkbook.Name).Sheets("日報入力")
  Set GeppoWs = Workbooks(ThisWorkbook.Name).Sheets("月報売上")

  lngMaxRow = GeppoWs.Cells(Rows.Count, 1).End(xlUp).Row

  Set rng = GeppoWs.Range("A:A").Find(NippoWs.Cells(3, 2))

  If NippoWs.Cells(3, 2) = "" Then
    MsgBox "日付が入力されていません"
    Exit Sub
  ElseIf rng Is Nothing Then
    MsgBox "日付がありません"
    Exit Sub
  End If

  lngRow = 0
  For lngRow = 1 To lngMaxRow Step 1
    If NippoWs.Cells(3, 2) = GeppoWs.Cells(lngRow, 1) Then
      GeppoWs.Cells(lngRow, 2) = NippoWs.Cells(6, 2)
      GeppoWs.Cells(lngRow, 3) = NippoWs.Cells(6, 3)
      GeppoWs.Cells(lngRow, 4) = NippoWs.Cells(6, 4)
    End If
  Next
End Sub

こんな感じでどうでしょうか?

Private Sub Sample()
  Dim lngMaxRow As Long
  Dim NippoWs As Worksheet
  Dim GeppoWs As Worksheet
  Dim rng As Range
  Dim lngRow As Long
  Dim lngCol As Long

  Set NippoWs = Workbooks(ThisWorkbook.Name).Sheets("日報入力")
  Set GeppoWs = Workbooks(ThisWorkbook.Name).Sheets("月報売上")

  lngMaxRow = GeppoWs.Cells(Rows.Count, 1).End(xlUp).Row

  Set rng = GeppoWs.Range("A:A").Find(NippoWs.Cells(3, 2))

  If NippoWs.Cells(3, 2) = "" T...続きを読む


人気Q&Aランキング

おすすめ情報