1 :
名無しさん@そうだ選挙にいこう :
2008/10/08(水) 19:47:24 Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-10 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 73
http://pc11.2ch.net/test/read.cgi/bsoft/1219830884/
2 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 19:48:18
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能でExcelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。 ・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。 ・B 書籍や解説サイトの紹介依頼はスレ違い。ここは技術的な質問のみで。
3 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 19:48:59
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。
4 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 19:49:34
★ルールを無視すると…
>>1-2 あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2 にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
2.
>>1 ★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1 ★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
5 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 19:50:07
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える) ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する (プラグイン) ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA) ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
6 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 19:50:41
||
|| ━ 質問のしかた ━
||
|| ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
|| ★2 要望は具体例や図を使って明確かつ具体的にしる。
|| ★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
|| ★4 質問テンプレ(雛形)は必須ではないが、
|| OSやExcelのバージョン、VBAの可否などは必須情報。
||
|| ∧ ∧ 。
|| ( ,,゚Д゚)/ ジュウヨウ!! E[]ヨ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/  ̄ ̄ ̄ ./| ________________
| ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ は〜〜〜〜い /
∧ ∧ ∧,,∧ ∧ ∧
( ,, ∧▲ ミ ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
@(_(,,・∀・)@ ( *)〜ミ_ ( ,,)
@(___ノ 〜(___ノ 〜(___ノ
エクセルの技術的な質問と関係ない議論・雑談は下記スレッドで。
【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536
7 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 19:51:26
【 このスレの登場人物 】 ┌─質問者─────────── どこにでもいるごく普通の初心者だったり 会社で上司に無理難題を押しつけられて困っている人だったりする。 たまに学生が宿題を持ち込んでくることも。 ┌─回答者─────────── テンプレを使わないと無視したり、質問を小出しにするとキレたりするくせに 自分は回答を小出しにして優越感に浸りニヤニヤしている嫌なヤツ。 ┌─自称回答者───────── 質問者を煽ったり、回答者を煽ったり、とにかくスレを引っかき回すだけで 何の役にも立たない賑やかし。単なるヒマ潰しでこのスレを見ている。 ┌─VBA厨 ─────────── VBAは万能と信じ、どんな単純な問題もついVBAで解いてしまう。 Module1がデフォルトで挿入されている世界を夢見るが、いまだ実現していない。 その実態はほとんどが理系の(元)学生。ピボット厨に目の敵にされている。 ┌─ピボット厨────────── ピボットテーブルの機能が強力すぎるため、なんでもできると錯覚している。 口癖は「データを正規化して出直せ」「ピボッと参上ピボッと解決」など。 弱点は大嫌いなVBAを使わないとテーブルのリアルタイム更新ができないこと。 ┌─啓蒙先生────────── ピボット厨一派の過激派。Excelはピボットテーブルだけのためにあり、 それ以外の機能はワークシート関数すら不要と言い切る。ピボットテーブルで 解決できない質問からは威嚇しながら逃げる。最初から出てこなきゃいいのに。 ┌─そのほか────────── ワークシート関数厨……何重にも入れ子になった複雑怪奇な数式を作り出し、 関数だけでどんな問題も解いてしまう。たまに自分でも何をやっているか わからなくなる。悩みは数式バーが1行しかないこと、頭が薄くなってきたこと。 配列数式厨……意外と使えるやつだが滅多に出てこない、というか出番がない。 極めてマイナーな存在。見かけたらその日はいいことがあるかも。 ナレーター……誰か知らない人。
8 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 19:53:05
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Find search Sheet1のB列に10000行の数字が並んでいます。 Sheet2のC列に100行の数字が並んでいます。 Sheet2にある数字がSheet1のB列にあれば Sheet1の方のセルの色を変えたいのですが お願いできないでしょうか?
Sub TEST() For B = 1 To 10000 For C = 1 To 100 If Sheets("Sheet1").Cells(B, 2) = Sheets("Sheet2").Cells(C, 3) Then Sheets("Sheet1").Cells(B, 2).Interior.Color = vbYellow Next C Next B End Sub
11 :
9 :2008/10/08(水) 20:41:29
重すぎワロタ
A1、A2,、A3 のそれぞれ数字6,7,8が入ってるとします。 以下の数式を、B1に書きます。 =A1+A2+A3 その際、B1のセルに、個 という単位をつけて、出力させたいです。 B1セル内に、「〜」個、みたいに書いておいて、計算の出力は「〜」の部分のみに出力 されるなど、方法はないでしょうか?
書式に #"個" と入れる
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 a little 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA 抽出 重複 宜しくお願いします。 以下のようにあって、kudamono(1)=メロン kudamono(2)=リンゴ kudamono(3)=バナナ kazu(1)=3 kazu(2)=2 kazu(3)=1という感じで格納したいとき、どの様にすればいいでしょうか? ちなみに、果物は3種類とは限りませんし、セルが空白の場合もあります。 ------------------------------------------------------------ メロン バナナ リンゴ メロン メロン リンゴ
18 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 22:03:38
19 :
名無しさん@そうだ選挙にいこう :2008/10/08(水) 22:25:10
>>1 乙!
スマン、前スレで順番間違えたのは俺なんだ、、、、
許してくんろ。。。
○の中に文字が書いてあるものを表現したいんですが、何か方法はありますか?
21 :
20 :2008/10/09(木) 06:38:47
見れない とりあえず図形と重ねるとか。重なりは最背面に設定
excelの表に数式を入れたら、枠内の左上に 緑の三角が表示されるのですがこれはどういう意味でしょうか? また、これを消すにはどうすれば良いですか?
25 :
名無しさん@そうだ選挙にいこう :2008/10/09(木) 11:18:17
知るかボケ バージョンさえ書かない奴に答える口はねえ
>25 まあまあ、初心者にはもう少しやさしくしましょう。 >24 このスレのbPと2をよく読みましょう。質問テンプレートを使いましょう。 で、ヒントを ツール−オプション−エラーチェックのタブを見てください。それから エクセルのヘルプで「エラーインジケータ」を調べるとわかるでしょう。
>>20 オートシェイプでできる。そのままでも文字は入れられるけど、位置を微調整したいならテキストボックスを重ねる。
29 :
名無しさん@そうだ選挙にいこう :2008/10/09(木) 14:12:54
すんまそん、ちょいと教えとくれやす 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 区切り位置 大量 ながいながーい数字が何行もありやして =LENで見ると192やら384やらくらいの桁らしいんだぎゃ ほんでもってこれを全部1セルにつき2ケタずつに分割したいんすっけど 区切り位置てーやつで2ケタずつクリックしていくのはマジKYてなもんでして =MID(数字,1,2)、=MID(数字,3,2)・・・みたいな方法しかないでがんすか? なんかこうセクシィにスマートにずんばらりんっと切り抜ける方法を教えてけろ
>17 これって、配列と集計に関するVBAマクロの一部に関する質問ということでしょうか? セルアドレス表記が質問文中にひとつもなく、配列変数のことが書いてあるので。 dim kudamono(10) as string, kazu(10) as long 10種類と仮定して kudamono(1) = "メロン" kudamono(2) = "リンゴ" kudamono(3) = "バナナ" 〜 kudamono(10) = "****" ここらへんはシート上のデータから出現順、もしくは別の一覧データからの転記として、 If kudamono(n) = Cells(tate,yoko).value Then kazu(n) = kazu(n) + 1 End If みたいなことがしたいんですか?
>>29 A1にその数字、
B1=MID($A$1,(ROW()*2)-1,2)
後は下にオートフィル
横がよければrow()をcolumn()にすれば良いが、列が足りなさそうね
>>29 VBAでTextToColumns使えばすぐに解決できそうだけど
>【4 VBAでの回答の可否】 否
だからなぁ・・
>29 どうしてもVBAを使いたくないんであれば、以下の手順ではどうでしょう。 1 処理対象の行だけのシートにして(別の新規シートにコピーでも可)、テキストファイルとして保存 (拡張子はtxtがいいかも、csv(カンマ区切り)ではないですからね) 2 ファイル−開く−テキストファイル−スペースによって右または左に揃えられた固定長フィールドのデータ →テキストファイルウィザード2/3の画面で2桁ずつ区切りを作成 (最大384桁ということは191回クリックすることになるのかな) 3 テキストファイルウィザード3/3の画面でデータ形式を文字列にしましょう いかがでしょうか?
>25 解答者の、人のレベルも色々混ざってるんだねぇ。 >26 テンプレートの件大変失礼しました。 お陰で解決しました。 以降このレベルの質問は初心者板でします。
35 :
29 :2008/10/09(木) 14:58:16
>>31 おおぉぉぉありがたや〜
それのcolumnでうまくいきやっした
>>32 すんまそん、村長から
「VBは悪魔の領域!けして近寄るでないないない」
と言われとるもんで・・・
>34 「初心者板で」というか、ここがエクセル総合相談所だからここでいいんでは?
>36 そうだね。 では、これからも質問させてもらいます。
39 :
名無しさん@そうだ選挙にいこう :2008/10/09(木) 15:46:33
>>17 Sheet1の中にべた書きした。作業列が必要になったがB列に果物名を入れる。
作業列なくてもできると思うけど汚いよね。
ちなみに配列は0スタートなので・・いやなら-1いらない子
Public Sub FruitCount()
Dim ArrFruit() As Long
Dim Count As Long
Count = 1
Do
If Sheet1.Range("B" & Count).Value = "" Then
Exit Do
End If
ReDim Preserve ArrFruit(Count - 1)
ArrFruit(Count - 1) = WorksheetFunction.CountIf(Sheet1.Range("A:A"), Sheet1.Range("B" & Count).Value)
Count = Count + 1
Loop
End Sub
40 :
17 :2008/10/09(木) 20:54:03
>>17 です、いろいろご意見頂き有難うございます。
皆様の意見を参考にし以下のように出来上がりましたが、
もっと短く出来そうな気もしますので、何かありましたらご意見下さい。
---------------------------------------------------------
Sub くだものだもの()
Dim kudamono(10) As String
Dim kazu(10) As Integer
Dim count As Integer
Dim last As Integer
Dim f As Integer, y As Integer
last = Cells(65536, 1).End(xlUp).Row
count = 1
For y = 1 To last
If Cells(y, 1).Value <> "" Then
For f = 1 To count
If Cells(y, 1).Value = kudamono(f) Then
kazu(f) = kazu(f) + 1
GoTo Fruit
End If
Next
kudamono(count) = Cells(y, 1).Value
kazu(count) = 1
count = count + 1
End If
Fruit:
Next
End Sub
勤務表を作成しているのですが A B C D 始業 終業 8:00 17:00 このような表でCの列に9:00(8時から17時までの実働時間)と表示させたい場合 どのような式をCに入れたらよいのでしょうか? 昼休憩は考慮しなくていいです。
>>41 B1-A1
場合によっては書式設定を[h]:mm等にすることも(合計などで、24:00以上を表記させたい場合)
小出し申し訳ありません 23:00 1:00 などのように日をまたぐと####になりますが この対応はどのようにしたらよいでしょうか? 小出しほんとうにすいません
>>43 時間はマイナスにできないから
=B1-A1+IF(B1-A1<0,1,0)
ありがとうございました。 式の意味はわかりませんが無事できました。 時間はマイナスにできない ってちょっとカッコいいですね。 浪漫を感じます。
=MOD(B1-A1,1)
>>45 分かりやすく変えると
=IF(B1<A1,B1-A1+1,B1<A1)
つまり終了が開始より前(日付をまたいでる)と、1(24:00)を足し、そうじゃなければそのまま引き算
最近このスレ全体でしき全体をネストするより式の一部をネストする式がはやってるよね
回答者が回答者に即発された・・のかな?
excelでA4やA3に印刷する時収まりがいい行列の数あるんですか? いままではなんとなくA4ぐらいかな?って作って改ページやら幅変えたり して収めてたんですが最初からこんなレイアウトで作り進めばいいって感じがあるんでしょうか? 100%時、1セル縦横何ミリとか決まってますか?
Excel2007の印刷プレビューで罫線が出なかったり太かったりするのは仕様ですか? 拡大⇔縮小で全然見た目違うしクリックした場所で変わったりするし まるでプレビューにならんのですが…orz
>>50 仕様です
Excelで印刷物を作るなら避けられない宿命です
>>48 改ページプレビューや
メニュー⇒印刷範囲の設定
などいじってると少し対処が見えてくるかも
Excelは「文書作成」ではなく「表計算」ソフトだから
成果物が紙ベースなのにExcelで作るなら
それなりの不便さと対処方を身につけないといけません
52 :
名無しさん@そうだ選挙にいこう :2008/10/10(金) 07:12:12
複数のセルを囲むと合計数が表示されるオートSUM機能がありますが、これを 任意のセルを囲むと、たとえば(合計数+4)÷2の結果ができるように 変更することはできないのでしょうか? 突然ですが、どうしても解からないので御助言よろしくお願いします。
53 :
名無しさん@そうだ選挙にいこう :2008/10/10(金) 07:25:13
>>52 右下に出る奴ならオートカルクだよ
アレは合計・平均とあとなんか。ぐぐればすぐに見つかる
>>55 >普通に出来るだろw
だったらやり方書いとけww
ぐぐってみたけどわからん。とりあえず代替案 Private Sub Worksheet_SelectionChange(ByVal Target As Range) For Each r In Selection 合計数 = 合計数 + r.Value Next Application.StatusBar = "コマンド 計算結果=" & (合計数 + 4) / 2 End Sub
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】関数 参照 など 関数で数式そのものを参照することは出来ますか? B1以降に=A1などの数式が入ってるとき、このA1という値が本当に入ってるかどうか、 作業列などで確認したいのです
>>58 数式そのものを調べるのはちょっとめんどくさいよ。
調べたい列がB列で、作業列がC列とする。
まずC1セルをクリックして選択→メニューバーから「挿入」→「名前」→「定義」を選ぶ
次に「名前」のところに「suusiki」と入れて、その下の「参照範囲」のところに「=GET.CELL(6,B1)」と入れてOK
最後にC1に =ISNUMBER(FIND("A1",suusiki)) という式を入れれば、B列の式に「A1」が含まれるかどうかがわかる。
>>58 書いててリロードしたら先越されてたw
なので少し
>>59 に補足
作業列の先頭(C1)を選択した状態で名前の定義をすること
それ以降のセルに書く場合は定義した定義した名前は変更しなくてよし
61 :
60 :2008/10/10(金) 15:04:56
訂正 ×それ以降のセルに書く場合は定義した定義した名前は変更しなくてよし ○それ以降のセルに書く場合は定義した名前は変更しなくてよし
63 :
名無しさん@そうだ選挙にいこう :2008/10/10(金) 22:46:33
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可・否 【5 検索キーワード 】 excel vba worksheets.count オープンしたブックのワークシート数をカウントして、String型の配列変数に格納したいのだが、いくらシート数があるかわからない場合、どうやって、WSheets()の()の中の数値を決めるのですか? 書き方を教えてください。 '****************************** 'ファイルを開く '****************************** Private WSheets() As String Public Sub Main() If OpenFile Then End IF End Sub Function OpenFile() As Boolean OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName For i = 1 To Worksheets.Count MsgBox ActiveWorkbook.Sheets(i).Name Next i OpenFile = True Else OpenFile = False End If End Function
Yes Takasu Clinic
>>63 シートの数はWorkSheets.Countで求められる。配列のサイズをあとから変更するのはReDim。
つまり
ReDim WSheets(Worksheets.Count)
24時間で主に15分単位くらいで 観測していて 10月10日 21:00-21:45 23:30-24:00 2:30-5:30 10月11日 23:15-23:30 このようなデータをとっているのですが これを一日単位で折れ線グラフとして活用したいと思ってます。 10/10 10/11 10/12 10/13 2:00 1:45 │ 1:30 1:15 │ 1:00 │ たとえばこのようにグラフとして活用するための方法をおしえてもらえないでしょうか? よろしくお願いします。
>>66 グラフとして活用すればいいんじゃないでしょうか?
>>66 ・どういう形式のデータを取ってるのか分かりません。
何時から何まで、という時間のデータだけですか?
開始終了時刻はひとつのセルに入力されてるんですか?
・主に15分というが、15分おきに24時間とり続けてるの?
・事例がよく分からない。1日の始まりとして定めている時間はいつ?
・1日に何度もデータを取っているのに、横軸が日付で縦軸が時間だと
一般的な折れ線グラフとして書けないと思う。どういうのを考えてるの?
10/10 10/11 10/12 10/13 2:00 \ | 1:45 | │ 1:30 / \ 1:15 \ \ 1:00 \ / こういうの想像した、無理っぽい気がする。
70 :
名無しさん@そうだ選挙にいこう :2008/10/11(土) 03:27:29
正方形の中に1本だけ対角線を引き、できた片方の三角形に数字、もう片方の三角形に「月」などの文字を入れ 曜日付きの日付みたいな欄を作りたいのですが、うまくいきません。 どうやるのが一番スマートでしょうか? (後々、第三者が数字部分などを書き換えて使いまわしできるようにしたいです)
Excelってなんでこんな何年も言われてる機能付けないの?馬鹿なの?死ぬの?
>66 絵を見ていたら、「株価チャート(グラフウィザードの左上の絵)」に一番近いので、 元データを株価チャートに対応するように加工したらどうですか? ただし、株価チャートには短い横棒がくっつくので目障りか。 どうしても66のような絵にしたいんだったら、VBAでオートシェイプ(直線)を配置する ように工夫するしかないかな。 まずはbPと2をよく読んでテンプレートに沿って質問を。
74 :
73 :2008/10/11(土) 07:46:54
株価チャートだと、縦方向にはひとつの縦棒しか表示できないな。 66の絵は元データとずいぶんかけはなれている。10月10日の分は 3件の時間帯があるのに、ひとつの縦棒だけ。 もっと具体的に元データと、ほしい結果の絵を示してもらわないと無理。 それか、セルをグラフの画素のように使う方法ならいろいろできるかも。
75 :
66 :2008/10/11(土) 10:29:24
説明下手ですみませんです。
色々な回答をしていただきありがとうございます。
見本をつくってみました。まだわかりづらいかとは思いますが・・
http://www.uploda.org/uporg1718629.jpg.html こういうことがしたいというだけで
グラフの形、項目の場所(行、列)などはあまり考慮してないです。
青で塗りつぶしてるエリアはデータ部分です。(1画面で見やすくするためにここに置いてます)
〜やりたい事〜
・同日にとびとびの時間を記録している
・同日の観測地点ごとに記録してある開始時間〜終了時間までをグラフ化したい
・同日に観測地点が複数でる
・観測時間が重複?することがある(10/1茨城の部分のような感じ)
よろしくお願いします。
76 :
66 :2008/10/11(土) 10:31:35
書き忘れました 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 グラフ 集計 などで検索しましたがあまり効果的ではなかったので 主にできる大事典などの書籍で調べてます
>75,76 自分の今の技術だけだと74で書いた「セルを画素として使う方法」がいいみたい。 アップローダを使ったことがないので画面イメージは下記を参考にしてください。 1:2 の高さ 40 3〜 の高さ 10 A列の幅 7 B列の幅 2 C列の幅 0.5 D列の幅 2 A3:A4をセル結合、以下A5:A6、A7:A8・・・というようにセル結合 A3セルには 00:00 と文字で、以下下方向に00:15、00:30、00:45、01:00・・・と入力 B1:D1の横3列分を結合、E1:G1、H1:J1・・・というようにセル結合 同様にB2:D2、E2:G2、H2:J2・・・というようにセル結合 B1セルに'10/1を入力、B2セルに茨城を入力 C10:C25セルを黒に設定→0:45〜2:45の時間帯に黒い縦棒が現れる。 もしくは、縦棒をセルの罫線(左、右どちらか)にしてもいいかな。 横方向は同一日で複数の箇所があったら3セル分ずつ右側にずらしていけばいい。
78 :
名無しさん@そうだ選挙にいこう :2008/10/11(土) 13:32:47
ちょっと質問シテクダサイ えーとタトエバ ・Aでハジマルのかどうか と ・Bでオワルのかどうか というフタツのジョウケンをカンガミタ時 でてくるコタエは4通りあるだと思うます それはスナハチ 1.Aではじまるダケ 2.Bでおわるダケ 3.AではじまってBでおわるダケ 4.AではじまないしBでおわらいダケ そこでこれをEXCEL計算式にしようとしたら コマカイ部分はハシオリますが IF(Aではじまるか,IF(Bでおわるか,3,1),IF(Bでおわるか,2,4)) きっとこうなるますか? シカシこの場合だと「IF(Bでおわるか,」という部分がダブルで使われているタメ なんだかジョーチョウな気がしてします もっと簡単な短い計算式にはならんのですか?
Aではじまるか*2+Bでおわるか でどう?
>>78 >2.Bでおわるダケ
ハジマリがナイのに、オワリがアルの?
ヘンなジョウケンだね
>>78 何がやりたいのか、数値や文字列などを具体的に書けば、いろいろな関数を組み合わせて
もっとシンプルな式にできるかもしれない。
あと読みづらい。ちゃんとした回答が欲しかったら普通の日本語で書け。
>>66 k5をJ6に
B5=IF(AND(A5>$J$5;A5<$J$6);"|";"")
下にオートフィル。これでJ3に日付J4に地域書いて右へ右へ作っていけばいいんじゃないかな
当然この入力欄は別のところに作らないとその内かぶってしまうけど
>>78 A1がA始まる場合B1に2を足す
A1がBで終わる場合B1に4を足す
じゃなきゃB1
なんて場合
=b1+if(left(a1,1)="A",2,0)+if(right(b1,1)="B",4,0)
って感じ
文字列だと&演算子でつなげるとか
84 :
83 :2008/10/11(土) 17:04:57
=b1+if(left(a1,1)="A",2,0)+if(right(a1,1)="B",4,0) でした、失礼
79で答え出てるのに馬鹿がウザい
86 :
名無しさん@そうだ選挙にいこう :2008/10/12(日) 00:26:01
エクセル2002 ウインドウズxp で質問! @列を選択 AダイアログBoxに文字を入れ検索 B検索にヒットしたセルの左のセルに*を入力 具体例 @’D列・F列を選択 A’ダイアログBOXに検索したい文字 イロハ を入力 B’ イロハニホ が入力されてるセルD1の左C1と アイロノカニ が入力されてるセルF3の左E2に*を入力 この作業のうちAとB(例はA’B’)をマクロで効率化したいと思っています。 詳しい方、コードを教えて下さい m( )m
87 :
86 :2008/10/12(日) 00:32:01
訂正 ×・・・アイロノカニ が入力されてるセルF3の左E2に*を入力 ○・・・アイロノカニ が入力されてるセルF3の左E3に*を入力
イロハを検索してんのに、どうしてアイロノカニがヒットすんの?
>>86 こんな感じか
Sub aaa()
Set R = Selection.Find(What:=InputBox("検索文字列"), LookAt:=xlPart)
If Not R Is Nothing Then
E = R.Address
Do
R.Offset(0, -1) = "*"
Set R = Selection.FindNext(R)
Loop Until R.Address = E
End If
End Sub
90 :
名無しさん@そうだ選挙にいこう :2008/10/12(日) 12:15:45
質問です。よろしくお願いします。 OSはWin-XP ExcelのVerは2003です。 UserForm上に20前後のTetboxが配置してあります。 フォーカスの位置が分かりづらいために、Focusされている Textboxの色を変えようとしていますが、色は変わるのですが focusが外れた時に色を戻すことがどうしてもできません。 まずは、Textbox**_enterでFocusされたボックスの色が変わります。 入力が終わり、次のボックスへFocusが移動すると次のボックスの色も 変わりますが、元のボックスの色はそのままになってしますます。 ちなみに、Exit、及びLostfocusも試したのですがだめでした。 どなたか、ご指導いただけないでしょうか。。。。。 よろしくお願いします〜。。。。 m(__)m
91 :
90 :2008/10/12(日) 12:19:23
すみません。
>>90 です。
一つ書き忘れてしまったので追記です。
TextboxのTabIndexは、上から順番になっていますが、
使う側が必ずも上から順に使ってもらうという想定ではないので
次のTabに移動したら色を戻す設定も失敗でした。
以上、追記です。すみません。よろしくお願いします。
m(__)m
92 :
86 :2008/10/12(日) 12:53:18
>>89 ご回答ありがとうございます!火曜から仕事が楽になります!
欲張りな質問で恐縮ですが
全角・半角区別なく検索し、横のセルに*をつけることは可能でしょうか?
例
全角または半角のイロハで検索→全角と半角のイロハにヒットし、隣のセルに*
>>70 後々のメンテナンス考えたらセルの書式だけで片付けるのがいいかも
A1からB2をひとマスと考えれば
A1からB2の全体に外枠を付けて四角形にする
B1とA2には斜線も入れる(A列とB列は列幅を同じにしておく)
文字入力はA1とB2で
後は全体の書式設定上手にやればそこそこの見栄えになる
>>90 普通に出来るけど
例えばこんな感じ
TextBox1_Enterイベントに
TextBox1.BackColor = RGB(0,0,0)を
TextBox1_Exitイベントに
TextBox1.BackColor = RGB(255,255,255)
で出来ないかい?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 全く分かりません 【4 VBAでの回答の可否】 非 【5 検索キーワード 】 エクセル 列 高さ Sheet1の1から20行までのA列とB列を罫線で囲んでいます。 1から10までは行の高さを20、11から15はに設定しています。(各セルにはデータを入力してます) 同じサイズのセルを、同一Sheet内に限界まで縦に作りたいのですが、どうすれば良いですか? (一番左上には連番を振りたいです。) ちなみに、コピーして貼り付けをするとデータは保持されるのですが、行の高さが保持されておりません。 「形式を選択して貼り付け」も考えましたが、もっと効率の良い方法を探してます。 よろしくお願いします。
97 :
90 :2008/10/12(日) 23:18:30
>>95 さん ありがとうございます。
簡単なシートを別に作成してやってみました。
確かにおっしゃるとおり普通に動きますね〜。。。。
どうやら原因は当方の別にあるようです。
どうもお手数をおかけしました。何とか原因を見つけて見ます。
ありがとうございました。m(__)m
>>96 今パソコン立ち上げてないから自信ないけど
(C列以降はデータがないとして)セルではなく行を選択してからコピー貼り付けでも駄目?
連番に関してはA1に
=(ROW()-1)/20+1
フィルタの詳細設定で、セルに指定した検索条件から該当行の抽出を行いたいのですが、 日時 2008/9/29 22:50 2008/9/29 22:55 2008/10/2 21:10 2008/10/2 23:31 2008/10/3 21:20 のような行の場合に、 日時 2008/10/* や 2008/10* のように検索条件を入力して、10月の行を抽出したいのですが、うまくいきません。 日時以外の列で違う値を指定すると抽出出来るので、 日時の検索条件に間違いがあると思い検索条件を錯誤してみましたが分かりませんでした。。 お分かりになる方おりましたら教えて頂ければ幸いです。
>>100 日時がシリアル値なら「39722以上」かつ「39753未満」で10月が抽出できる
>>100 シリアル値に慣れないうちは
2008/10/01以上
AND
2008/11/01未満
と打ち込んだ方がいいかも
っていうか私は今でもそうやってる
WinXPでExcelは2007です。質問ですがお願いします。 ="a"+(B1) のような感じで、A1のセルに、 先頭に指定の文字列+B1の値を入力したい場合はどうすればよろしいでしょうか。
>>101 ,102
シリアル値にして検索に当たるようにする方法というのもあるのですね。
慣れない内はそのようにさせて頂きます。レスどうもありがとうございます。
>>103 そういう場合は+じゃなくて&を使えばおK。
もしくは書式設定で"文字列"@といれても
107 :
103 :2008/10/13(月) 02:00:32
自己レスです。 後方では =(B1)&"a"で出来たのですが、 先頭にやる方法をご存じの方教えて下さい(´・ω・`)
>>105 ,106
ありがというございます!感謝!!
(;´Д`)ハァハァ
質問です。A20〜A100の中にデータの入ってるセルは何件あるかを A15に表示させたいのですが、どのように入力すれば良いでしょうか。 EXCELは2007です。
=COUNTA(A20:A100)
>>111 感謝です。どうもありがとうございます。
113 :
77 :2008/10/13(月) 19:59:36
>76 観測データのグラフ化の件 遅くなりましたが、セルを塗りつぶす方法(bV7で示したシート利用)で作ってみました。 データシートにはA列:日付、B列:観測地点、C列:観測開始時刻、D列:観測終了時刻で 2行目から記録してください。長いので2レスに分けます。 Option Explicit Dim TATE As Long, RETU As Integer Dim SAVE_DATE As Date, SAVE_CHITEN As String Dim WORK_DATE As Date, WORK_CHITEN As String Dim WORK_TM_S As Date, WORK_TM_E As Date Dim ST_G As Excel.Worksheet, ST_D As Excel.Worksheet Sub 図作成() Set ST_G = Worksheets("Sheet1") 'グラフ用シート Set ST_D = Worksheets("Sheet2") 'データシート ST_G.Activate TATE = 2 SAVE_DATE = 1 SAVE_CHITEN = "" RETU = 0 Do WORK_DATE = ST_D.Cells(TATE, 1).Value WORK_CHITEN = ST_D.Cells(TATE, 2).Value WORK_TM_S = ST_D.Cells(TATE, 3).Value WORK_TM_E = ST_D.Cells(TATE, 4).Value Call PROC1 TATE = TATE + 1 If Not IsDate(ST_D.Cells(TATE, 1).Value) Then Exit Do End If Loop Set ST_G = Nothing Set ST_D = Nothing End Sub
114 :
77 :2008/10/13(月) 20:02:02
Private Sub PROC1() Dim TATE_S As Long, TATE_E As Long, YOKO As Integer If (WORK_DATE = SAVE_DATE) And (WORK_CHITEN = SAVE_CHITEN) Then Else RETU = RETU + 1 ST_G.Cells(1, RETU * 3 - 1).Value = WORK_DATE ST_G.Cells(2, RETU * 3 - 1).Value = WORK_CHITEN End If YOKO = RETU * 3 TATE_S = Hour(WORK_TM_S) * 8 + Int(Minute(WORK_TM_S) / 15) * 2 + 4 TATE_E = Hour(WORK_TM_E) * 8 + Int(Minute(WORK_TM_E) / 15) * 2 + 3 Range(Cells(TATE_S, YOKO), Cells(TATE_E, YOKO)).Select With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With End Sub 1行目のセル書式は、日付(月/日)としておいてください。
質問です。 A列とB列の数値を参照して B>Aだった場合のB列のセルを装飾(塗りつぶし等)したいのですが、 どうやったらいいでしょうか? Excelのバージョンは2007です。
>115 セルの塗りつぶしだったら、操作の記録をしてみてどのようなマクロができるのか見ればいいですよ。 ちなみに、すぐ上の114のレスにセルの塗りつぶしのコードがあります。
OSはビスタです。 すでに2007のExel、Wordが入っていますが、使いづらいので 以前使っていた2003のでやりたいんですが、変えられるんでしょうか? できるのであればやり方を教えてもらえないでしょうか? 今までそういった質問はあったかと思いますが、お願いします
118 :
116 :2008/10/13(月) 22:41:28
>115 マクロじゃなくて、セルの「条件付書式」が簡単だった。 ヘルプで調べてみるとわかると思います。 自分はエクセル2007を持ってないので誰かお持ちの方、回答どうぞ。
121 :
115 :2008/10/13(月) 23:15:48
>>118 条件付き書式で出来ました。
ありがとうございました。
1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 使えないです 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 log 対数 グラフ 表 一つの表(例えば横軸が電圧、縦軸が抵抗のような表)を用いて、 横軸が対数・縦軸も対数のグラフを作りたいのですが レイアウト→主縦軸→対数目盛で軸を表示 で縦軸は対数のグラフにできたのですが、横軸を対数に取ることができません。 可能なやり方がわからないので、助言お願いします。
>>122 グラフの種類を『散布図』にすれば横軸も対数に出来ますよ
>>123 完璧です。今までただの折れ線でやってました。
ありがとうございました。
125 :
名無しさん@そうだ選挙にいこう :2008/10/14(火) 05:02:07
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 すみません初歩的かもしれませんが エクセルで挿入した図に○(丸)で印をつけたいのですがうまくいきません。 図形描画ツールバーの楕円を選択すると、画像がくりぬかれて楕円の中が白くなってしまいます。 しょうがないのでオートシェイプ→フリーハンドでやっているのですが、線が細くて見づらいです。 出来れば太くて赤などの目立つ線で丸で印をつけたいのですがどなたか教えていただけないでしょうか。 お願いいたします。
>>125 その丸を右クリックして、メニューから「オートシェイプの書式設定」を選ぶ。
塗りつぶし - 色 の部分で「塗りつぶしなし」にすると、輪郭線だけになる。
線の色と太さも、同じ画面で設定できる。よく見ればわかる。
さらに、もういちど丸を右クリックして「オートシェイプの規定値に設定」を
選んでおけば、ワンタッチでいくつでも赤丸を作れるようになる。
127 :
125 :2008/10/14(火) 05:33:04
>>126 詳しく教えていただいてありがとうございます。
できました・・・。
助かりました。
セル参照使ったときに F1 F5 の値ををオートフィルで F1 F5 F9 F13 … ってしたいんだけど F1 F5 F2 F6 … になってしまう どうすればいいんだ?
よこからすみません。 エクセル2007についての困っている事があります。 何方か教えて頂ければと思います。 ドーナッツグラフを作成した時に、系列が2つ以上ありますと2個以上の切り出しが出来ません。 2003の時には普通に手動で移動していたのですが、2007ではこの機能は無くなってしまったのでしょうか? よろしくお願い致します。
131 :
130 :2008/10/14(火) 17:05:24
よく読んでみたらセル参照の場合か・・・ 上は取り消す 代案として参照先を計算で出してINDIRECTを使う案を提案しとく
>>130 ご返答有難うございます。
このサイトは見させていただきました、しかし系列が1つの場合はこれで良いのですが、
2つ以上ですと、2つしか切り出せないのです。
よろしくお願いいたします。
>>128 A1=INDIRECT("f"&1+(ROW()-1)*4)
あとは下にオートフィル
>>128 「=F1」「=F5」みたいな式が入ってるとうまくいかないけど「F1」「F5」っていう文字列なら次は「F9」が入るから
あとで置換すればいい。
相対参照で入力されているセルを、相対参照させずに絶対参照っぽくコピーする方法を教えてください
>>135 ダブルクリックかF2を押して編集モードにした後、数式バーの中をコピペ
若しくは一度絶対参照にした後、「$」を「」(何もない文字列)に置換
オートシェイプの○と棒を使って人の形を作ったとします。 これを一気に動かせるようにしたいです。方法はありますか? これを動かそうとすると、○と棒を1つ1つ動かさないといけないです。
>>!37 ctrl押しながら一個一個クリックしていって右クリ→グループ化
139 :
137 :2008/10/14(火) 20:33:31
てんきゅー
140 :
名無しさん@そうだ選挙にいこう :2008/10/14(火) 21:09:30
2005-1-2 1-3 2-3 3-4 4-5 これらを全て自動的に2005として認識させるのは難しいですか? ge.mm.ddで表示してるのですが。 入力を毎度年数入れるのは面倒くさいなあと思いまして。 そのためにセルを分けるというのもイマイチだなって思いながら結局全部手入力してるのですが。 何か賢い解決方法があるのでしょうか?
>140 パソコンの内部時計を2005年にする。終わったら戻す。
>>140 VBA使えば一括変換可能
VBAイベント使えば入力時に2005年に自動変換可能
詳しい環境情報(
>>1 ★4)など書いてないので、こちらも詳しい話は伏せる
>>140 この式を作業列に入れてオートフィルすれば一気に変換できる
=DATE(2005,MONTH(A1),DAY(A1))
>>131 ,133
こういう式でできるのか。ありがとう
>>134 こっちのほうが簡単そうだけどREPLACEなのかSUBSTITUTEなのかよく分からないorz
具体的な数式書いてもらえないかな?
>>144 検索メニューから手動で「F」を「=F」に置換すれば文字列が数式に自動的に変わってくれる。
>>145 =if(F1="",1,0)
とか書いてあったらどうする?w
できなくはないだろうけど
数式に置換なんて使うと変更する時も面倒だと思う
それこそ「=F1」「=F5」だけの数式なら
>>134 のやり方が一番早いだろうに
否定するほどの悪いやり方でもなかろう
>>146 そもそもその式だと思ったようにオートフィルができない。最後の0がどんどん増えていくことになる。
余分な数字があるとだめだから「IF(F1="",」までにとどめてオートフィルしたあと、「,」→「,1,0)」、「I」→「=I」の順に
2回置換すればできることはできる。
べつに、置換が面倒だと思ったらROW()を使うなり作業列を使えばいいだけのこと。
臨機応変に一番手間のかからない方法を選べばいい。
150 :
144 :2008/10/15(水) 11:57:53
できた、すげえ 何でも関数ってわけじゃないんだな。発想力が大事か みんなありがとう
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 複数の条件に合うデータを合計する 下記のような基礎データ表があります。 曜日|店名|品名|金額 月曜|A店|食品|\500 火曜|B店|雑貨|\200 水曜|C店|食品|\250 木曜|A店|雑貨|\600 金曜|B店|食品|\800 土曜|C店|雑貨|\350 日曜|D店|食品|\200 ・ | ・ | ・ | ・ ・ | ・ | ・ | ・ 上表の曜日・店名・品名が全て合致する項目ごとに金額を合計した下記のような集計表を作りたいのですが、どのような数式にすればよいでしょうか。 店名|品名|月曜|火曜|水曜|木曜|金曜|土曜|日曜 A店|食品|\500| | | | | | A店|雑貨| | | |\600| | | B店|食品| | | | |\800| | B店|雑貨| |\200| | | | | C店|食品| | |\250| | | | C店|雑貨| | | | | |\350| D店|食品| | | | | | |\200 ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ | ・ なお検索した結果、「DSUM」を使えば良さそうかと思いましたが、一項目だけを検索するのではなく、上記のようにすべての項目を列記したいのでどのようにすればよいのかわかりません。 また、ピボットテーブルを使えばいいのではないかとも思いますが、ピボットテーブルに不慣れな上、実際には集計表にその他のデータも盛り込むため、ピボットテーブルはできれば使いたくありません。 よろしくお願いします。
>>151 >>他のデータも盛り込むため、ピボットテーブルはできれば使いたくありません。
何で?
他のデータを盛り込むのがピボを使わない理由になるのか?
あと検索キーは「複数の条件」と「合計」だな。
153 :
151 :2008/10/15(水) 13:00:02
>>152 ピボットテーブルに不慣れだからです。
そもそも簡単なピボットテーブルを作成すること自体が良くわかってない上に、そこに他のデータを割り込ませるとなると手に負える気がしません。
なんとか関数で処理したいのです。
よろしくお願いします。
154 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 13:01:27
155 :
151 :2008/10/15(水) 13:04:30
>>152 連投すみません。
>あと検索キーは「複数の条件」と「合計」だな。
これで参考になりそうなものが引っかかりました。
ありがとうございました。
156 :
151 :2008/10/15(水) 13:07:00
>>154 度々すみません。
「SUMIF」は使えますが、複数条件だとどうしていいのかわかりませんでした。
もし解決策があるようでしたら、参考までにお教えいただければありがたいです。
よろしくお願いします。
慣れはあるだろうけど、たぶんピボット作ってgetpivotdata使うのが一番楽なんじゃねーかな どーせそのまま印刷したいとかの糞レイアウト処理までやるんだろうし
158 :
151 :2008/10/15(水) 13:11:24
>>154 またまたすみません。
「SUMIF」ではなくて「SUMIFS」なのですね。
残念ながら2002なので使えないようです。
条件が複数あることで躓いてるなら、条件を1つにまとめれば(連結すれば)良いだけ 「複数条件の合計を出す式」のみに執着せず、もっと多角的な考察力を付けよう
>>151 店名(昇順)・品名(降順)で並び替え
E1-K1に月曜〜日曜
E2に=IF($A2=E$1,$D2,"")
あとは右と下にオートフィル
最後にA列を非表示にでもすればok
例程度ならいけるけど、条件が複雑になると対応できなくなりそう
>>160 それだけでは集計できてないと思われる件
1週間分しか例を示してないけど2週間分以上あると考えてもいいのかな?
OpenOffice.org3は、Windows98やMeには入らないのかな? インストールしようとしたらエラーメッセージが出てしまった。
>>162 ぐぐったら一発
OpenOffice.orgは14日、オフィススイートの最新バージョン
「OpenOffice.org 3.0」をリリースした。OpenOffice.orgの公式サイトから無償でダウンロードできる。対応OSはWindows Vista/XP/2000、Mac OS X、Linuxなど。
164 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 17:30:41
>>165 H4-I6をF27の下にコピー、F27以下非表示にでもするしかない
166 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 17:49:26
>>165 1行じゃなきゃだめなんですね。
わかりましたありがとうございます!
167 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 17:57:03
>>151 めんどくせーけど「DSUM」なんてのもあるよ
なれれば便利な関数なんだけどね
インターフェースが改悪されてなきゃ2007を勧めるんだけどなあ。 SUMIFの複数条件対応とか便利に強化された関数も多いし。
DSUMはクリテリアつくるのがめんどうだから SUMPRODUCTつかうことがおおい でも遅い
エクセル2000 vba 勉強中 エクセル初心者 セルA1=A社 セルA2=☆☆ と書いてあった場合に(A社.xls)ファイルを作りセルA2の内容を書き込む (A社.Xls)ファイルが有る場合は上書き この作業をVBAでやりたいので教えて下さいお願いします。
>170 「新しいマクロの記録」は試してみましたか? 1 ファイルの新規作成 2 セルを指定して☆☆を入力 3 ファイル名を指定して保存(ファイル名はA社.xls) 後は2の部分と3のファイル名の部分をセル内容からもってくるようにマクロを変更。 ファイル名重複したら確認ダイアログが表示されるだろうけど、[置き換える]を 選べばいいだけの話。(プログラムで確認ダイアログを出さないようにもできる) なお、マクロを記録するブックは新規ブックではない方がいいですね。
172 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 20:57:46
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 エクセルで書いた文章を印刷しようと、プレビューを見たのですが 次ページに「。」が一つだけあり、消そうとエクセル画面に戻ったのですが どこにも見当たりません どうやって消せば良いのでしょうか? ページ設定等で印刷に出ないように出来ますが、毎回そのページだけ飛ばすのが面倒です。 どなたか教えて下さい。
[F5]→"セル選択"→"定数"→OK でどない?
>172 印刷プレビュー ではなく、メニューの 表示−改ページ プレビュー は見ましたか?
176 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 21:30:31
言葉足らずですみません
「。」はプレビュー次ページの真ん中くらいにあります
>>174 青くなるだけで解決しませんでした
>>175 見ましたが、引っ張ってもページ数が増えるだけで解決しません
お願いします
そのシートでCtrl+Aで全てを選択してDelのあと少しだけデータを書いてプレビューすると どうなるだろう?
178 :
175 :2008/10/15(水) 21:43:19
>176 1 本来の印刷頁数は1頁だけになるはずが、2頁になるということですか? 2 "。"がひとつだけ、ということならば、検索で"。"を探したらどうですか? 3 ひょっとすると文字ではなく、図形の○かもしれないので図形描画にして広い範囲をドラッグ してみてください。なにか図形が「ひっかかり」ませんか? 4 印刷したい範囲が決まっているのであれば、印刷範囲をドラッグで指定したうえで、 メニューの ファイル − 印刷範囲 − 印刷範囲の設定 をしたらどうですか?
>>176 「ページの真ん中」ってのは色々と解釈できるけど、上下?左右?
┌────┐
│ 1 . │
│ │
│ │
│2 3 │
│ │
│ │
│ │
└────┘どこ?
180 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 22:22:03
>>177 「。」は消えますが文も消えます。
>>178 @はい
A検索って右上の質問枠のところを使うのでしょうか?(素人過ぎてごめんなさい)
そのページには一つですが文全体にはたくさん使用してます。
B「図形描画にして」ごめんなさい分かりません
C印刷のときはその様にしてるのですが、毎回めんどうなので、できれば消したいです
>>179 2番の位置です
レス時間がかかってすみません。ひとつひとつ試すのに時間がかかってしまうので
>>180 その丸を印刷したときの直径は何ミリ?色は黒?
182 :
178 :2008/10/15(水) 22:33:09
>180 2番の位置です。でわかった。 エクセルの昔からの不具合で、見た目はセル内に収まっているのに、印刷するとはみ出る というのがある。 今回はまさしくそれです。 セル枠(右端)ぎりぎりに 。 がある文章のどこか1文字だけでも削ってみてから印刷プレビューを見てください。 今度は1頁に収まるはず。
183 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 22:37:46
またバカがExcelで書類印刷しようとしてるのか
184 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 22:38:46
皆さんド素人の自分へのアドバイス有難うございました
>>181 さんのヒントで解決しました。
結果は句点でしたが、横へのはみ出しが原因でした。
(エクセル画面上では点線内に収まってる)
皆さん本当にお世話になりました。
185 :
178 :2008/10/15(水) 22:41:00
続きです。 1文字けずってもしかたがないので、 A 右余白をぎりぎりまでせばめる B 印刷範囲のセルの幅を少し広げる (印刷範囲がA列からG列までだったとしたらG列の幅を少し広げるということ)
186 :
名無しさん@そうだ選挙にいこう :2008/10/15(水) 22:44:26
関数の質問です あるセルに セルA.1 私の名前は西村博之です セルA2 私の名前は西村博之2です とあります そこから私のと です。削除して 西村博之 というのを取り出したいのですが そういう関数はありますか?
188 :
お願いします :2008/10/15(水) 22:48:49
A3にできた変数をA3100000までコピペしたいんですがドラッグだけでは とんでもない時間がかかります。なんとかならないでしょうか。
>>187 =SUBSTITUTE(SUBSTITUTE(A1,"私の名前は",""),"です","")
>>188 不可能です。
Excel2000〜2003ではA1〜A65536まで、Excel2007ではA1048576までしかセルがありません。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel タブ シート 位置 "上に" シートタブの位置を上に変更したいのですができますか? (ブラウザのタブのように上に持って行きたい)
193 :
188 :2008/10/15(水) 23:07:58
質問の仕方が悪かったので訂正します A3にできた変数を A4 から A100000 までコピペしたいんですがドラッグだけでは とんでもない時間がかかります。なんとかならないでしょうか。 excel 2007です
>>188 VBAなら
sub main()
for i = 0 to 10000
cells(i,,"A").value = cells(i1,"A").value
next i
end sub()
マクロ→ビジュアルベーシックエディタ
追加(だったかな) →新規モジュール
これをこぴぺ →再生マーク
右上の罰で閉じるとエクセルが面に戻る
>193 当方エクセル2003なので2007とはちょっと違うかもしれないけど 1 A3セルをコピー 2 名前ボックス(セル位置が表示されているところ)にA4:A100000と入力してEnter →A4:A100000まで選択された状態になる 3 メニューの編集−形式を選択して貼り付け−値or計算式(お好きなように)
196 :
195 :2008/10/16(木) 00:01:25
今頃193さんは194さんのマクロを動かそうと悪戦苦闘してるのかな? Cellsの指定の仕方も、ループ変数が0から始まっているのも、End Sub()も・・・
197 :
193 :2008/10/16(木) 00:23:31
>>196 さん
正解です・・・悪戦苦闘しています。
>>195 のやり方は2007では
できませんでした。
正しくは効果? sub main() ’一番目から1000番目までの変数を作る for i = 2 to 10000 ’A1の値をiの変数版目のA列のセルに入れる cells(i,,"A").value = cells(1,"A").value next i end sub 正しく入ってると所々大文字になるはず 試してはないけど
EXCEL2007で前バージョンで使える色(セル背景色)がさくっと 選べるテーマってないでしょうか。 色つけただけで互換性云々と前バージョン形式での保存のたびに 出て嫌になってきます。
WIndowsXP EXCELL2000で最近エクセルの勉強を始めました。 ---年-----月-----日付---------- ----A-----B-------C-----------------P----------Q---------- 4 <2000> <1> <2000/1/1>--------<2000/1/1> 5 <2000> <2> <2000/2/1>--------<2000/2/1> 6 <2000> <3> <2000/3/1>--------<2000/3/2> A4=年、B4=月を初期値としてP列の毎年1/1をスタートにしたいのです。 つまり2000年2月がスタートなら翌年の2001/1/1になるようにしたいのです 2000年1月スタートで試行錯誤してP列に目的の日付を何とかして作りました B4=1で1月スタートなら問題ないのですが、B4の月を1月以外(例えば2月)にすると、 P列の翌年以降の1月の日付が<2001/1/2><2002/1/2>…になりました いろいろと試行錯誤すると、 B4の初期値が1,9,11月の場合は Q4=P4のまま B4の初期値が2月の場合は Q4=P4-1 (P列に表示される日付の1日前) B4の初期値が3〜8,10,12の場合は Q4=P4+1 (P列に表示される日付の1日後) となれば、P列は毎年1/1のスタートに出来ることまでは分かりました。 以上の条件を満たす日付をQ列に作りたいのです。 IF IFの条件分岐を使えばいいのだろうと思いますが、条件が複雑すぎて これ以上は分かりません。 どうかお願いします
>>199 2007でテーマに自分で設定できる色は12色、ただし、そのうち6色は変更しない方がいいので
設定できるのは事実上6色だけになります。
つまり、前のバージョンと互換性のある色をすべてセットしておくことはできません。
回避策としては、VBAでパレットを調べて近い色に置き換えるぐらいでしょうか。
>>200 何がやりたいのか質問の意味がまったくわからん。
そこに書いてある表は、現在の、うまくいってない状態?
だとしたら、どうなって欲しいのか、自分の希望する完成した状態を書いてくれ。
>>200 もしかして、こうか?
P4に入れる式 =DATE(A4+IF(B4>1,1,0),1,1)
204 :
200 :2008/10/16(木) 02:49:28
2000/1/1スタートで目的の日付を作りました。それがP列です これでいいと思ってスタートを2月にしたら、2001/1/2になってしまいました いろいろと試すと「年」は関係なく「月」だけで3パターンあることが分かりました。 なせこうなるのかは分かりませんが、今はこれが限界なのでこの3つを B4の条件できりかえてQ列に表示したいのです 2月スタートの場合 ----A-----B-------C-----------------P----------Q---------- 4 <2000> <2> <2000/1/1>--------<2000/2/1> 5 <2000> <3> <2000/2/1>--------<2000/3/2> 6 <2000> <4> <2000/3/1>--------<2000/4/1> 14 <2000> <12> <2000/12/1>--------<2000/12/2> 15 <2001> <1> <20001/1/1>--------<2001/1/2>←こうなって+1になります 16 <2001> <2> <20001/1/2>--------<2001/2/2>←
>>204 今、C4とP4には、それぞれどんな式が入ってるのか書いて。
Excelの前に日本語覚えた方がよくねえか?
C列はDATE(A4,B4,1)で、そこから右は1ステップずつ横に移動して使えそうな 情報として偶数/奇数月、うるう年を判定して、試行錯誤してP行になりました 概算で金利の計算をしたいのです。 ただ計算するだけなら毎月1日で構わないのですが、今は関数の勉強をかねて 1年が365日366日を1/1基準で31日後、29(うるう年は30日後、31日後、30日後… として1年をなるべく均等に12等分したいのです C列は表面的に出す数字で、実際の計算の日付は12等分したP列でと思いました。 同じ金額を借りても1/1と2/1のスタートでは翌月以降の利息が違うので 1年をなるべく均等にした方がいいかなと 概算での計算なのでこんなことをしても無意味なのは分かりますけど、 せっかく思いついたので何とかしてみたいのです
>>207 やっと何がやりたいのかわかったよ。
Q4に入れる式
=P4+CHOOSE($B$4,0,-1,1,1,1,1,1,1,0,1,0,1)
いや、こうかな? =P4+IF(YEAR(P4)>$A$4,CHOOSE($B$4,0,-1,1,1,1,1,1,1,0,1,0,1),0)
>>207 いや違う。補正するのは翌年以降の1月だけか。
=P4+IF(AND(YEAR(P4)>$A$4,MONTH(P4)=1),CHOOSE($B$4,0,-1,1,1,1,1,1,1,0,1,0,1),0)
>>210 早まるな
208と209はたぶん間違ってる
>>212 >>208 で翌年以降は1/1のスタートになるのが分かりました
これで何か問題があればあれば、また隣の列以降で何とかしてみます
今確かめてみましたが全然違ってました
>>207 適当に答えるのは止めてもらえませんか?
微弱な電磁波が…
216 :
195 :2008/10/16(木) 09:11:25
>197
いくらなんでも、2003と2007でこんな基本的なところができないはずはない。
↓はマイクロソフトのエクセル2007の基本の説明ですが、ちゃんと名前ボックスがあります。
http://office.microsoft.com/ja-jp/2007/FX102135051041.aspx (A列のすぐ上、A1と表示されているところ)
ここに A4:A100000 と入れれば、この範囲のセルが選択状態になるはず。
ひょっとすると、メニューがリボンに変わっているのでとまどっているのかな?
↑の頁に「貼り付け」ってでているので、▼をクリックしたら「形式を選択して貼り付け」って
出ませんか?
2007で試してみたら
>>195 さんのやり方で出来ましたよ
218 :
162 :2008/10/16(木) 09:45:53
>>163 投稿するスレッドをおもいっきり間違えてしまったみたい。恥ずかしい。
にもかかわらずお答えくださって、どうも有難うございました。
はい皆さん注目ー!質問ですよー! 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 セル内 文字列 数える 数える関数はいろいろありますが、そのどれもがセルの数を数える関数になっていて ひとつのセルの中に指定文字列がいくつあるかを数えることができません・・・ たとえばA1に12000000340000001200000012000000と入力してあった場合に 「12」がいくつあるか(この場合3個)を求めたいんです もちろん作業列や作業行や作業シートなど使っても構いません が、12じゃなくても任意の文字列の数が数えたいです 関数だけでできないでしょうか?
220 :
名無しさん@そうだ選挙にいこう :2008/10/16(木) 10:32:02
>>219 関数じゃしんどくないかい?
VBAならなんとか出来そうだが・・・
>>219 A2に探す文字があるとして
=(LEN(A1)-LEN(SUBSTITUTE(A1,A2,"")))/LEN(A2)
>>219 「1111」に「11」が3個含まれてるとしたい場合は
=SUM(IF(EXACT(MID(A1,ROW(INDIRECT("A1:A"&LEN(A1)-1)),LEN(A2)),A2),1))
でCtrl+Shift+Enter
2個としたい場合は
=(LEN(A1)-LEN(SUBSTITUTE(A1,A2,"")))/LEN(A2)
どちらも検索したい文字列(12)はA2にあるものとする
VBAならSplitしてUBound調べれば一発だな
InStrをループで回したほうが確か速かった気もするが、Splitの方が手軽
223 :
困っています。 :2008/10/16(木) 11:13:48
教えてください。 仕事でエクセルを使用していますが、URLやメールアドレスの入力では無いのに、 勝手にハイパーリンクが入ってしまいます。 ネットでも色々調べましたが、URLやメールアドレスを入力すると勝手に ハイパーリンクが入る件については対処法が有りますが、空白のセルにも ハイパーリンクがいつの間にか入っています。 全部のセルに入る訳でも無く不規則に入ります。 (空白セルに入ったり既に入力済みのセルに入ったり) 調べてみますとリンク先は全て同じ様です。 そのセルをクリックするたびにリンク先が開いてしまい困っています。 新しいブックを開いた時は、もちろんハイパーリンクは一切入っていませんが、 作業を進めるうちに、またいつの間にかハイパーリンクが入っています。 対処法をご存知の方、是非ともお教えください。 宜しくお願い致します。
>>223 前に誰かが作ったシートからデータだけ削除して再利用してるのでなければ、マクロかウィルス。
ウィルスなら、そのリンク先のURLで検索すれば情報が得られるかもしれない。
自分の仕事に関係のあるアドレスならマクロの誤作動か、存在を忘れてる。
225 :
困っています。 :2008/10/16(木) 11:31:17
224様 ご回答有り難う御座います。 リンク先は仕事に関係のあるアドレスです。 ただ、シートからデータを削除しての再利用では無く、 全く新しいブックで使用しても、いつの間にか同じ現象になります。 マクロの誤動作・・・ その誤動作をしない様にするにはどの様にすれば良いのでしょうか? すみません。勉強不足で。 どうぞ宜しくお願い致します。
まずはエクセルのバージョンを書け
227 :
困っています。 :2008/10/16(木) 11:50:24
エクセルのバージョンは2002です。
>>225 いつの間にかってことはマクロだった場合ショートカットかが登録されてるかもしれないな・・・
とりあえずAlt+F8でマクロの一覧出して
マクロがあるなら1つ1つ選択→オプションを繰り返してショートカットがないか確認する
VBAを弄ることになるなら組んだやつに聞きながらやる必要があるし
下手なことは言えん
229 :
219 :2008/10/16(木) 13:43:07
>>221 さん、
>>222 さん
ありがとうございます!
その関数を見るだけで目からうろこが落ちるようです
そういう工夫があるんですね
ついでといっては申し訳ないのですが
任意の文字列が連続している最大or最小の個数というのは無理でしょうか?
たとえば1212121200000000123400001212から「12」は
最大で4連続、とか、最小で1連続(単品がある)、とか
関数ではもはや限界でしょうか・・・
>>229 =MAX(IF(ISNUMBER(FIND(REPT("12",ROW(INDIRECT("A1:A100"))),A1)),ROW(INDIRECT("A1:A100"))))
でCtrl+Shift+Enter
これで最大100連続まで検索する
2カ所ある「A1:A100」の「100」が検索する最大連続回数なので、必要に応じて書き換えるように
このままでは120連続でも100という結果になるが、あまり大きくしすぎても式が重くなる
>>171 さん
回答ありがとうございます
「マクロの記録」ってイジレるんですね(;´д`)知りませんでした…試してみます
232 :
171 :2008/10/16(木) 18:12:23
>170,231 新しいマクロの記録を行うと、通常、標準モジュール1に記録されます。以降、別の新しいマクロの記録をしても 標準モジュール1に記録されます。 1 新しいマクロの記録をしてみる。 2 [ctrl]を押しながら[f11]キーを押すと、Visual Basic Editorの画面が表示されるので、Module1をダブルクリック →マクロの中身が表示される 3 ActiveCell.FormulaR1C1 = "☆☆" と表示されているところを、 Range("A1").Value = Range("A2").Value に変更 ※左辺の"A1"は実際に値を入れたいセルのアドレスを指定する。 マクロの記録では ActiveCell.FormulaR1C1 = という表現になってしまうので、こういう風に変えること 4 1行目のSub Macro1() の Macro1 はマクロ名であり、変更出来ます。(途中に空白は入れないこと、日本語でも可) 実際に何をするマクロなのかをわかるようにしておいた方が後から便利。
>>232 VBEの起動はCtrl+F11じゃなくてAlt+F11では
>>232 マクロの操作
Alt + F8
[マクロ] ダイアログ ボックスを表示する。
Alt + F11
Visual Basic Editor を起動する。
Ctrl + F11
Excel 4.0 の新規マクロ シートを挿入する。
くどいようだけどしっかり突っ込むw
235 :
171 :2008/10/16(木) 18:39:06
>233,234 失礼しました。
こんにちわ 毎日何百通も見積書を作るのが大変です A B C D E 1 得意先名 品名 数量 金額 2 釜a田元 組立 一式 2000 【作成】 3 アカマツ 解体 一式 1000 【作成】 4 ==== == == ==== 【作成】 ====================================================== 以上のようなワークシートのE列のような作成ボタンを押すと その行の内容が以下のような別シートに見積書として反映される 方法を教えてもらえないでしょうか? どうかよろしくお願いします!! ====================================================== お見積書 釜a田元御中 ○○○○ 担当 山田 合計金額 2,000円 ~~~~~~~~~~~~~~~~~~ 内訳 「品名」組立 「数量」一式
見積番号をつくって、別シートの見積書にVLOOKUPで参照する
>>236 ボタンを押したら何かするってのはVBA使わないと無理だけどVBAはわかる?
>236 VBAを使わずに同じようなことをするためのヒント:INDIRECTを利用する。 Sheet1にデータ一覧があり、Sheet2を見積書イメージとする。 (2行目からデータが記録されているものとする) Sheet2のA1セルに印刷したいデータのある行を設定する。(例として2を入れておく) Sheet2のA3セルあたりに、以下の計算式を入れる =INDIRECT("Sheet1!A"&$A$1)&"" そうすると、Sheet2のA3セル(計算式を入れたセル)に 釜a田元 と表示される。 Sheet2の1行目を印刷範囲にせず、2行目以降を見積書のように作成すると、左上隅の A1セルに入力した番号に対応した行位置のSheet1のデータを引用できる。 品名を表示したいところは=INDIRECT("Sheet1!B"&$A$1)&""のように!の後のアルファベット を列名のアルファベットと同じものを指定する。 実際に印刷するにはA1に番号を入れては印刷、を繰り返せばいい。 御中を付けたければ、計算式の末尾の 〜&"" の""を" 御中"に変えればいいし、金額 のところは &""をはずしたうえでユーザー書式設定をするといい。 計算式の末尾に&""を付けるのは、データが欠落している場合に0を表示させないために 文字列にするためのものなので、A〜D列すべてデータがある場合は不要。
とりあえず、質問者はテンプレ使え
お返事ありがとうございます!!
>>237 ありがとうございます
勉強のとっかかりができました
>>238 VBAですか、「やさしくわかる関数・マクロ」を読み始めたばかりです
>>237 さんの教えてくださったVLOOKUPと組み合わせるんでしょうか?
242 :
239 :2008/10/16(木) 21:49:56
>241 なんか無視されたみたいだけど、239の方法にA1セルの数字をUP、DOWNするボタン2個 加えて、ボタンで簡単なマクロを動かすこともできます。自分はハガキの宛名印刷を これでやってます。ちなみに数字をUPさせるボタンのコマンドはこれ。 Private Sub CommandButton1_Click() With Worksheets("Sheet2") .Range("A1").Value = .Range("A1").Value + 1 End With End Sub
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Googleやヘルプでの検索キーワード 重複 困っております、教えを乞いに参りました。 シート1に下記のデータがあります(実際は1,000行ほど)。 __A_|__B__| 500_|_東京 700_|_東京 700_|_東京 700_|_埼玉 ざっくりいって重複をなくしたいのですが少々条件がありまして、上の図でいうと 1、2(3でもいいわけですが)、4行目を残したいのです。データを色々と加工していくマクロの 一部分なんですが、初めA列の重複だけを考えればよいと言われ、Dictionaryのキー(がユニーク じゃないとエラーがでる)を使ってたんですが、B列も考慮に入れることになったのです。 つまり、同じ700でも東京と埼玉があれば同一とはみなさずどちらも残す、という条件がつきました。 今は、シート1をループでなめていって、1行目(500,東京)は初出なので シート1には何もしない、2行目(700,東京)は初出なので何もしない、3行目(700,東京)は 既出なのでこの行削除、4行目(700,埼玉)は初出なので…とやっています。800行目にまた (700,東京)が出るかもしれなく、そのとき既出かどうか判断するために、隠しシート2に __A_|__B__|__C_| 500_|_東京|____ 700_|_東京|埼玉 といった表をつくって、これを参照して、とかしていますが、作っていて効率が悪いというか カッコ悪いコードだなあと感じてしまいます。削除行を配列でもって後ろから削除していく、の ほうが速いのかとも思いましたが、根本的な重複チェックの仕方が洗練されてないという悩みです。 皆さんならどういう解法をとられますか。ご教示ください、お願いします。
>>241 VBAの場合はVLOOKUP使う必要はない
あと、そういうのをVBAでやる場合は、ボタンをズラーっと並べるより
Worksheet_BeforeDoubleClickイベントでも使う方がスッキリするよ
その本はVBA勉強するにはちょっと浅いけど、この程度のことならその本の知識だけでもどうにかなるだろ
>>243 >>159 とかDictionaryを二段構えにするとか、隠しシート使う方法を
隠しシートではなくDictionaryと配列にするとか
>>239 >>242 ごめんなさい すいません 申し訳ありません
>>237 さんと
>>238 さんのアドバイスに沿ってググッたり本を開いたりしていてレス(書き込み)までのタイムラグがあったみたいです
決して無視するなんてもったいないことはしませんから!!!!!!!!
寝る前に開いたらビックリしました
かってなんですが明日は3時半に起きないといけないので勉強は明日にします
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 凡例 一部非表示 A,B,Cという要素をグラフにプロットするのですが、凡例にはCは表示させず、ABのみを表示させるには どのようにすればよいかご教授ください。
消したい凡例を右クリックしてクリアを選択
>>248 こんな簡単な・・・ありがとうございました
>243 246さんではありませんが、 246の処理にもうちょっと追加をしてより便利に。 もうひとつ作業列(D列)を追加、データが2行目からあると仮定して D2列には=IF(D2=D1、"重複"、"")と入力して下へコピー。 2行目からデータ最下行までをC列をキーとしてソートすると、重複行のD列に 重複と表示される。 あとは簡単なマクロで重複行を削除することができる。
>>250 そんなに作業列を増やさなくても
C1=(A1&B1)=(A2&B2)
だけでいいじゃん。で、TRUEを削除。
>251 A列とB列でソート済みの状態に最初からデータが並んでいる(もしくは並べ替えをしてから) という前提ならばYESでしょうが、243さんの質問には並びのことは(少なくともA列を除 いて)書かれていません。
254 :
250 :2008/10/16(木) 23:18:20
>253 250をよく読んでください。 2行目からデータ最下行までをC列をキーとしてソートすると って書いているんですけど。
>>254 ソートすれば処理が簡単になるのに、質問者はソートせずに別リストをわざわざ作ったり、かなり苦労している。
つまりデータの並び方に意味があるってことだから、勝手にソートしちゃまずい。
256 :
250 :2008/10/16(木) 23:29:09
>255 では、もうひとつ作業列をつくっておいて、ソート前の状態で一連番号を振っておいて 重複行削除の後に一連番号の列をキーとしてソートすればいいですね。 ところで243さんは見ているのだろうか?
ソート前提ならA列B列でソートして
>>251 のが簡単だな
258 :
243 :2008/10/17(金) 00:00:21
皆様、レスありがとうございます!
>
>>159 とかDictionaryを二段構えにするとか、隠しシート使う方法を
>隠しシートではなくDictionaryと配列にするとか
私の頭では無理そうですが、ふさわしい状況がきたときに使えるようになっておきたいと思います。
こういう方法がある、という引き出しが増えてありがたいです。
あとオートフィル的な部分、すっかり忘れておりました。
当初のA列だけ考慮に入れるマクロがほぼ出来たところで仕様追加になったので、なんとかそれを
改造して簡単に済ませようとして逆にはまってしまいました。
教えていただいた方法を、私の引き出しに入れさせていただきます。
ありがとうございます。
このスレのやり方のほうが早いですね。その方針でやってみたいと思います。
>ソート前の状態で一連番号を振っておいて
これいいですね。
後出しになってしまい申し訳ないのですが、
>>243 の最初の表はいくつかの事業所の表を
追加していったもの?なんです。で、並びを崩さないで、と言われていたというのを書き忘れてしまいました。
すみません。本当は数字の意味を知った上で自動化しなければいけないのは分かっているのですが。
なんで並びを崩さないほうがいいのかとかをヒアリングして作ればいいのでしょうが、依頼者が面倒な人
なのでもう言われたままに作って早いところ渡してしまいたいというのがありまして…。
本当にレスありがとうございました。参考にさせていただきます。
259 :
名無しさん@そうだ選挙にいこう :2008/10/17(金) 00:08:40
>>243 スレ違いですがもしAccessが使える環境ならAccessにインポート、クエリでdistinctかけて、そのクエリをExcelに出力で終わり。Excelオンリーなら………
スマンが、がんばって下さい
260 :
243 :2008/10/17(金) 00:16:12
>>259 おおお…(羨)
がんばります。
#DBには興味を持っており勉強を始めたところです。
会社では使えないでしょうが自分のために
261 :
197 :2008/10/17(金) 00:27:55
>>216 さん
>>217 さん
できましたできました。皆さんに感謝感謝です!
ついでにもうひとつ聞きたいのですが、変数を作るとき、「=」を入力するためには
「Shift+ほ」をクリックするしかないのでしょうか。「=」の入力もかなり面倒で
参ってます
>>261 残念ながらそれしかありません。
解決策としてはUSBテンキーで「=」キーの付いたタイプを探す、ぐらいかなあ。
ところで「=」で始まるのは変数じゃなくて数式、キーボードの操作はクリックじゃなくてタイプですよ。
補完だかオートコンプリートだか今手元にエクセルがないのでわかりませんが 私は「..」(ピリオド2つ)で「:」を出しいます。
>>261 VBA使っても良いなら、任意のキーを=入力に出来るし
外部のキーカスタマイズソフトでも同様のことが出来る
因みに自分は、ノートでVN-350という=キー付きのテンキーを使ってるが
Excelの数式の場合、メインキーボードの=(Shift & -)使う方が多いな
=の後が数字ならテンキー側使いもするが、=の後は参照にしろ関数にしろ英字始まりだから
>>263 オートコレクトね
オートコンプリートは補完でオートコレクトは補正
でも、時刻入力の場合の「..→:」は、それによって「全てテンキーで入力できるようになる」という利点があるが
数式の場合はそうもいかないからオートコレクト使う利点はあまりないような
>>201 そうですか、、、
だからぐぐってもそういうテーマがないんだ、、、
VBAで置換するのもなんかめんどいし、Formでパレット自作して
マクロ登録のほうがましかな、、、
ならそういうの既にありそうなのにな。
質問です。251さんの紹介した計算式 C1セルの式 =(A1&B1)=(A2&B2) これは論理式なんでしょうが、こういう書き方があるのを初めて見ました。 論理式でググると、=ANDとか=ORのように必ず関数が出てきます。 IF関数の「中身」の式だけをセルに書いて、セルにTRUEとかFALSEと表示 されるのを初めて見ました。このような書き方はどこに記されているんで しょうか? 自分のEXCEL2003のヘルプを「論理式」では該当なく、「論理関数」では数件 該当ありますが、=A2=A3のような書き方のことは見つけられませんでした。
269 :
名無しさん@そうだ選挙にいこう :2008/10/17(金) 09:54:03
おいおいバカばっかだな
>>269 2ちゃんなんか見てないで仕事しろよ。
さっきおまえの後ろを通りかかった人より
>>267 論理式です
ANDやORは論理値を扱う関数であり
この倫理関数は論理値を返す式、つまり論理式が有ってのものです
比較演算子を使った比較式は、結果を論理値で返す論理式の1つであり代表的なものです
解説は計算演算子のところにあります
Excelでは式や関数の結果をセルに表示させるのは、先頭に=を付けるという規則があるので
その前提でこの項目を読めば
> 次に挙げる比較演算子は、2 つの値を比較し、結果として TRUE または FALSE の論理値を返します。
>
> 比較演算子 内容 (使用例)
> = (等号) 左辺と右辺が等しい (A1=B1)
は結果の論理値をセルに表示したければ「=(A1=B1)」と記述しろと書いてあるのと同義です
加算や減算の解説だって、先頭に=は付いてないけど、関数の引数に使うのではなく
その単一の演算結果をセルに表示させるなら=付けるのは当然でしょ
272 :
名無しさん@そうだ選挙にいこう :2008/10/17(金) 12:46:36
>>267 =2+3
で5が返るけど、関数は出てこないだろ。そんな感じ
=A2=A3
の最初の=と後の=は全然意味が違うってことに気づけば分かりやすいかな
ちなみに「=」は比較演算子、「+」は算術演算子って言うんだけど覚えても滅多に役に立たんな
273 :
困っています。 :2008/10/17(金) 13:48:56
>>228 調べましたが、マクロは有りませんでした。
>>273 Alt+F11でVBEを開いてシートやモジュールをすべて見てもないかな?
これもだめなら次はアドインを疑う
メニューの「ツール」→「アドイン」
チェックが付いてるものに怪しいのがないか見る
この先はもう思いつかない・・・
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Google:エクセル 表示 消す 動画の開始時間と終了時間を入力するとフレーム数に変換され Trim(ここと,ここ)にフレーム数を表示するといった感じにしたいのですが 開始時間や終了時間を入力していない場合はTrim(,)←これは表示したくないのですが消す方法が分かりません。 ちなみに="Trim("&E7&","&K7&")"このように書いています。 お力貸してください
>>276 どちらか片方が空白だったら表示しない
=IF(OR(E7="",K7=""),,"Trim("&E7&","&K7&")")
>>277 IFでできると思うんですがTrim(0,0)と表示されます
もしや開始と終了の0をセルの書式設定の#で消してもだめですか?
試してみればいいじゃん バカすぎないか
ごめんなさい 試して書き込んでました 式のない時間を選択したところTrim(,)は消えましたが0とだけ表示されます 時間は開始終了とも入力していません
>>278 どちらか片方が0だったら表示しない
=IF(OR(E7=0,K7=0),,"Trim("&E7&","&K7&")")
>>280 じゃあこうだな
=IF(OR(E7="",K7=""),"","Trim("&E7&","&K7&")")
>>282 さんの式の前半部に時間のセルを指定したところ表示が消えました
なぜこうなるのかしばらく考えてみます。
ありがとうございました
285 :
名無しさん@そうだ選挙にいこう :2008/10/18(土) 08:51:08
質問です。 エクセル(2003 SP3)でシート上に棒グラフを作ったのですが グラフエリア以外のセルをクリックするとグラフエリアが極細の網目模様になってしまいます グラフエリアをクリックすると普通にグラフの内容が表示されるのですが・・・ プリントプレビューでも、実際にプリントしてもグラフ部分は印刷されず網目になってしまいます どうすれば解決できるでしょうか? お願いします
>>285 ツール → オプション → 表示 を開いて
オブジェクトを「位置のみ表示」から「すべて表示」に変更
287 :
名無しさん@そうだ選挙にいこう :2008/10/18(土) 09:29:59
>>286 できました!!!ありがとうございます!
こんなオプション通常弄るはず無いから、ノーチェックでした
誰かが弄ってたのかもしれません・・・orz
とにかくありがとうございました!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 初心者 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Google:excelVBA 台形積分 VBAを使って、台形積分をしたいのですが、どうもうまくいきません。 グラフを書く場合シート上では A B 1 0.542 35.965 2 0.541 35.276 3 0.538 34.56 4 0.535 33.872 5 0.532 33.155 6 0.53 32.495 7 0.526 31.807 8 0.525 31.148 9 0.521 30.46 10 0.519 29.8 (横軸) (縦軸) となります。グラフにすると分かるのですが、累乗関数的なグラフとなります。 以下にとりあえずためしてみたコードをかきます。
289 :
288 :2008/10/18(土) 16:19:22
Sub module1() Dim f1(), f2() As String ReDim Preserve f1(i) ReDim Preserve f2(i) f1(i) = Cells(1, 2) f2(i) = Cells(1, 1) i = 1 Do Until Cells(i, 1) = "" ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2 i = i + 1 Loop End Sub この状態だと、ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2 のところで「インデックスが有効範囲にありません」というエラーが出ます。
290 :
288 :2008/10/18(土) 16:19:57
たぶん、配列を二つ使っているのに、Doの行でセルを一つしか指定していなかったり という部分に問題があると思うのですが、テキスト的なコードしか分からない今の自分には 解決方法が導けません。 どなたかお力をお貸しください。 あと、ついでにお聞きしたいのですがDoの条件を設定する時、 Do Until 条件の設定 Loop とするんですよね?セルが空になるまでDo処理をしたいときは、 Do Until Cells(1,1) .Value <> "" とすればいいのは分かるのですが、終わりのセル番号を指定したい時 (例えば、A7のセルで処理を終わらせたい) と言う時はどのようなコードを書けばよいのでしょうか? (というか、これだとforを使うほかないのでしょうか)
もうExcelの範囲外だけど とりあえずiの値の変化を追ったほうが良いよね
292 :
名無しさん@そうだ選挙にいこう :2008/10/18(土) 20:33:12
A列に退勤時間がはいっています。表示は17:50の形となっています。 退勤時間が17:30-18:00であれば黄色に色づけたいのです。 条件付き書式設定で、数式の所にどのようにかいたらか教えてください。 時間の表示が悪く、全ての時間できいろくなっていますので。
>>292 シリアル値で設定する
17.5/24以上、18/24以下で書式設定
294 :
名無しさん@そうだ選挙にいこう :2008/10/18(土) 20:49:18
>>289 subが始まった時点でiは0
つまりReDimのところでもiは0のまま
297 :
名無しさん@そうだ選挙にいこう :2008/10/18(土) 22:22:23
こんにちわ。 あ、こんばんわ! 技術的な問題でないのですが教えてください。 【1 OSの種類 .】 Windows‥? 【2 Excelのバージョン 】 Excel‥? 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【困っていること】これからエクセルを学ぼうとするものです。 職場と自宅のパソコンの種類が違うので、 どのバージョンから勉強したらいいか迷っています。 自宅 VISTA ・ 2007 会社 VISTAではない、机によって違う ・ 2000?1998?机によって違う 自宅の2007を使って学習しようと思いましたが それ以前のものとはかなり使い方が違うようで困っています。 やっぱり会社のエクセル用の本を買って 読んだ方がいいでしょうか。 あまり気にせず学習は自宅の2007でいいでしょうか?
>>297 覚えたい内容による。
Excelの本質である表計算機能、つまり数字と関数を並べていろいろな計算をさせるだけならどれを使ってもほとんど同じ。
299 :
名無しさん@そうだ選挙にいこう :2008/10/18(土) 22:34:14
>>298 ありがとうございます。
はい、基本しか使わないと思います。
今からやってきます
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel 奇数 グラフ Excelに光熱費をつけて、それらをまとめて1つのグラフで表示したいのですが、 水道代とかNHK受信料のように隔月支払いのものがうまく表示できません。 ↓エクセルシートはこんな感じ A B C 1 電気代 水道代 2 1月 5000 2500 3 2月 5500 4 3月 5000 2400 5 4月 4500 たとえば、グラフのデータは全部のセルを選択した状態にすると、 毎月支払っている電気代はちゃんと表示されますが水道代は全く表示されません。 水道代をCTRLしながら、支払った月のセルだけ選択すれば表示されますが、 グラフ上で3月に支払った金額が2月のところにずれてしまいます。 うまく表示する方法はあるでしょうか?
>>300 A1-C5選択してそのままグラフ作ると無理なのか?
2003だとそれでできるんだけど
あと日本語変ですよ
>>301 無理だろ。と思ったけど棒グラフだと行けるな。
作業列でも作ればいいんじゃないかな
どうせ折れ線グラフとか肝心なことが書いてないので すき間を=NA()で埋めるなどすればいい
304 :
300 :2008/10/18(土) 22:58:34
>>301-303 すんません、折れ線グラフです。
=NA()入れたらうまくいきました。ありがとうございます!!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ある程度 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel セル 書式 表示形式 エクセルで給与計算するシートを作っています 入社時刻を入れるセルを2列用意し、 1列目:リストから選択 2列目:手動入力にしています その2列に「#"時"##"分"」と表示するよう設定したものの 1列目だけが「####」と化けてしまう 尚、そのセルへのオンマウスで出る小窓は「#"時"##"分"」で表示される 考えられる原因ってなんでしょうか? この状態から入力規則を切っても駄目でした
306 :
305 :2008/10/18(土) 23:44:26
自己解決しました セルの横幅が足りなかったのが原因でした お手数かけてすんません
エクセル2003で、ページの一部分だけスクロールをしたいんですがどうすればいいですか? あと、ここの文字をクリックしたら、あそこに飛ぶ、ようにするにはどうすればいいですか?
>>307 ウィンドウ→分割、またはウィンドウ枠の固定
ハイパーリンク
310 :
307 :2008/10/19(日) 01:12:12
>>309 エクセル内に文書を作って、たとえば、
「書いたい物」
の文字をクリックすると、
同じエクセルページ内の「買いたいものリスト」に飛ぶようにしたいんです。
>>310 ハイパーリンクでその「買いたいものリスト」が書かれてるセルを指定すればおk
リストのことか?データの入力規則
>>239 適切な説明ありがとうございました
この方向で作っていきたいと思います
ちなみに1行目だけ印刷対象外にする方法をしりたいです
>>242 ありがとうございます
この様にコードを入れたのですが
Sub aaa()
Private Sub CommandButton1_Click()
With Worksheets("Sheet2")
.Range("A1").Value = .Range("A1").Value + 1
End With
End Sub
End Sub
いくらやってもコンパイルエラーで「End Sub が必要です。」がでます
それからこのコードは1.2.3.4・・・と連番限定なんですか?
Private Sub CommandButton1_Click() With Worksheets("Sheet2") .Range("A1").Value = .Range("A1").Value + 1 End With End Sub だけでいいんじゃないの
Private Sub CommandButton1_Click() Worksheets("Sheet2").Range("A1").Value = Range("A1").Value + 1 End Sub だけでよくね コードの意味はA1セルの値はA1セルの値に+1したもの だから+1を+2にすれば1個飛ばしたりもできる -1なら逆の連番だな
316 :
名無しさん@そうだ選挙にいこう :2008/10/19(日) 13:54:13
Excelの勉強をしたいと思ってるんですが、Excelを買う金がなく、以前からPCに入っている三四郎を使って勉強したいと思っています。 図書館で三四郎の本を探してもなく、Excelの教科書を借りてきました。 Excel教本と三四郎を使用して、Excelの基礎や関数などを学んでも、実際Excelを使うときでも支障はないでしょうか?
まったく役に立たないと思います
助けて下さい。 EXCEL2007で散布図を作っているのですが、プロットが正しい位置に打たれません。 3.2なのに3.15付近にプロットされたり、2.2なのに2.25だったりといった具合です。 グラフの種類はプロットのみ、線なしの散布図です。 元のデータは計算結果ではなくただの数値、X、Yとも3.1とか2.6といった、 1桁+小数点第1位の単純な値です。 時間さえあればじっくり調べられるのですが、17時までに資料を仕上げなきゃという状況です。 何分勝手な言い訳なのですが、ご存知の方いらっしゃればご教示ください。 すがる思いでお願いいたします。
実際のファイルをどこかにうpして見せないと適切なアドバイスがつかないと思います
>316 ネタとしか思えないが、マジレスすると Excelは有料ですが、無料で使えるOOo(オープンオフィス)があります。Excelに相当するCalcだけ インストールというのはできないと思うけど、全体でも大した容量はないのでおすすめです。 三四郎よりも、オープンオフィスで表計算の勉強をするとExcelに移ってもあまり違和感はないと 思います。(Excel2007を除く) ただし、オープンオフィスの解説本はExcelと比べると圧倒的に少ない(あってもCalcだけじゃない) ので、ネットで調べるのがいいと思う。
>313,315 Withは、代入式の左右どちらにも影響するので、私が書いたようにした方がいいです。 Withを書かない場合は、 Worksheets("Sheet2").Range("A1").Value = Worksheets("Sheet2").Range("A1").Value + 1 と書かないとおかしくなります。 >それからこのコードは1.2.3.4・・・と連番限定なんですか? + 1 なのでひとつずつ増やすだけです。別にボタンを加えて初期値にする(データが2行目 からであれば .Range("A1").Value = 2 とすれば[1件目]ボタンになるし、 .Range("A1").Value = .Range("A1").Value - 1 ならば[前]ボタンです。 直接○行目のデータに移りたいときは、A1セルに数字を入れれば済みます。 >ちなみに1行目だけ印刷対象外にする方法をしりたいです 印刷範囲を設定する、というのはExcelの初級ですよ。除外する範囲ではなく、シート2(見積書) の印刷範囲を指定すればいいだけのことです。
>>318 もう17時を回ったから手遅れかもしれんが、一応。
本当に少数以下一位までの数値になってる?表示形式で丸めてない?
324 :
名無しさん@そうだ選挙にいこう :2008/10/19(日) 19:12:22
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセルが起動しない Excelを起動すると一瞬画面に出ますが、すぐ消えます。 プロセスにはexcel.exe (CPU 0%, 11.812kb memory使用率)が出ます。消すこと可能、消しても問題解決しない。 CDから再度インストールしたけど解決せず。 です。 関係ないかもしれないですが 先日一度ウィルスに感染したので二週間位前のシステム復元ポイントを使って復元済み。 ⇒a-squared free, lavasoftなどでdeep scan してウィルスやmalwareなどはすべて検疫しました。 最初Excelは動いていましたが、一度急に消えた後、エクセルが動かなくなりました (ちょうどa-squared freeでfull scanをしていた間かな?) 忘れてしまった。 ⇒ちょうどavanti ...? が後1日でつかえなくなるといってくるのでuninstal。
325 :
名無しさん@そうだ選挙にいこう :2008/10/19(日) 19:23:20
質問1 管理表.xlsというファイルがあって A2に年度、A4に月を入力してマクロを実行すると 他フォルダのファイルの該当データを取り込んでC2、C4に反映させる用にしたいです。 具体的には、例えば 管理表.xls の A2に20、A4に9を入力してマクロを実行すると D:\集約済データ\H20 というフォルダにある、 "一覧.xls" というファイルの "9月" というシートのB2の値を 管理表.xlsのC2に表示する。 管理表.xls の A2に19、A4に12を入力してマクロを実行すると D:\集約済データ\H19 というフォルダにある、 "一覧.xls" というファイルの "12月" というシートのB2の値を 管理表.xlsのC2に表示する。 説明がわかりずらくてすみません。 よろしくお願いします。
326 :
325 :2008/10/19(日) 19:25:07
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 忘れてました
>325 マクロの記録は試してみましたか? ExcelVBAはどの程度まで扱えますか? マクロの記録で作成されたコードをいじることは できますか?
>>325 Sub a()
Cells(3, 3).Formula = "='D:\集約済データ\H" & Cells(2, 1) & "\[管理表.xls]" & Cells(4, 1) & "月'!B2"
End Sub
>>325 328は間違い
Sub a()
Range("C2").Formula = "='D:\集約済データ\H" & Range("A2") & "\[管理表.xls]" & Range("A4") & "月'!B2"
End Sub
330 :
325 :2008/10/19(日) 20:46:14
折り返して全体を表示 としても、全体の文字が表示されないことがあります。 なので、セルの幅を広げます。解決するにはどうすれbいいでしょうか? あと、セルを結合して、そこに文字を打っても上記のような状態になることがあります。
>>331 「縮小して全体を表示する」にチェック
または
「折り返して全体を表示する」にチェック+行の高さを広げる
もう1回質問します。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】シートのコピー 名称変更 各部署で作成してるデータを1つのファイルでシートを分けてまとめる作業をしてるんだけど D:\データというフォルダの中に A課.xls B課.xls C課.xlsという3つのファイルがあるとする。(実際は20ファイルぐらいあるけど) で、3つのファイルはそれぞれにシートが複数合って、シート名は "H20"、"H19"、"H18"、・・・・・といった具合に年の名前になっている。 で、作業中のファイルでA1シートに"20"を入れてマクロを実行すると Dドライブのファイルから該当年度のシートをコピーして、なおかつシート名を "H20A課"、"H20B課"、"H20C課"とするには どんな風に記述すればいいですか。
336 :
335 :2008/10/19(日) 21:12:33
>>335 そのスペースにそれだけの文字を表示されるためには横幅を広げるか縦幅を広げるか
文字を小さくするしかないのでは?
>>335 長い文章をエクセルで扱うこと自体が間違い
どうしてもやるなら
>>333 の言ってる
「折り返して全体を表示する」にチェック+行の高さを広げる
で対処するのがベスト
じゃなければもっと広い範囲でセル結合
>>339 1つのセルだと、折り返して全体表示 で自動的に表示されます。
でも、結合すると駄目なんですよね。
たとえば4行分結合してるとして、自動的に、4行1つ1つの幅が平均的に
広がるようにならないのかしら?
>>341 無理だな
フォントのサイズ+余白分を行の高さにすればいけそうだけど
そんなことするなら一行ずつ入力するほうが速いな
>>342 それでもいいんだけど、横幅を毎回調整するのがめんどくさいのよね
344 :
名無しさん@そうだ選挙にいこう :2008/10/19(日) 22:49:42
セル結合する奴がカス。
別のところから数字引っ張ってきて下に文章を添える程度なら別にいいと思う エクセルで長文作ってるならウンコね
なぜセル結合までして長文を入れたいんだろ? テキストボックスじゃダメなのかな? 位置の微調整も楽なのに。
エクセルのシートを2、3段で表示する方法ありますか?
348 :
347 :2008/10/19(日) 23:22:24
説明があまりにも悪いですね。 今は1列にシートが表示されてて、横へ移動しないと全部のシートが見れないんです。 2段とかにすれば、全部見れて、すぐにパッと目的のシートを表示させたいんです。
>>347 ウィンドウの分割で2段にならできる
分割したあと境界線をマウスでドラッグ
ウィンドウの分割って何ですか?
セル書式設定で 折り返して表示 ってことじゃないの? Alt + エンター でセル内改行出来るよ
エスパー シートタブを2段にしたいってことでしょ。それは無理。 シートを一発で選択するには、タブが並んでるところの左端の小さい黒い三角を右クリックのが簡単。 あと、シートタブと横スクロールバーの境界はドラッグで変更できるから、少しなら広げることが出来る。
【1 OSの種類 .】 WindowsXP【2 Excelのバージョン 】 Excel2007【3 VBAが使えるか .】 いいえ【4 VBAでの回答の可否】 否【5 検索キーワード 】 Excel セル 整列
http://www.vipper.org/vip962071.jpg 画像のように列も行も数値もバラバラのセルを1列(A列)にまとめる方法はないでしょうか?
もしも列の中でバラバラでもそれは直しかたが分かるので大丈夫です
お願いします
>>353 作業列に=SMALL($A$1:$E$5,ROW())って入れて適当な数だけコピペすればすべてのデータが1列に集まる。
A列にもデータが入ってるから、この方法ではA列は作業列に使えない。
作業列に集めてからA列にあらためてコピペ(形式を選択して貼り付け→値)とかする必要がある。
データの範囲がA1〜E5じゃない場合は、それに合わせて式を変更する。
OS:WindowsXP 質問1 Z10〜Z40までのセル範囲に 一箇所でも空白以外のセルがあったら Z41に”有”と表示する Z10〜Z40が全て空白だったら Z41は”無”と表示するにはどうすれば? 質問2 E10:Y40までのセル範囲で ”○”と入力されているセルの数を数えて Z42に表示するにはどうすれば?
>>355 1
=if(counta(z10:z40)>0,"有","無")
2
=COUNTIF(e10:y40,"○")
または○を1に置換して、sumなんて方法もある
357 :
名無しさん@そうだ選挙にいこう :2008/10/20(月) 12:17:26
質問です。 エクセル2007でエクセル単体のメモリ使用量が2Gを越えると、メモリ不足ですと言われるんですが、これは仕様ですか? 物理メモリは3G積んでいます。CPUはC2DのE6700です。タスクマネージャーで見るとまだ物理メモリの上限まで0.8Gほど余裕があります。 3つのファイルを一つにまとめようとしたら上記のような事が生じてしまいました。 対処法はあるのでしょうか? 教えてください。
32bit環境(CPUかOSが32bit)では、アプリが使えるメモリ空間は上限2GBです 対処法は完全64bit環境に移行することです
>>357 現実的な対処法は1シートずつコピーするとか、かね
360 :
288 :2008/10/20(月) 13:20:45
返信遅くなり申し訳ありません。
>>291 この内容だとスレ違いになってしまいますか?
他のVBA専用スレ等で質問した方が良いんでしょうか。
iの変化で気になるところがあるのですが、もし1行目のセルでi-1の処理をした時に、
i-1は存在しないので、エラーが出るのか?と思い、
制御変数をi=2としてみましたが、同じエラーが出てしまいました。
>>290 URL参考にさせていただきました。
exit doを使えば指定のセルでループから途中抜けできそうですね。
ありがとうございました。
>>296 ReDimの前に制御変数:@を指定しろという事でしょうか?
これをやってみると、「インデックスが〜」というエラーがなくなりました(ありがとうございます!)
しかし、今度は同じ行に「型が一致しません」というエラーが出るようになりました。
これは変数の設定が甘いのかと思い最初のDim行でarとiの変数を設定を行いましたが、
同じエラーが出てしまいました。
とりあえず以下に現在のコードを書きます。
361 :
288 :2008/10/20(月) 13:21:16
Sub module1() Dim f1(), f2() As String, ar As Single, i As Long i = 1 ReDim Preserve f1(i) ReDim Preserve f2(i) f1(i) = Cells(1, 2) f2(i) = Cells(1, 1) Do Until Cells(i, 1) = "" ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2 i = i + 1 Loop End Sub 受け身な態勢で恐縮ですが、もし他に何かアドバイスなどあれば 引き続きよろしくお願いいたします。
362 :
357 :2008/10/20(月) 13:21:57
>>358 ありがとうございます。
そういう事でしたか。理解できました。
>>361 ReDimはループの中でしないと意味無いよ
364 :
363 :2008/10/20(月) 13:34:58
Sub module1() Dim f1(), f2() As String, ar As Single, i As Long i = 1 Do Until Cells(i, 1) = "" ReDim Preserve f1(1 to i) ReDim Preserve f2(1 to i) f1(i) = Cells(i, 2) 'B列のi行目 f2(i) = Cells(i, 1) 'A列のi行目 ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2 i = i + 1 Loop End Sub こうじゃないかと・・・ ところでf1()に型が指定されていないのが気になる 前のレスまだ読んで無いので確かな回答はできて無いかもしれない
365 :
363 :2008/10/20(月) 13:43:13
軽くググってみたら台形積分って何?って感じになった・・・ 入力が何で出力が何かはっきりしないとどうしようもない
366 :
363 :2008/10/20(月) 14:01:43
やりたいこと飲み込めたかな・・・ Sub module1() Dim f1(), f2() As String, ar As Single, i As Long i = 1 Do Until Cells(i, 1) = "" ReDim Preserve f1(i) '(0 to i) ReDim Preserve f2(i) '(0 to i) f1(i) = Cells(i, 2) 'B列のi行目 f2(i) = Cells(i, 1) 'A列のi行目 ar = ar + (f1(i - 1) + f1(i)) * (f2(i) - f2(i - 1)) / 2 i = i + 1 Loop End Sub よく分からなかったので計算式から推測 後、気になったのは1行目の計算はこのままでいいのか?ってこと なんか1人でスレ汚しまくってるな・・・
367 :
363 :2008/10/20(月) 14:19:00
Dim f1(), f2() As String, ar As Single, i As Long を Dim f1() As Single, f2() As Single, ar As Single, i As Long に変えたら動いたし結果もなんか出た ただf2()をVariantに変えてやってみた時との誤差が大きかった 入力値を整数にしてからやったほうがいいかも知れん もうこれ以上汚さずに済むかな・・・
台形積分というのは台形の面積を足して積分の近似値を求める方法。 だからデータがi行あったら計算の回数はi-1回になる。 あと、データを配列に入れる必要はまったくない。 Sub a() Dim ar As Double ar = 0 i = 2 While Cells(i, 1) <> "" ar = ar + (Cells(i - 1, 2) + Cells(i, 2)) * (Cells(i - 1, 1) - Cells(i, 1)) / 2 i = i + 1 Wend Cells(1, 3) = ar '結果をC1セルに入れる End Sub
369 :
名無しさん@そうだ選挙にいこう :2008/10/20(月) 18:01:02
質問です。 シートを保護した状態で(部分的にセルにロックをかけています。)、 行をコピーして「コピーしたセルの挿入」をすることはできませんでしょうか? 計算式などは触られたくないけれども、項目の追加は利用者に任せるというふうにつかいたいのですが。。。 どなたかお助けください・・・
>>369 「シートの保護」ウィンドウの「このシートのすべてのユーザーに許可する操作」で
「行の挿入」をチェックすれば、挿入ができるようになります。
>>369 データ入力用のシートと計算式が入ったシートを分けるという方法もある。
部分的にシートを保護するのは設定が面倒だから、こっちが間違いが少ないんじゃないかなあ。
>>369 「シートの保護」の設定で「行の挿入」を許可すればいいだけでは?
373 :
288 :2008/10/20(月) 19:20:06
皆さんのおかげでコードが完成しました。
>>363 366のコードですと、また「型が一致しません」というエラーが出たのですが、
最初のi=1をi=2とすると、うまく通るようになりました。
しかし値を出力してみると、どうもおかしい・・・。
色々やってみたのですが、うまくいかず、結論として、私が作ったarの式が
配列を用いて台形積分を求めるには適切でなかったようです。
せっかく考えていただいたのにすみませんでした。
>>368 これですね!ありがとうございます。
実は、290さんのページをを改めて見直し、配列を使わずに計算する方法が記載されており
それを参考にしながら台形積分のコードを作成しておりました。
結果的に368さんと同じ形式・値となったので、確信がを持つ事ができました。
参考URLはちゃんと見なければいけませんね・・・。すみません。
本当にありがとうございました。
374 :
名無しさん@そうだ選挙にいこう :2008/10/20(月) 19:29:26
>>370 >>371 >>372 ありがとうございます。
ご指摘の通り、シート保護の設定で「行の挿入」にチェックを入れているのですが、
結合セル(ロック状態)は分解されてしまい、書式コピーでも結合ができません。
>369で書き込みました通り、「コピーしたセルの挿入」同等の動作を行いたいのですが、なにか方法はありませんか?
>>374 >>371 の案は却下?
それなら一時的に保護をはずして行を追加するとか・・・
追加する行のフォーマットが固定されているならVBAでできなくも無い
376 :
名無しさん@そうだ選挙にいこう :2008/10/20(月) 20:11:01
>>375 却下などではありません^^;
ただ、結果だけでなく計算過程も表示しなければいけない表なので、それらを分けるのは少々難しいかと思いまして、、、
フォーマットは固定されていますので、VBAというもので調べてみます。
また解決しましたらご報告いたします。どうもありがとうございます!
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 しょーもないことなんですが、リストをフィルタするときに Excel2003までは▽押して、特定の数値なり選んで完了でした、ものの2クリックです 2007は数値を複数選べるのは便利なんですが、一つだけ選ぶときに 「▽押す」「すべて選択を押して全部解除」「選びたい数値を選ぶ」「OKボタンを押す」 動作が四クリックになってます 自分の使い方では複数選ぶことなんてほとんど無いので、 2003のようなクラッシックなメニューにするか、最初入ってるチェックが全部OFFになってる方が便利なんですが そういう設定はありますか?
つづけてもう一つ質問です(環境は同じ) リストに名前を定義して使ってます 2003までは定義した範囲を選択すると「名前ボックス」には当然、つけた名前が表示されたんですが 2007では「リスト1」みたいなexcelが自動的につけた名前が表示されちゃいます 「名前の管理」で見えますが、そのリストがなんて名前だったか、いちいちそれを開かないと確認できません シート上で確認したいので、名前ボックスに名前を優先表示させる方法はありますか?
×リスト ○テーブル ですね、2003のをインポートした部分は「リスト」、2007で新規で作ったら「テーブル」という・・
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 全く分かりません 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル IF 別シート 集計など 今、総括表を作っているんですが・・・。 例えばデータ用のシート1のA1に文字が入ってたら、総括表シートのA1にその 文字を入力。 なければA1を空白にしたいと考えています。 ただそのデータ用のシートが3つあり、その3つを串刺しするように総括表シー トへ文字を入力したい為、非常に悩んでいます。 =IF(Sheet3!A1="","",Sheet3!A1),IF(Sheet2!A1="","",Sheet2!A1), IF(Sheet1!A1="","",Sheet1!A1) というような感じで関数を作ってみたりして いますが、なかなか上手くいきません・・・。 何か良い解決方法はないでしょうか?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 使えません 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 SUM 集計 クレジットカードのサイト上の明細ページをコピーしてエクセルにペーストしたのですが、 SUMが機能せず、合計がゼロになってしまいます。 表示方法も数値、金額など試しましたがダメでした。 いったい、何が問題なのでしょうか? もし判りましたら教えて頂ければと思います。 よろしくお願い致します。
>>380 3つのデータを全部つなげて並べて表示するの?
それともSheet3にデータが入ってたらそれだけを表示して、Sheet2とSheet1のデータは無視するの?
>>381 たとえば「\ 12,000-」みたいなデータは文字列になるから計算には使えない。
「12,000」みたいに前後の記号をすべて消して数字だけにする。
>>382 どちらかと言うと、後者に近いです。
各データシートの同セルにおいて、文字列が入っているのはデータシート
1〜3のどれか1つで、そうでなければ全てブランクという状態です。
ですので、各シートのうちどれかに文字列が入っていれば、それを総括表
シートに記入されるようにしたいと思っています。
>>384 だったらこれでいいはず
=Sheet1!A1&Sheet2!A1&Sheet3!A1
>>385 おおーー!!
上手くいきました。
ありがとうございます!!!
たまにここ覗いてるんだけど
>>385 みたいな雑念を捨てたシンプルな回答はなかなかできないw
スレ違いすまん
>>171 さんに教えていただいた方法を試したのですが、ファイル名をセルから持ってくる方法が解りません、どなたか教えていただけませんか、お願いします
>>388 例えば
ActiveWorkbook.SaveAs Filename:=Cells("A1") & ".xls"
Filenameでパス&ファイル名を指定すればいい
390 :
名無しさん@そうだ選挙にいこう :2008/10/21(火) 14:13:58
【1 OSの種類 】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否 】 否 【5 検索キーワード 】 絶対参照 相対参照 コピーしたセルの挿入 下図のような状態で、 @ 1〜4の間に行を追加(B列の書式は残したまま) A 下図のセットをA5:B8にコピー(B列はA5を参照した関数に) の両方の作業をA1:A4を分解せずに行う場合、どのような関数を設定すればよいでしょうか? なお、現在B列のセルには=IF( A1="正" , C1*D1 , "-" )という関数を入れています。 A1を絶対参照にした場合、@は問題ありませんが、AでA1を参照してしまいます。 A1を相対参照にした場合、Aは問題ありませんが、@でA2を参照してしまいます。 ”参照先のセルが結合されている場合、当該セルを含む結合セルを参照する”というなにがしかはありませんでしょうか? また他になにかいい方法があればお願いします;; ┌─┬────┬─────────┐ | │ A │ B │ C D ├─┼────┼─────────┤ |1│ │A1の正否により計算│ │ │ ├─────────┤ |2│ 参照元 │A1の正否により計算│ │ │ ├─────────┤ |3│ (結合) │A1の正否により計算│ │ │ ├─────────┤ |4│(リスト)│A1の正否により計算│ └─┴────┴─────────┘
>>390 VBAを使えば結合セルの一番上の座標は一発で求まるんだけどVBA不可なので作業列を使う。
E列を作業列として、以下のような式を入れておく。
E1=A1
E2=(A2=0,E1,A2)
E3以下はE2をコピペ
そしてB列の式をこのように修正。
B1=IF(E1="正",C1*D1,"-")
作業列を隠したかったら一番上のEと書いてある部分を右クリックして「表示しない」。
コピペする時はE列を含めるのを忘れないように。
本来のデータが0だとおかしくなる
393 :
名無しさん@そうだ選挙にいこう :2008/10/21(火) 17:45:10
>>391 ありがとうございます。
おかげさまで無事できました。
少々内容は触りましたので、ご報告を。
E1 =A1
E2 =IF(E1=A1,E1,"-")
E3以下はE2をコピペ
B1 =IF(E1="正",C1*D1,"-")
↑のようにするとうまくいきました!
どうもありがとうございます!
>>392 ご指摘の通り、空白セルを参照していますので、上のように替えました。
ありがとうございます!
>>389 さんに教えていただいた方法で試したのですが、『実行時エラー‘13’型が一致しません。』と出ます(;´д`)
ActiveWorkbook.SaveAs Filename:= _
″C:\Documents and Settings\個人名\My Documents\″ & Cell(″A1″) & ″.xls″
何が間違えかどなたか教えて下さいお願いします。
>395 1 ”ダブルクォーテーションが全角(すべて全角になってるみたい) 2 Cell(”A1”) ではなく Range("A1").Value
397 :
名無しさん@そうだ選挙にいこう :2008/10/21(火) 19:22:55
>>394 たしかにうまくいきませんでした。。。
>>391 さんに教えていただいたようにE2=(A2=0,E1,A2)でうまくいきました^^;
続けて質問で申し訳ありませんが、行挿入の際にE2=(A2=0,E1(※R[-1]C),A2)→E2=(A2=0,E1(※R[-2]C),A2)というふうに参照セルがずれていきますが、これはどうしようもないでしょうか?
かといって絶対参照にすると
>>390 のAのまとめてコピーに支障するのですが・・・
いつ何時でもそのセルの直上のセルを参照するというふうにはできないのでしょうか?
>>397 OFFSET関数でできるよ。
E2の式の中でE1と書いてある部分をOFFSET(E2,-1,0)に置き換える。
するとE2(自分自身)の真上のセル、という指定になる。
399 :
名無しさん@そうだ選挙にいこう :2008/10/22(水) 02:22:43
エクセルのソルバーについて質問させてください。少し長くなりますがご容赦を。
【1 OSの種類 .】 WindowsXP HOME
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可(おてやわらかに)
【5 検索キーワード 】 ソルバー、条件関数、DLL
ソルバーはVBAを用いて条件関数(IFなど)を用いた関数による算出結果に適応すると変化セルが変化しない。
つまり、使えないと
http://support.microsoft.com/kb/819033/ja にあるのですが、これはCやC++でビルドしたDLLの中に条件関数(if)などあっても適用不可ということなのでしょうか?
試しに、C(WinMG)にてDLLを作製し、VBAから呼び出してifを含まない関数にソルバーを適応したところ、
ソルバーの適応が可能でしたが、ifを含む関数を呼び出すと変化セルがピクリとも変化しません。
上記URL の対策のアドインを購入する以外手がないという感じでしょうか?
もし他の手段がありましたらご教授お願いします。
if文がDLL内があるために、変化セルが動かないのか、変化セルの初期値の
オプティマイズができていないかの原因切り分けだけでもしたいと考えています。
>>399 VBAからDLLの中にifがあるかどうかなんてチェックする方法はない
401 :
399 :2008/10/22(水) 05:34:48
>>400 ですよね〜TT
なんでうまくいかないんだろう。。。ありがとうございました。
402 :
名無しさん@そうだ選挙にいこう :2008/10/22(水) 10:18:57
>>398 無事できました!ありがとうございます。
>391さん>392さん>394さん>398さん、わかりやすい説明ありがとうございました!
>>402 A1に入るデータが「正」とか文字だけならいいけど、0が入ってるとおかしくなる。
A列に0が入る可能性はないの?
404 :
名無しさん@そうだ選挙にいこう :2008/10/22(水) 11:22:25
>>403 今回A列に0が入る可能性はありません^^
ただ、ためしに0を入力した場合も異常はみうけられませんでした。
「結合セルに含まれる左上以外のセルは"0"と認識する」という風に解釈したのですが・・・
>>404 1〜4行目のセットをコピーして増やした時、たとえばA5(2セット目の先頭行)に0が入ってるとおかしくなるのよ。
入る可能性がないんなら別にいいけど。
406 :
名無しさん@そうだ選挙にいこう :2008/10/22(水) 18:47:25
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 ピボットテーブル 集計 1.ピボットテーブルで項目を追加していくと、項目ごとの「集計」が表示されるのですが、 右クリックで「表示しない」を選択すると消える方法は知っているのですが、 消した「集計」を表示させる方法は一旦フィールド外に消して、再度フィールドに入れるしかないでしょうか? 2.また、最初から「集計」を表示させないようにする設定はあるのでしょうか? どなたかよろしくお願いします。
407 :
名無しさん@そうだ選挙にいこう :2008/10/22(水) 20:27:53
テンプレも使わず、ごめんなさい。 時間を数値に表す方法をお願いします。 1:00(1時間)=1 2:30(2時間30分)=2.5 3:45(3時間45分)=3.75 宜しくお願いします。
>>407 右の2けたを60で割った値を”:”の左にある数字(時間)に足す
410 :
名無しさん@そうだ選挙にいこう :2008/10/23(木) 08:24:55
Microsoft ExcelのMVPをこれから目指そうと思ってます。 VBAは出来ませんが、一般機能の知識だけでなれますか。
412 :
名無しさん@そうだ選挙にいこう :2008/10/23(木) 11:16:15
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 質問させてください。 250社くらいのデータがあって、1社5〜20件の内容が入ってる縦のセルがあります。 それを、1社ごと1枚のページに印刷設定をしたいんですけど、 挿入で改ページするのが大変なんです。 なにかいい方法はありませんか?
>>412 VBAがだめなら
メニューの「表示」→「改ページプレビュー」
青い線をドラッグして調節くらいしかない
あとは余白を多くして20件で改ページするようにしておけば少しだけ手間が省けるかもしれない
>>412 挿入したあと、F4を押せばもう一度挿入ができる
押しっぱなしだと連続で挿入できる
>>413 の方が早そうだけど、よければ試してみて
250社というのが微妙だね。必死でやれば手作業でも何とかなるレベル。 1000社あったらとりあえずVBA覚えろって言うんだけど。 (VBE開いて他人の作ったコードをコピペするだけなら1分もかからん) 実際のデータを見れば、何かデータを区切るいい方法とか なんか発見できるかもしらんが、、、
416 :
名無しさん@そうだ選挙にいこう :2008/10/23(木) 12:24:55
>>413 >>414 ありがとうございます。
地道にコツコツやってみます。
今後この作業を仕事で求められるので、
もしいい案がありましたらご教授いただけると嬉しいです。
ifとrowでページが変わる行数まで空白、みたいな式を作れなくもないが 作ってもバージョンやらプリンタやら余白サイズに影響されてしまうのがな これが毎月あるならVBAは絶対に覚えたほうが良いよ。 マクロの記録を少し改良すれば一発で終わらせることができるようになる
>>416 Sub 改ページ設定()
Dim c As Range
ActiveSheet.ResetAllPageBreaks
For Each c In Range("A:A")'←改ページの基準になる列を指定
If c.Offset(1, 0) = "" Then Exit For
If c <> c.Offset(1, 0) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0)
Next
End Sub
なんとなく投下してみる
まずはVBAのコピペの仕方から覚えようかw
420 :
416 :2008/10/23(木) 13:52:42
みなさま、ありがとうございます。
お恥ずかしながら、VBAとは今日初めて知った次第です・・・。
>>419 様の内容も全くわかりません。
こんな私は地道に改ページなのでしょうか?
それともすぐに習得できるものなのでしょうか?
いきなりリンク切れですかい
>>421 手順は合ってる
でも、直リンじゃ見えない・・・w
>>420 >1社5〜20件の内容
問題はこれを一くくりにする方法があるかどうかだよ。
プログラムが自動的に判断できるようなルールがなかったら、VBAとか覚えても無駄。
プログラムで自動化するときにも、これを自動化するために1件1件データを打ち込んでいく必要があるんだ。
自分で組めなくて人に頼む場合でも、そのルールを教えてくれないと手伝ってあげれない。
例えばそれぞれの会社の間に空白行があるとしたら、Ctrl+カーソルでそこにとまることが出来る。
キーボードで操作してマクロに記録し、繰り返し再生するだけでできる。
でもエクセルのマクロは、キーの操作を記録じゃないから何度再生しても自分が操作したセルしか操作してくれない。
UWSCってフリーソフトで記録し、それの先頭にwhile trueを、最後にwendを挿入して再生するとやってくれる。
止めるのはStopボタンかCtrl+F2で。
426 :
416 :2008/10/23(木) 14:52:37
いま
>>424 を拝見してやっています。
For Each c In Range("A:A")'←改ページの基準になる列を指定
ここの指定の仕方がわかりません・・・。
おしえていただけますでしょうか?
428 :
416 :2008/10/23(木) 15:07:06
会社名がR列にあったので上記のように組んだのですが、 同じ会社名なのに微妙に次ページになったり、2社以上が同ページに入ったりします。 横のセルはそれぞれ異なった内容がA〜Wまで入っているのですが、 これが何か影響しているのでしょうか?
(A1:A50)って風に指定してもええんやよ
>>428 行が多すぎると改ページされると思う
そうじゃなければ会社名が微妙に違っていると思う
社名と鰍フ間にあるスペースが半角と全角、とかね
会社名は一度オートフィルで入力しなおすと良いかもしれない
431 :
416 :2008/10/23(木) 15:26:35
("R1:R5749")といった風に指定しましたが同じ様です。 半角全角も統一しました。 しかし同じ様に区切られてしまいます。 なにか原因は考えられますか?
表示形式が違う 文字の大きさが違う =R1=R2とかで比較してTRUEにならない
余分な改ページは全角に直してから比較してみるか・・・ If c <> c.Offset(1, 0) ↓ If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide) 違う社名の間に改ページが挟まらないのは原因が思い当たらない・・・
値で入ってれば、コピーやオートフィルすれば同じになるはずだが・・ アレだ、非表示にはなってない? 違う社名の間に改ページが入らないのは、Q列の幅が狭くR列に入力されてると勘違いしてる・・ ぐらいしか思い浮かばないな じゃなきゃ表示形式で何を入力しても別の会社名になるようになってるとか 自分で書いててもありえないケースしか思い浮かばないぜ
435 :
416 :2008/10/23(木) 15:52:50
Sub 改ページ設定() Dim c As Range ActiveSheet.ResetAllPageBreaks For Each c In Range("R1:R5749") If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide) If c <> c.Offset(1, 0) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0) Next End Sub だとコンパイルエラーが出てしましました・・・
説明サボりすぎたな If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide) If c <> c.Offset(1, 0) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0) では無く If StrConv(c, vbWide) <> StrConv(c.Offset(1, 0), vbWide) Then ActiveSheet.HPageBreaks.Add Before:=c.Offset(1, 0)
437 :
416 :2008/10/23(木) 16:00:53
>>436 できました!!
できなかった原因はわかりますでしょうか!?
全角と半角で違うところがあった コピーして直せと言ったろうに
440 :
名無しさん@そうだ選挙にいこう :2008/10/23(木) 16:06:18
すみません・・・見た目的に一緒だったもので。 反省します。 くれくれだった私に、丁寧に教えていただきまして本当にありがとうございました。 どうしても出来ずに午前中にギブアップ宣言を上司に出したのですが、 今日中にちゃんとしたデータを提出できそうです。 それとともにマクロに興味がでてきました。 皆様、こんな難しいこと、独学なのですか?
>同じ会社名なのに微妙に次ページになったり、2社以上が同ページに入ったりします。
前者は全角と半角の違い
後者は今ので出なかったなら気のせいw
>>439 たくさん有ったとしたら手動で改ページ挿入した方が早いだろw
目的を見失うなよ
【1 OSの種類 .】 WindowsXP SP2 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 全くわかりません 【4 VBAでの回答の可否】 否 (VBAでしか方法が無いのであれば勉強します) 【5 検索キーワード 】 参照 IF 質問をさせてください。 まずシート1の[ C1〜C100 ]に100種類の品名が書いてあるとします。 これに連番を振ります(隣のD列を使ってD1〜D100に1〜100) 次にシート2の[ E1〜E100 ]にデータを入力するのですが、この時に E1に(50)と入れれば、シート1のC50の品名が出るようにする E1に(80)と入れれば、シート1のC80の品名が出るようにする この様に参照入力する事は可能なのでしょうか? 宜しくお願いします。
>同じ会社名なのに 前後の空白とりのぞけよー(マクロ的な意味で) 独学としてもヘルプもサンプルも充実してるからね。 それでも外部からマクロ呼ぶ方法はぐぐっても出てこなかったけど。 Publicで宣言するんだけど。 他の情報が多すぎて埋もれてしまうから、そういうのはマイクロソフトのサイトとかから検索するか、 2chで聞いた方が早い。
>>442 INDIRECTを使う
使い方はヘルプ参照
>>442 入力欄に代入ならマクロしかないよ。
入力欄の横のセルに表示なら普通にシートの計算式(INDIRECT?)でいける。
>>441 定期的にやるような業務なら一度見直したほうが良いと思うよ
今回限りならそれこそ最初から最後までマクロな使わないほうが早いけどね
ってコピーするより集計なりピボットにほおりこんだ方が分かりやすかったな
やっぱり俺うんこだな
>これに連番を振ります(隣のD列を使ってD1〜D100に1〜100)
見落としてたな・・・
>>447 の方法がいいかとw
442です。お礼が遅れて申し訳ありません。
>>444-445 さん、
>>447-448 さん
ご回答ありがとうございます。
教えて頂いた関数を調べた所、LOOKUP関数が用途に合いそうなので
これを使って作ってみました。
理解するのに時間かかりましたが、無事完成しました。
回答して下さった方々、色々とお世話になりました。
450 :
407 :2008/10/23(木) 19:35:08
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 はい 【5 検索キーワード 】 1.オートフィルタ 範囲 2.入力規則 Excel 1. 複数列、複数行にランダムに入力があり、その中から「入力がある行」、または「入力がない行」を表示させることはできないでしょうか? 複数列に対してまとめてオートフィルタをかけるイメージです。 2. A1に入力がある場合B1に入力できないようにしたいです。 どなたかよろしくお願いします。
>>451 1は不可能。別シートにデータを詰めながらコピーするしかない。
作業列を作ってそこに行のデータを&で繋いで、空白なら入力が無い行だと判定しる。 1も2もvbaで簡単にできるかもしれないけど、漏れには無理。
>>451 1.
VBAでEndプロパティ調べれば一発
2.
イベントでA1に変更があった時に、A1の入力状態に応じてB1のロックを操作してシートを保護すれば良し
簡単だからVBA使えねーとか言わずに、このくらいは勉強して自分で書いてみろ
455 :
名無しさん@そうだ選挙にいこう :2008/10/23(木) 22:16:27
教えてください。 【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい(少しだけ) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 参照範囲 sumif A列 B列 C列 D列 1行 1 1 1 =sum(A1:C1) 2行 1 1 1 =sum(B2:CB) 3行 1 1 1 =sum(C1) 4行 1 2 3 上の表の4行目にD列の計算の範囲に入っている数字だけを足すことができる 計算式又はVBAを入れたいのですが、可能でしょうか? 例えばA列の4行目にはD列の足し算の計算範囲に入っているのは A1だけなので1となり、B列の4行目はB1とB2がD列の足し算の計算範囲 となっているので2となるいう風です。 いろいろ考えましたが思いつきません。
>>455 全くよくわからない
=sum(B2:CB)はエラーが出るしD2D3D4、それ以下もあるなら全て書き出してほしい
>>455 作業シートに計算式をコピーして、元の数値を以下のようにすれば、どことどこが足されたか一発でわかる。
A列 B列 C列 D列
1行 1 2 4 =sum(A1:C1)
2行 1 2 4 =sum(B2:CB)
3行 1 2 4 =sum(C1)
別解としてFormulaプロパティを自力で構文解析
458 :
451 :2008/10/23(木) 22:38:50
>>454 ごめんなさい・・・
両方とも調べたのですが全然だめでした・・・
特に1.の方はendプロパティでどうできるかも全然・・・
>>455 いったんD,E,Fに、A,B,Cを条件コピーする。
条件コピーはIfの代入式でいい。
それから普通に合計すれば除外されて計算される。
A列 B列 C列 D列 E列 F列 G列
1行 1 1 1 1 1 1 =sum(D1:F1)
2行 1 1 1 0 1 1 =sum(D2:F2)
3行 1 1 1 0 0 1 =sum(D3:F3)
4行 / / / =sum(D1:D3) =sum(E1:E3) =sum(F1:F3) =sum(G1:G3)
見た目をA,B,Cだけにしたい場合、少なくともA,B,CとD,E,Fは別の表にする必要がある。
どうやって計算を除外するかと言うと、D,E,Fの0に該当する部分を、TEXT関数などで文字として表示する。
文字は計算から除外される。
文字と数値は表示位置が違うので、右寄せで設定する。
A列 B列 C列 D列 1行 1 1 1 =sum(A1:C1) 2行 1 1 1 =sum(B2:C2) 3行 1 1 1 =sum(C3) の間違いだろうなあ。そうでないとめちゃめちゃ大変なことになる。
461 :
名無しさん@そうだ選挙にいこう :2008/10/23(木) 22:44:08
>>456 =sum(B2:CB)は=sum(B2:C2)の間違いです。
実際の表は行数、列とも数が多いので簡略化したつもりです
が説明が下手ですいません。
D列の足し算の範囲となっているセルだけを足す条件つきの足し算
を4行目に作りたいのが目的です。
計算したい列が63列以下(BK列まで)なら、数値を以下のように2のべき乗にすれば、 計算結果から何列目と何列目が足されたか逆算することが可能。 A列 B列 C列 D列 E列 1 2 4 8 16
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Googleやヘルプでの検索キーワード : エクセル2007 マクロ フォルダ 保存 エクセル2007にて、シート上に保存したいフォルダのアドレスと保存したいファイル名があります。 エクセル2003では実際に下記マクロで保存できましたがエクセル2007では拡張子が表示されず保存できません。 まずエクセル2003のマクロです。これは動きます。セルの入力は下記です。 セルのA1=フォルダアドレス=C:\Documents and Settings\ユーザー名\デスクトップ セルのB1=保存したいファイル名=ABCDE Sub 名前をつけて保存_フォルダ指定() ' ' 名前をつけて保存_フォルダ指定 Macro ' MySavePath = Application.GetSaveAsFilename(Range("B1").Value & "\" & Range("A1").Value, "Microsoft Office Excel ブック (*.xls), *.xls") ' End Sub 次に2007のマクロです。 Sub 名前をつけて保存_フォルダ指定() ' ' 名前をつけて保存_フォルダ指定 Macro ' MySavePath = Application.GetSaveAsFilename(Range("B1").Value & "\" & Range("A1").Value, "Excel マクロ有効ブック (*.xlsm), *.xlsm") ' End Sub 2007では、ファイルの種類と拡張子を変えてみました。保存の画面まではいくのですが、拡張子がファイル名に表示されず保存できません。 また自分で拡張子を付けてもダメです。どうかよろしくお願いします。
>>455 D4にD1からD3の足し算の結果を出すだけ?
それともD4にもD1からD3のようにsumが入っているの?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel オートフィルタ グループ 下記のようにセルに入力されている場合 名前でオートフィルタをかけて「あ」を選んだら「あ-1」「あ-2」「あ-3」を表示させることはできますか? 白文字で「あ」を入力する、というのも考えたのですが検索にもひっかかってほしくないんです。 名前 内容 あ あ-1 あ-2 あ-.3 い い-1 い-2 い-3 う う-1 う-2 う-3
>>465 「内容」の方にオートフィルタかけて、
オプション>「あ」を「含む」で拾えば?
467 :
名無しさん@そうだ選挙にいこう :2008/10/23(木) 23:55:55
>>464 D4にはなにもはいってません。
A4に1,B4に2,C4に3
と出るような式またはマクロを作りたいのです。
>>467 こう言う事かな?
=SUM(D1:D3,A4:C4)
>>467 もしかして、パズルか何かを解こうとしてる?
>>467 そういうのを一発で求める方法は存在しないので、もっと具体的に何がやりたいのか、
データと計算式は何を表現しているのか書かないと、回答にはたどりつけないと思うぞ。
つーか、最初から
A列 B列 C列
1行 1 1 1
2行 0 1 1
3行 0 0 1
みたいに入力しない理由は?D列の計算式はどっから持ってきたの?
471 :
467 :2008/10/24(金) 01:48:20
>>470 さま
皆さんが真剣に考えていただいているのに私の説明が悪くて
大変申し訳ないです。
4日 5日 6日 清算時間計
A列 B列 C列 D列
Aくん1行目 1Hr 1Hr 1Hr 3Hr(=sum(A1:C1))(4〜6日分を7日に支払った)
Bくん2行目 1Hr 1Hr 1Hr 2Hr(=sum(B2:C2))(5〜6日分を7日に支払った)
Cくん3行目 1Hr 1Hr 1Hr 1Hr(=sum(C1))(6日分を7日に支払った)
清算時間計 4行目
Aくんは4〜6日分のアルバイト代支払い
Bくんには5〜6日分を支払い、C君には6日分を7日に支払った場合
A列、B列、C列の4行目に清算した時間の合計が出るようにしたいのです。
D列は人や期間で合計式が変わるのでそのつど計算式を手入力してます。
真意としては人ごとの支払った時間に対応する日ごとの清算時間計を
自動で入れたいのです。
表ではAくん、Bくん、Cくんと3人ですが実際は100人ぐらいおり
列も3日ではなく実際はもっと長いです。
D列の計算式をDirectPrecedentsをつかって参照元の文字を赤くして
赤くなった数字を足すマクロを組めばできるのかなあというところまで考え
試行錯誤しているところです。
>>471 だから
>>459 の考え方でいけるでしょ。
列が長いなら別のシートでやればいいだけ。
給料払ったかどうかも分からないなんてそこで働く人は気の毒ですね。
労働時間と給与払いは別々の表にするでしょう。
紙に書いてやる方法をまず考えてください。
働いたら働いたと表に書き、払ったら払ったと表に書くでしょう。
SUM()でいきなり計算するなんて論外ですよ。
>>471 どうして無関係なところに1Hrって入れてるの?
働いてないところは0か空白にするのが普通だと思うんだけど。
これなら縦横の計算も一発でできるし、D列の計算式をいちいち変える必要もない。
4日 5日 6日 清算時間計
A列 B列 C列 D列
Aくん1行目 1Hr 1Hr 1Hr =SUM(A1:C1)
Bくん2行目. 1Hr 1Hr =SUM(A2:C2)
Cくん3行目 1Hr =SUM(A3:C3)
474 :
467 :2008/10/24(金) 02:48:14
>>472 別シートのIF式をどう作れば良いのかがわからなかったの
ですが、アドバイスいただき再度考えたらA列とD列を足した
結果がエラーならA列の数字、エラーでなければ0にすればできそうです。
何とか解決しそうです。ありがとうござました。
あと、誤解させてしまいましたが実務ではなく課題です。
実際、どう使用するのか私にもわかりません。
給与の支払い等は別部門できちんと処理しておりますのでご安心ください。
>>473 1Hrは働いた時間です。D列は支払った時間の合計で働いた
時間の合計ではありません。
D列の計算式が人により異なるため頭を悩ませてました。
私のわかりにくい説明に対し、
真剣に回答いただきありがとうございました。
【1 OSの種類 .】 Windows xp sp3 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 左を抽出 下記のように数字が並んでいます。 111.222.333.444-555.666.777.888 -より左の 111.222.333.444 のみを抽出させたいです。 ちなみにこの数式をいれたら抽出されず丸々コピーの状態になってしまいました =IF(COUNTIF(A1,"*-*-*"),LEFT(A1,FIND("-",A1,FIND("-",A1)+1)-1),A1)
>>475 COUNTIF(A1,"*-*-*")
これ何がしたいの?
=LEFT(A1,FIND("-",A1)-1)
これだけでいいはずなのに
>>476 出来ました!!
ありがとうございます!
countifはよくわかってませんでした;;
478 :
困っています。 :2008/10/24(金) 14:58:18
>>274 Alt+F11でVBEを開いてシートやモジュールをすべて見ても何も無かったです。
アドインはチェックが付いてる項目は御座いませんでした。
>>275 マクロウイルスのチェックをしてみましたが感染していませんでした。
ご親切に有り難う御座いました。
空白セルのハイパーリンクを削除しても、いつの間にかまた
ハイパーリンクが入っています。
確かに、そのリンク先は仕事で使っている物で、
他のセルには、そのリンクが必要です。
ただ、不要な所にも、いつの間にか入っています。
別のブックのハイパーリンク先が入って来る事も有ります。
オートフィルをよく使うので何か関係が有ると思い
色々試してみましたが原因は分かりませんでした。
お手上げ状態です・・・
>>478 これ以上手間かけるのも時間がもったいないし
クリーンインストールをお勧めする
エクセルの再インストールじゃ直らない気がするし
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 論理 文字列 A1が5以上の時はA1を表示、でなければ0とするとき =(A1>=5)*A1 で表示できますが、これを文字列に当てはまることは出来ますか? A1が"あ"の時はA1を表示、でなければ0又は表示しない、等の条件です あまりifで入れ子を使いたくない時にこういう書き方をするのですが、 無理でしょうか?
=LEFT(A1,(A1="あ")) とか
>>481 すごい!
小出しの条件非常に申し訳ありません・・この「あ」は一文字とは限らないんです
例が悪かったですね
とりあえずleft、ifと組み合わせて使ってみます
=LEFT(A1,(A1="およよ")*3) とか =LEFT(A1,(A1=F1)*LEN(F1)) とか でもこれだとifの方が良sage
>>483 =LEFT(A1,(A1="およよ")*LEN(A1))
改変して使わせていただきます!ありがとうございました
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル グラフ ヒストグラムを作っています A B C 85 0 0 0 90 3 0 0 95 2 2 0 100 1 4 4 105 0 0 2 そのままグラフにすると、数字の縦線上に棒が表示されるのです 数字と数字の間に棒を表示したいのですが分かる人教えて下さい ┌─┐ │ │ │ │ 85 90
>>266 Excel2007 遅レスですが m(_ _)m
手動で「その他の色」を選択すると、「最近使った色」に選択した
色が出てくるのですが、このForm経由でも、別途手動の手順を
マクロで記録したものでやっても、「最近使った色」に色が登録
されません。
最近使った色を登録するマクロって誰か知ってますか?
つか、このForm便利です。そのままクイックアクセスツールバーに
マクロ登録しました。
「セルの色を変えるVBAを教えて下さい。」だと食い付きがいいのに、ヒストグラムだと誰も反応しない。
使わないから知らないんだろ 何の不思議も無い
489 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 15:58:28
婉曲的に馬鹿にされてることに気付けアホ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 そこそこ。勉強中です
【4 VBAでの回答の可否】 はい
【5 検索キーワード 】 入力規則 offset indirect 名前 変動 反映されない
[入力シート]と[あかさたな別シート]があります。
あかさたな別シートには、あ行の表、か行の表、さ行の表…と、
入力シートにドロップダウンリストとして使用するために、これらの表を名前を定義して作成しています。
その名前の定義も、項目が増減することを仮定して、
[=OFFSET(あかさたな別!$A$2,0,0,COUNTA(あかさたな別!$A:$A)-1,1)]
と名前を設定しています。
入力シートにも、表はあり、その表には[あかさたな列(A2と仮定します)]と[単語列(B2と仮定します)]があります
あかさたな列には、入力規則のリストで[あ行,か行,さ行…]と設定し、
単語列には、入力規則のリストで[=INDIRECT(A2)]とし、あかさたな列の値によって、リストを変動させたいのです。
しかし、あかさたな列で[あ行]と選択しても、単語列でドロップダウンリストが現れてくれません。
ためしに、単語列の入力規則のリストに[=あ行]と設定すると、ちゃんとあ行のドロップダウンリストが表示されます。
なぜこういうことが起こってしまうのか、対応策があるのか
らちがあかなくなって質問しました。お願いいたします。
↓例です
http://www2.uploda.org/uporg1746636.xls.html
>>490 分からん
入力規則の=INDIRECT($A$5)
を決定した時点でエラーが出てるね
ただ、あ行リストを同一シートにしたところ出来た("あ行"が参照してる場所も変えて)
名前の定義をしていても関数を使って別シートにまたがると参照できないのかも・・?
バグってやつかなぁ
492 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 17:53:10
493 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 17:55:47
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】否 【5 検索キーワード 】 Excel 他シート 読み込み a.xlsに入力されているデータをb.xlsでカウントしたいのですが、 どうやったらb.xlsにa.xlsのデータを読みこめますか? 教えてください
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 基本的なことかもしれませんが、excelで複数のセルに同じ処理を するにはどうすればいいでしょうか? 特定の複数のセルの数字を1/1000にしたいのです。 具体的には↓のようになっていて、上2行を下2行と同じ桁にしたいわけです。 1000000 1000000 1000000 1000000 1000000 1000000 1000 1000 1000
495 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 18:01:29
>>494 1000 というデータを同じだけ作ってコピーし、1000分の1にしたい欄を選択・右クリックで「形式を選択して貼り付け」
ダイアログで「値・除算」にチェック入れてOKする
でどうでしょう?
>>493 =COUNT([b.xls]Sheet1!$A$1:B10)
とか
複数シートなら
=COUNT([b.xls]Sheet1!$A$1:B10)+COUNT([b.xls]Sheet2!$A$1:B10)
とか
【OS】XP 【バージョン】2003 【VBAが使えるか】初心者 【VBAでの回答の可否】コード依頼です 【検索キーワード】エクセル VBA 項目 集計 コード 名前 C列 D列 E列 F列 G列 H列 I列 J列 K列 年月 00000001 ○○ 1 0 0 1 0 1 2 0 2 2007年9月 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 00000015 △△ 6 0 0 6 12 32 23 896 1039 2007年10月 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 00000006 △× 110 0 0 120 69 59 514 606 1040 2007年11月 このようにA列からL列(1行目はフィールド名)、行が毎月追加される表があるのですが、コードを2つ書いて欲しいです。 ■1つは年月(L列)毎でC列からK列の合計を↓のように出力したいです。 年月 C列計 D列計 E列計 F列計 G列計 H列計 I列計 J列計 K列計 2007年9月 100 200 150 210 1000 500 200 140 10000 2007年10月 ・ ・ ・ ・ ・ ■2つ目はコード(A列)毎で、C列からK列を集計したいのですが、コードは毎月更新され、先月と同じコードがあったりなかったり、新規追加されたりとまちまちです。 また、コードと名前(B列)は原則1対1で対応しているのですが、稀に名前の方に表記間違いがあったりと例外がありますのでコードと名前が完全一致したら集計対象にする、といった風にしたいです。 コード 名前 C列計 D列計 E列計 F列計 G列計 H列計 I列計 J列計 K列計 00000000 ○○ 100 200 150 210 1000 500 200 140 10000 00000006 △× ・ ・ ・ ・ 00000015 △△ ・ ・ ・ ・ 00000015 ○△ ・ ・ ・ ・ ■1と2の結果は別のシートに出力したいです。 1:シート名「A」 2:シート名「B」 是非ともよろしくお願い致します。
498 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 18:30:01
499 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 19:03:38
>>497 意図してるところが完全にはわからないんですけど、
コードと名前が完全一致、ってのはどういう意味ですか?
>>495 即答ありがとうございます。とりあえずやってみます。
>>495 試してみたらあっさりと希望どおりにできました。感謝!
502 :
497 :2008/10/25(土) 19:16:31
>>499 わかりにくい書き方で申し訳ないです。
コード 名前 C列
00000015 △△
00000015 △△
00000015 △△
00000015 ○△
上記のように、コード(数字8桁)が一致していても、名前(文字列)が異なる場合が稀にあるので
その場合は
コード 名前 C列計
00000015 △△
00000015 △△
00000015 △△
コードと名前が完全に一致している、3行分だけのC列からK列の合計を集計して頂きたいのです。
00000015 ○△
の行はそのまま転記するといった形になります。
また、わからない事があれば聞いてください。
>>502 >また、わからない事があれば聞いてください。
お前は教わるほうじゃないのか
504 :
490 :2008/10/25(土) 19:48:57
>>491 ありがとうございます。
出来ないですか。
しかし、同一シートに移して、同じことやってみたんですが
同じ現象が起きました。
もう一度、試行錯誤してみます
【1 OSの種類】 Windows vista 【2 Excelのバージョン】 Excel 2007 【3 VBAが使えるか】 与えられたコードを用いることはできる 【4 VBAでの回答の可否】 可 【5 検索キーワード】 列挙 数字 一つづつ セル ペースト 移民の数を資料のWebページから持ってきて、 それをグラフにしようとしているのですが、 なんとか一度にまとめてコピペできないかと思っているのですが、 6,668 6,679 7,017 7,119 7,197 7,841 8,259 9,659 のようにコピーされた数字を、 一つのセルに数字を一つづつ入れるように 一度にペーストする方法はないでしょうか。 回答よろしくお願いします。
506 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 20:18:09
>>505 貼付けた後も、区切り位置を使えばいいんじやね?
507 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 21:00:57
>>505 対象となるWebサイト上で、表ではなくスペース区切りになっているということでしょうか?
メモ帳などに一旦ペーストし、スペースをタブに変換するのが最もお手軽かと思います。
区切り位置のほうが早いだろ・・
>>506 おおおお
できました!ありがとうございます!
今までの印刷→手打ちの労苦は一体・・・
>>507 その通りです。ご指導ありがとうございます。
しかし
>>506 さんの方法で簡単に上手くいったので、
今回はそれを使っていきたいと思います。
510 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 22:13:28
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel XP 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 よろしくお願いします。関数はほとんど使った事がありません。 例:シートA 日 |曜日|店名|商品 ーーーーーーーーーーーーー 3 |月|電気屋|蛍光灯 6 |木|弁当屋|弁当 7 |金|本屋 |雑誌 13|木|電気屋|乾電池 17|月|電気屋|電球 シートAに上記のように、日付曜日別にどこの店で何を買ったかという表があります。 これをシートBで下記のように、シートAの文字を参照してどの店に何回行ったか? というのを簡単に計算できる関数はあるでしょうか? 例:シートB 店名 |行った回数 ーーーーーーーーーーー 電気屋 |3 コンビニ |0 本屋 |1 弁当屋 |1 シートAに"電気屋"という文字があったら+1をして合計を出す。 色々試しましたが分かりませんでした。よろしくお願いします。
>>510 合計回数だけなら COUNTIF を調べてみな。
512 :
510 :2008/10/25(土) 22:29:43
>>511 できました!ありがとうございます!
これで一つ一つ数えなくてすみます。助かりました。
エクセル2003 ウインドウズXP使用です A B C ←列 A-1 りんご 100 A-1 みかん 200 B-2 いちご 300 B-2 みかん 100 C-2 ぶどう 200 このようなデータがあり A列のデータの指定した物をすべて抜き出して表示させたいのです。 よろしくお願いします。 例: A-1 と指定した場合 A-1りんご 100とA-1 みかん 200 を表示。 VLOOKUPでやってみたらかなり思ってるものと近い形にできるのですが 1行しか参照できないので駄目でした。
514 :
513 :2008/10/25(土) 23:42:21
>A列のデータの指定した物をすべて抜き出して表示させたいのです。 >よろしくお願いします。 訂正します A列に入力してあるコード(A-1やB-2など)を同一なものを抜き出して表示させたいのです。 VLOOKUPでいうと A1セルを参照元として表示エリアを作り A1にコードA-1を入力すると 表示エリアにA-1の項目を表示させるということです。
515 :
名無しさん@そうだ選挙にいこう :2008/10/25(土) 23:48:41
オートフィルタじゃだめなのか?
516 :
510 :2008/10/26(日) 00:02:24
さらに質問です。 今度は値段も加えて計算できる方法が知りたいです。 例:シートA 日 |曜日|店名|商品|値段 ーーーーーーーーーーーーーーーーー 3 |月|電気屋|蛍光灯|1000 6 |木|弁当屋|弁当 |300 7 |金|本屋 |雑誌 |500 13|木|電気屋|乾電池 |400 17|月|電気屋|電球 |200 例:シートB 店名 |使用金額 ーーーーーーーーーーー 電気屋 |1600 コンビニ |0 本屋 |500 弁当屋 |300 シートAの店名を参照して使用金額を合計してシートBで表示したいです。 よろしくお願いします。
517 :
513 :2008/10/26(日) 00:09:59
データが縦に膨大にあり 見辛いため オートヒィルタだと厳しいのです
>>517 やりたいことがよく分からない
オートフィルタにしても他の何にしても同じ結果になると思うが
520 :
510 :2008/10/26(日) 00:32:53
>>518 ありがとうございます。
ピボットテーブルやろうと思いましたがよく分かりませんでした。
関数では出来ないでしょうか?
522 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 00:38:53
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 マクロ セキュリティレベル 設定 などなど 問題点 マクロの記録ができない セキュリティレベルのマクロの設定は全てのマクロを有効にした それでもマクロの記録ができなかったので信頼できる場所でフォルダを指定した →できない 誰か助けてください。
523 :
510 :2008/10/26(日) 00:41:08
524 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 01:15:48
何度も失礼します。 下記の表のようにシートAに店別に合計が出してあります。 それをシートBで店別の赤字と黒字の回数を計算したいんですが、 例:シートA 2007年|合計| ーーーーーーーー A店| -30000| B店|+20000| C店|+10000| D店| -10000| 2008年|合計| ーーーーーーーー A店|+10000| B店|-20000| C店|+40000| D店|-20000| 例:シートB 店名|黒字|赤字 ーーーーーーーーーー A店|1回 |1回 B店|1回 |1回 C店|2回 |0回 D店|0回 |2回 シートAの店名を参照し、合計数値が+であればシートBの黒字に+1、 -であれば赤字に+1というような計算を関数でできますか? 店名を参照するやりかたは分かりましたが、 数値の正負を判断し黒字赤字を+1するって事がよく分かりませんでした。よろしくお願いします。
525 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 01:25:04
何度もくどい! もう答える気しねー 全ての関数ヘルプ読んでからコイヤ!
526 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 01:36:16
>>525 ですね。ごめんなさい。
自分で読んでもどれを使ったらいいか、
よく分からなかったからここで聞いてみました。
もう1回自分でも考えてみますが、
もしバカな自分に、手助けしてくれる方いましたらお願いします。
>>524 例:シートA
2007年|合計|
ーーーーーーーー A+ A- B+ B- C+ C- D+ D-
A店| -30000| 1
B店|+20000| 1
C店|+10000| 1
D店| -10000| 1
もうこんな感じで作って例で合計
あとはこれを応用すればどんな集計でもできるだろーからこれで池
>>522 とりあえず確認
記録したことはある?
以前は出来てた?
それは同じPC?
529 :
525 :2008/10/26(日) 01:45:27
>>526 はー!?
COUNTIFもSUMIFもヘルプ見ときゃわかるだろ!
見てねーくせに適当な事各なボケ!!
それにな、言っとくが今回はおバカじゃ理解できないくらいの難易度が跳ね上がってるんだよ!
最初からこの質問なら丁寧に答えるてやったのによ!
えーい大サービスだ!
SUMPRODUCTでググレカス!
>>529 まるで全部自分が回答したみたいな物言いだな。
>>510 レベルの奴にsumproductでググらせて、答えが導き出せるわけないだろうに。
531 :
529 :2008/10/26(日) 01:50:59
怒りで文章グタグタのくせにage忘れたぜ!
>>530 だが、527の方法でも答えを導きだせないだろうな。
ヤツは何も考えようとしてねえ。
533 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 02:21:15
>>528 深夜にありがとうございます
前からできていなかったと思います
しかし、同じ時にインストールした2007wordではマクロがちゃんと使えます
Excelでは相対参照で記録しか選択できない状態です
534 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 02:51:24
>>522 保存先をデスクトップとかCドライブの下にすぐ保存フォルダを作ってそこに保存では、うまくいきませんか?
前の方にファイルのアドレスが長いと保存出来ないってありましたよ。
535 :
510 :2008/10/26(日) 02:54:56
とりあえずすみませんでした。自分の分かる限界で考えてみました。
>>524 の例えばB店の黒字の計算をするとする。
=SUMIF(シートAの店名列,"A店",シートAの合計列)
これでは合計で-20000とでる。そして
=COUNTIF(シートAの合計列,">=0")
で1とでる。
この2つの式って組み合わせれないですか?
もしかして全然考え方や方法が違いますか?
>>535 さっきからちまちま訊いてきてるけど、最終的にやりたいことは何なのよ。
537 :
510 :2008/10/26(日) 03:07:48
>>536 売り上げとか経費とかの表作りです。
今まで関数とか使わず自分で入力していました。
必要箇所だけ入力したらあとは自動で数値が出るとすごく助かるんで・・。
>>537 ・・・・・・。
そうじゃなくて、最終的にどういうスタイルのシートが出来上がるのを希望してるのか訊いてるの。
>>524 が最終形態なわけ?
539 :
510 :2008/10/26(日) 03:26:03
>>538 >>524 は簡単に説明してあるだけです。
もっと細かく商品とか店とかあります。
ただ自分は関数の計算式が知りたいだけです。
自分の頭では限界だったのでお助けをと思いまして。
>>539 だからその「関数の計算式」を、さっきからちまちま訊いてきてるから
最終的に何が知りたいのか確認してんだろうが。
もういい。これで最後だからな。
これ以上訊いてきても誰も答えないと思えよ。
【仮定1】シートAの表はセルA1からセルB10までに入力
【仮定2】シートBの表はセルA1からセルC5までに入力
シートBのセルB2に以下の通り入力。
=SUMPRODUCT((シートA!$A$1:$A$10=$A2)*(シートA!$B$1:$B$10>0))
シートBのセルC2に以下の通り入力。
=SUMPRODUCT((シートA!$A$1:$A$10=$A2)*(シートA!$B$1:$B$10<=0))
541 :
510 :2008/10/26(日) 03:42:25
>>540 まだ試していませんが、ありがとうございます。
やさしい方で良かった!
【OSの種類 】 Windows XP 【Excelのバージョン】 Excel2003 【VBAが使えるか 】 若干 【VBAでの回答の可否】 可 リストを作りたいんですが データ→入力規則→リスト 元の値「a,b,c,d」 これだと最初見えているのは空白で そのセルを選択した段階で選択ボタンが出ますよね これを最初から「a」が選択されている状態で なおかつ「a,b,c,d」以外のものを直接打ち込めるようにしたいのですが その方法を教えてください
>>542 入力する全セルに最初からaを入力しておいたらダメなの?
a,b,c,d以外も入力するなら入力規則にしなくても・・・?
俺の理解不足なのかな?
>>543 私の説明不足です
>a,b,c,d以外も入力するなら入力規則にしなくても・・・?
9割方その4項目しか使わないんですが
まれに例外が生じるのでそのような質問をしました
>>544 入力規則 例外で検索したらあったけどこれじゃだめなの?
546 :
492 :2008/10/26(日) 10:03:32
自己解決しました (技術的には解決してないけど)
>>544 入力規則→エラーメッセージタブ→スタイルを注意に変えると他の値を入れられる
548 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 13:13:11
粘着質問に流されたのでもう一度張ります 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 マクロ セキュリティレベル 設定 HELPは全て参照し実行した 問題点 マクロの記録ができない セキュリティレベルのマクロの設定は全てのマクロを有効にした それでもマクロの記録ができなかったので信頼できる場所でフォルダを指定した →できない 現在のExcelでは相対参照で記録しか選択できない状態です エクセルでのマクロは2007にしてからはできていなかったと思います しかし、同じ時にインストールした2007wordではマクロがちゃんと使えます 誰か解決策を教えてください。
>>548 まずはOSをクリーンインストールしなおしてからOfficeをインストールしてみろ
それで直らなかったらまたどうぞ
因みに、この程度のことが面倒とか言い出すなら、そんなに深刻じゃないってことだから放置の方向で
550 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 14:57:11
>>548 保存先をデスクトップとかCドライブの下にすぐ保存フォルダを作ってそこに保存では、うまくいきませんか?
前の方にファイルのアドレスが長いと保存出来ないってありましたよ。
>>548 とりあえずマクロ有効ブックとして保存し直したらどう?
552 :
名無しさん@そうだ選挙にいこう :2008/10/26(日) 16:04:21
わからないなら答えなきゃいいのにねえw
>>551 確かにそれっぽいな。
いつも互換モードでつかっているから、2007形式でマクロが
使えなくなって驚いた記憶がある w
割り込みでスマンが、久しぶりにここを覗いたら
>>547 の解答
初めて知った。実務的に良解答、座布団10枚あげたい。
ほんとに、思い込みで、知らないって怖いなと思った次第。
質問者にも5枚、あげたいぐらいwww
555 :
名無しさん@そうだ選挙にいこう :2008/10/27(月) 19:38:40
EXCEL2003です。 セルに定義している数式を表示する機能があれば教えて下さい。 カーソルをセルに移動すると、そのセルで定義されている数式が 表示されますが、 この機能ではなく、各セル中に数式が表示されているイメージで、 表の中で定義されている数式が一覧できるようなものです。 よろしくお願いします。
>>554 暇なときに、メニューの端から順に使ってみるといいよ
まだまだ発見あると思う
>>555 ツール→オプション→表示 の 数式
みたいに表示したいの?
558 :
555 :2008/10/27(月) 20:30:18
とある専用帳票(印字枠等が刷られたもの)に、 簡易に印字が出来るよう、Excel2003で作成したワークシートがあります。 印字位置の微妙な調整が出来るよう、 各項目はセルではなくオートシェイプの長方形の中でセル参照しています。 そのうち長い文字列の入る横長の長方形が、 改ページプレビューでは右側の範囲外まで伸びているんですが、 きっかり印刷されます。 最近会社のPCが入れ替えられ、すべてExcel2007になりました。 すると、印刷した際にこの横長長方形については、 改ページプレビューで切れるあたりで、 きっかり文字列が切れてしまうようになりました。 このへんの解消法をご存知の方ありましたらご教示ください。
ありません 昔から続くバグです諦めて作り直しましょう
>>555 Ctrl + Shift + @ でも表示切り替えできる
あまり使ってる人見ないけど
数式の一覧なんて滅多に見ないもんな どうせセルからはみ出して最初の方しか見えないし
おまいら、2007でピボットテーブル簡単に使える? 俺が馬鹿なのか、なんか使えなくなってしまったよ。 2003に戻そうかな。
ピボットテーブルどころか保存もままならない状態だったが、 慣れればそれなりに使えるな ピボットはまだ使ったことはないな 2003に戻せるなら戻したほうがいいと思う
デフォルトの表形式が変わっているからな。 でも将来は今のピボットが主流になるだろうから今から慣れておいた方がいいと思うよ。 どうしても気に入らないなら ピボットオプションの表示タブで「従来のピボットレイアウトを使用」 にチェック入れてみな。
566 :
名無しさん@そうだ選挙にいこう :2008/10/28(火) 16:19:40
【1 OSの種類 .】 WindowsXP Pro【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ【4 VBAでの回答の可否】 否 ※物件数、担当者数は可変 ※[01]等はR1C1方式の行・列座標 [01] [02] [03] [04] [05] [01] 物件1 項目1 A [02] 担当 田中 項目2 B [03] 項目3 C [04] [05] 物件2 項目1 D [06] 担当 佐藤 項目2 E [07] 項目3 F [08] [09] 物件3 項目1 G [10] 担当 佐藤 項目2 H [11] 項目3 I [12] [13] [14] [15] 担当別 [16] 項目1 (A)の計算式α [17] 田中 項目2 (B)の計算式β [18] 項目3 (C)の計算式γ [19] [20] 項目1 (D+G)の計算式α [21] 佐藤 項目2 (E+H)の計算式β [22] 項目3 (F+I)の計算式γ (※田中の『(A)の計算式α』と『(D+G)の計算式α』は同一の計算式にしたい) 上記のような担当別に合計するエクセル計算式を作りたいのですが教えてもらえないでしょうか? SUMIFで出来るかと思ったのですが、どうにもできませんでした。
567 :
566 :2008/10/28(火) 16:24:58
ずれました修正 ※物件数、担当者数は可変 ※[01]等はR1C1方式の行・列座標 [01] [02] [03] [04] [05] [01]物件1 項目1 A [02] 担当 田中 項目2 B [03] 項目3 C [04] [05]物件2 項目1 D [06] 担当 佐藤 項目2 E [07] 項目3 F [08] [09]物件3 項目1 G [10] 担当 佐藤 項目2 H [11] 項目3 I [12] [13] [14] [15]担当別 [16] 項目1 (A)の計算式α [17]田中 項目2 (B)の計算式β [18] 項目3 (C)の計算式γ [19] [20] 項目1 (D+G)の計算式α [21]佐藤 項目2 (E+H)の計算式β [22] 項目3 (F+I)の計算式γ (※田中の『(A)の計算式α』と『(D+G)の計算式α』は同一の計算式にしたい)
>566,567 C列の担当者の上下に =$C$2 とか入れて、セル書式で文字を見えなくするということはできませんか? そしたらSUMIFでいけそうな。
>>566 一番上に1行追加&5列目より前に作業列追加(例は1列目に追加)
作業列の関数
=CONCATENATE(R[-1]C[3],RC[3],R[1]C[3])&RC[4]
※担当者別では少しずれる
担当者別の関数
=SUMIF(R[-15]C[-5]:R[-5]C,RC[-5],R[-15]C6:R[-5]C6)
※6列目(5列目+1)に書く
R1C1形式って関数長くなるなw
>>566 ちょっと工夫すればSUMIFで可能。
=SUMIF(R2C3:R12C3,R[1]C1,R1C5:R11C5)
571 :
569 :2008/10/28(火) 18:48:50
担当者別の関数訂正 =SUMIF(R2C1:R12C6,RC[-5],R2C6:R12C6) 全部相対参照のままだった orz R1C1形式で書くの初めてだったと言い訳しておく
>>568 >>569 ありがとうございます。
でも、今の表に行列を加えたり他のセルをいじったりするわけにはいかないのです。
>>570 ありがとうございます!
これがやりたかったことです。
項目2のβ式は
=SUMIF(R2C3:R12C3,RC1,R2C5:R11C5)
項目3のγ式は
=SUMIF(R2C3:R12C3,R[-1]C1,R3C5:R11C5)
とすればいいのですね。
573 :
名無しさん@そうだ選挙にいこう :2008/10/28(火) 22:13:54
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル,コメント欄以外,説明,オートシェイプなど セルに入力すべき事項が分かるように各セルごとにコメントを入れております。 自分では何を入力すればよいのか分かるのですが、誰でもできるようにマニュアルを つくっているところです。 実はそのコメント欄の数がいっぱいになってしまい、うざくなってしまいました。 そこで、例えば「A1」のセルを選択したら、(〜を入力してください)との説明文が 出るようにしたいのです。オートシェイプの中に説明文が出てくるような感じです。 「B4」のセルを選択したら(4桁を入力してください)等にしたいのです。 何かのエクセルファイルで見たことがあったのですがやり方がわからないので 教えてください。よろしくお願いします。
575 :
573 :2008/10/28(火) 22:27:18
576 :
573 :2008/10/28(火) 22:30:02
>>574 間違えました。574様でした…。
本当にありがとうございました。
577 :
名無しさん@そうだ選挙にいこう :2008/10/29(水) 04:20:08
ここでいいのかわかりませんが、Excelで作ったグラフの系列値を 置き換えていくことって可能なんでしょうか? 具体的には、sheetCで描写したグラフhogeに対して使用されている系列値が 「sheetA!$C$2:$E$2」や「sheetB!$F$2:$M$2」だった場合、 「sheetA!$C$3:$E$3」「sheetB!$F$3:$M$3」といった形になるように 参照先のセルを1つ下をずらしたグラフを作っていきたいのです。 1つずらしては印刷して、また1つずらして印刷してとやれればなおいいんですが、 やはり、かなり難しいVBAを使わないと実現は難しいでしょうか? 【OSの種類】WindowsXP Professional SP2 【Excelのバージョン】Excel 2007 【VBAが使えるか】触り程度なら 【VBAでの回答の可否】可 【検索キーワード】系列値 置き換え グラフ 文字列 などでは検索しました こんな感じですが、ご教示頂ければ幸いです。
>>577 VBAなら簡単にできる。範囲の変更は
ActiveChart.SetSourceData Range("Sheet1!C2:E2")
って1行書くだけ。
グラフの印刷は
ActiveWindow.SelectedSheets.PrintOut Copies:=1
って1行書くだけ。
あとは
>>578 とこれの2行を好きなだけ繰り返せばいい。
>>577 Sub Macro2()
Dim i As Long
Dim e As Long
i = InputBox("最初の行?")
e = InputBox("最後の行?")
For m = i To e
ActiveChart.SeriesCollection(1).Values = "=Sheet1!R" & m & "C3:R" & m & "C5"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next
End Sub
こんな感じ?
最初にグラフ選択だけしておいてね
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか . 】未経験 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 数式が参照しているセルを移動 例えば A B 1 1 = A1 2 という状態からA1をカット&ペーストでA2に書き込むと、 A B 1 = A2 2 1 という状態になります。 B1に書く数式の記述を工夫することで上記の操作をした場合に A B 1 = A1 2 1 になるようにすることは可能でしょうか。 また、可能でしたらそのようにするための数式の書き方を教えてください。
>>578-580 本当にありがとうございます。
グラフを操作した事がなかったので、非常に助かりました。
結果的には、1つのシートにたくさんのグラフが必要だったため、
>>580 を応用させて頂き、以下のような感じでマクロを組む事で無事対応できました。
Sub format_Macro()
Dim i As Long
Dim e As Long
i = InputBox("最初の行?")
e = InputBox("最後の行?")
For m = i To e
Worksheets("format").ChartObjects("grapha1").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet1!R" & m & "C3:R" & m & "C5"
Worksheets("format").ChartObjects("grapha2").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet1!R" & m & "C6:R" & m & "C13"
Worksheets("format").ChartObjects("grapha3").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet1!R" & m & "C14"
Worksheets("format").ChartObjects("graphb1").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet2!R" & m & "C3:R" & m & "C5"
Worksheets("format").ChartObjects("graphb2").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet2!R" & m & "C6:R" & m & "C13"
Worksheets("format").ChartObjects("graphb3").Activate
ActiveChart.SeriesCollection(1).Values = "=sheet2!R" & m & "C14"
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Next
End Sub
実際はもっと複数の多様なグラフを操作していますが、簡単にはこんな感じです。
非常に助かりました。重ね重ね有難うございました。
584 :
581 :2008/10/29(水) 19:33:14
>>582 ありがとうございます。
INDIRECT("A" & ROW())とすることで目的の動作をさせることができました。
585 :
名無しさん@そうだ選挙にいこう :2008/10/29(水) 21:14:29
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Googleやヘルプでの検索キーワード: ピボット 小計 比率 質問です。 ピボットテーブルで 商品A 出荷数 データの個数 商品B 出荷数 データの個数 というように 各商品に対して、出荷数が何回あったか データの個数の比率で出したいのですが、 商品名毎の小計に対して比率で出せないでしょうか? ピボットの元データは 商品-出荷数-出荷日 な感じになっています。 よろしくお願いします。 全体の比率や行に対しての比率ではダメですし、設定できるのでしょうか?
>>585 データの個数をダブルクリック⇒オプション⇒行方向の比率で出せない?
587 :
名無しさん@そうだ選挙にいこう :2008/10/29(水) 21:55:43
列から空白のセルと特定の文字列のあるセルを除いたセルを カウントさせるにはどうしたらいいでしょうか?バージョンは2003です。
>>587 全体の個数から空白と特定の文字列の個数を引く
589 :
名無しさん@そうだ選挙にいこう :2008/10/29(水) 22:08:40
>>588 それ以外に方法は無いんですかね?
もうちょっとスマートにやりたいんですが、
COUNTAIFで条件に、〜は含まずってのはできないんでしょうか。
590 :
名無しさん@そうだ選挙にいこう :2008/10/29(水) 22:30:02
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 超初心者です 【4 VBAでの回答の可否】 VBAでお願いします。 行の挿入、削除を教えてください。 @ A B A B A B C A B C 1 1001 1001 1 1001 1001 1001 1 1001 1001 1001 2 1003 1003 2 1003 1003 1002 2 1002 3 1004 1004 3 1004 1004 1003 3 1003 1003 1003 4 1005 1005 → 4 1005 1005 1004 → 4 1004 1004 1004 5 1006 1006 5 1006 1006 1006 5 1006 1006 1006 6 1007 1007 6 1007 1007 1007 6 1007 1007 1007 7 1008 1008 7 1008 1008 1008 7 1008 1008 1008 @ AB列の数字は同じものが入っています。 A C列に数値が入ります。 B C列に合わせて、A列、B列を挿入、削除したいです。 C列には1002がありますが、A,B列には1002が無いため、A,B列に行の挿入が行われ、次にC列に1005が無いため、A,B列の1005は 行の削除がされると言う具合です。 業務の効率化を図りたいので、申し訳ございませんがどなたか宜しくお願いいたします。 Excel VBA質問スレとマルチになってしまいました。すいません。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル マクロ 相対参照 すみませんが、教えて下い 相対参照でマクロを作るときはマクロの記録を開始しすると 記録終了のツールバーが出てきて隣のボタンを押せばいいのですが、 その記録終了のツールバーが出てきません。 どうしたら出てくるのでしょうか?
どうするとそんな現象になるのか再現できないが ツールバーある辺りの空いてるところで右クリックして 記録終了を選べばえぇんジャマイカ
593 :
591 :2008/10/29(水) 23:32:15
>>592 さん
そういうことではなく、相対参照でマクロを作りたいのですが
作れなくて困っているということです。
説明が下手ですみません。
ん?ツールバーとか並んでるところで右クリック ユーザー設定をクリック 記録終了をチェック ではどう?
>>591 まず、マクロの記録を開始する前に、相対参照と絶対参照はどうやって切り替えてるの?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】微妙 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル マクロ 図の貼り付け あるセル(B1)に入力したファイル名を参照してシート内の結合したセル範囲(A4:G20)いっぱいに画像を貼り付ける というマクロを作ったんですがどうもおかしいです 試しに標準モジュールに同様のマクロを入れて実行してみると想定どおりの動きをするんですが Worksheet_Changeで実行すると必ず選択されたセル(この場合真下のB2)にサイズ調整もしないまま貼り付けてしまいます しかもその後に再び標準モジュールの方を実行してみると最初の動作と違い Worksheet_Changeのマクロと同じ動作をするようになります しばらく放置すると直ったりファイルを開き直すまで直らなかったりします エクセル2007ではどちらも正常動作するようなのですが2003以前のPCでも動作させたいのです いったいどこを直せばいいのでしょうか? ちなみにマクロのここがきちんと動作しません Filename = Range("B1").Value With ActiveSheet .Pictures.Insert (ActiveWorkbook.Path & "\" & Filename & ".jpg") With .Shapes(1) .LockAspectRatio = msoTrue .Parent.Visible = msoTrue .Height = Range("A4").MergeArea.Height .Top = Range("A4").Top .Left = Range("A4").Left End With End With
>>596 (1) 画像を貼り付ける位置(セル)が指定されていない。
(2) 貼り付けた画像と関係ない図形のプロパティを変えている。
(3) 高さだけ合わせて幅を合わせていない。
Filename = ActiveWorkbook.Path & "\" & Range("B1").Value & ".jpg"
Range("A4").Select ' (1)
With ActiveSheet.Pictures.Insert(FileName) ' (2)
.ShapeRange.LockAspectRatio = msoFalse ' (3)
.ShapeRange.Top = Range("A4").Top
.ShapeRange.Left = Range("A4").Left
.ShapeRange.Height = Range("A4").MergeArea.Height
.ShapeRange.Width = Range("A4").MergeArea.Width ' (3)
End With
無駄が多いな。その書き方ならRange.Selectしても意味ないし.ShapeRangeもWithの外に出せる。 むしろ後の作業のことを考えたらSelectしない方がいいんじゃないかとも思う。 FileName = ActiveWorkbook.Path & "\" & Range("B1").Value & ".jpg" With ActiveSheet.Pictures.Insert(FileName).ShapeRange .LockAspectRatio = msoFalse .Top = Range("A4").Top .Left = Range("A4").Left .Height = Range("A4").MergeArea.Height .Width = Range("A4").MergeArea.Width End With
2007で列番号が数字になってしまったんだがアルファベットに戻すにはどうしたらいい? APplication.ReferenceStyle=xlr1c1でできるのは知ってるが、手での操作が分からん。
xlR1C1じゃなくてxlA1だった。
>>599 officeボタン→excelのオプション→数式→「R1C1 参照形式を使用する」のチェックを外す
と、ググったら書いてあった。2007使ったことないんで、わかりづらかったらごめん
602 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 11:51:03
>>586 行方向への比率では出せないのです。全体の比率と同様になってしまいます。
ピボットでは無理でしょうか?
603 :
599 :2008/10/30(木) 12:17:23
>>601 サンクス
officeボタンにあったのか。
リボンをいくら探しても見つからないわけだ。
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 office2000 見つかりません 普通に開ける file:// プロトコル ネットワーク上にNASがあり、その中にHTMLでメニューを作っています。 そのHTMLからハイパーリンクでファイルを指定しています。 アドレスバー上は"file://****/****/**.xls"となっていて、クリックすると 『"file://****/****/**.xls"が見つかりません、*****を確認してください』 みたいなエラーメッセージがでます、でも『OK』をクリックすると普通に開きます。 設定でどうにかできるのでしょうか。よろしくお願いします。 ちなみにoffice2003では問題なしです。
>>604 まずは HTML なのか Excelファイルなのかはっきり汁
606 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 15:41:49
学校ででた課題の、エクセルのマクロの作り方?がいまいちわかりません。 【課題】W大学の「認知科学入門」受講者30名の出席回数と期末テストのデータが「練習(第6回).xlsx」にある。 この授業の評価点は,期末テスト6割,出席4割として算出する。「加藤一さん」の評価点を算出し, 「評価点」の列(たまご色の列)に表示するマクロ(名前は「評価点算出」とする)を書き,ボタンに登録しなさい。 なお,評価点の変数名は「hyoka」,データ型は「単精度浮動小数点数型」とすること (他の変数については,自由に名前を付けてよい。また,データ型は「バイト型」とする)。 加藤一はセルのB2、出席は15回、期末テストは90点 いったいどんなマクロを作ればいいのか全く見当つかず。 評価の出しかたなど、誰か教えてください。
607 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 15:43:31
出席は15回中15回です テストは100点満点中90点です おねがいします。
また凄いバカが現れたなw 同級生に聞きなさい?ボク?
>>605 すいません
ブラウザでメニューを見て、書類名をクリックすると
エクセルが立ち上がってそのファイルが表示される状態です。
610 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 15:48:05
てか、教科書読み直しなさい。 それでもわからないなら先生に聞きなさい。 それでもわからなければわかるまで留年してください。
>>609 つーか、スレ違いなんだよー
htmlの問題だから、2ちゃん検索とかで適当なところに質問汁。
612 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 15:58:07
うるせーしね ちんちんちんちんちんそちんかな?まんぺまんぺ
>>611 そうなんですか?
excel2003が問題ないので、excel2000の問題だとばかり思ってました
ありがとうございました
Excel2000で メルアド、URLがハイパーリンクにならないようにするには どのようにすればよいのでしょうか? よろしくお願いします。
実務やってると
>>606 みたいなのが本当に必要のない学習と改めて思い知らされるね
>>606 問題のファイルアップしてくれたら作るよ
無いと面倒くさいので無理
>615 ありがとうございました。 実は手元に作成者不明のファイルがありまして そこではママでメルアドを入力して確定してもハイパーリンク化しません。 プロパティは文字列で、データプルダウンの入力規則は グレー化したままです。 自分で同じ設定を再現しようとしているのですが なかなかうまくいかないのです。
618 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 17:23:12
>>617 alt+f11でマクロがなければ、よく分からない
ファイルをアップロードしてもらえると有難い
>>606 ものすごく無意味な問題だ・・・
関数で事足りるのに何故VBAなのか先生を問い詰めたいなw
>>614 ,
>>617 入力直後にCtrl+Z
↑の動作をするようなマクロが入ってるとか?
621 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 17:46:22
頭に血がのぼったからって分からない質問に答えなくていいんだよバカはwww ハイパーリンクの設定なんて、オートコレクトのオプション次第だろwwww はらいてえwwww
>>621 /\___/\
/ ⌒ ⌒ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < やるじゃん
| ト‐=‐ァ' .::::| \_____
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
>>621 614のファイルがオートコレクトのオプションで制御してるとは限らないw
614がググったりメニューから弄れるものを手当たり次第に調べた結果分からなかったとしたらマクロじゃね?
>>623 /\___/\
/ ⌒ ⌒ ⌒ ::: \
| (●)(●)(●)、 | / ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < 言い訳見苦しいwwwww
| ト‐=‐ァ' .::::| \_____
\ `ニニ´ .:::/
/`ー‐--‐‐―´´\
625 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 18:02:05
>>616 そういう甘やかしがゆとり世代の弊害を助長するんだよ。
使えない後輩がきて何も考えずに教えてくださいと言われたらどうすんだよ。
多少は自分で考えろボケ!って思うだろ。
まあ、クソ教育委員会が悪いんだなw
>621 2000はオートコレクトにオプションないんだけどな
627 :
名無しさん@そうだ選挙にいこう :2008/10/30(木) 18:06:05
>>606 は絶対にupすんなよ
>>616 みたいな性根腐ってる奴は、消し忘れのドキュメントプロパティ見て、学校を特定してほくそ笑むのが主目的だからwww
久しぶりにバカにバカかぶせて来て最高だわwwww
630 :
614 :2008/10/30(木) 18:25:24
自己解決になってるのかどうかわかりませんが ブックを共有状態にすると ハイパーリンクが無効になるので それを利用してるような気がしてきました
631 :
591 :2008/10/30(木) 21:22:34
>>594 ありがとう。助かりました。
亀レススマソ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 時間計算 バイトの報酬を計算する式を作りたいのですが 深夜手当の時間を計算するために22:00以前と以降の勤務時間を 別々に算出させる方法を教えてください
>>633 質問がざっくりしすぎなので回答も大雑把にしかできないよ
IFを使う
>>633 開始-終了=勤務時間
終了-22時=深夜勤務時間
(22時はTIME(22,0,0))
勤務時間-深夜勤務時間=深夜以外の勤務時間
休憩時間の考慮はして無い
開始がずれても22時以降は深夜?
違っててもその場合の対応ぐらいは考えれるよなw
636 :
名無しさん@そうだ選挙にいこう :2008/10/31(金) 08:54:54
638 :
名無しさん@そうだ選挙にいこう :2008/10/31(金) 10:32:41
エクセル2000 VBA勉強中 ファイルを開いた時にセルA1に今日の日付を入力したいのですが、方法があったら教えて下さいお願いします、できればVBAでやりたいです。
>>640 ひでぇw
>>639 Sub Auto_Open()
Sheets("sheet1").Range("a1").Value = Format(Date, "m/d")
End Sub
Format(Date, "m/d")はdateだけでもいけるけど
まあ、ぶっちゃけVBAなんか使わなくても A1セルに=TODAY() だけでもいいけどなw
643 :
名無しさん@そうだ選挙にいこう :2008/10/31(金) 15:36:31
長い文字列から「特定の文字列以外」の任意の文字が何文字目に出てくるか をエクセルの関数だけで(SEARCHとかで)見つけることってできますか? ちなみにエクセル2002です 00000E0F8 から 0ではない文字列が出てくるのは 6文字目 8文字目 とか 123123124 から 123ではない文字列が出てくるのは 7文字目 とか
【1 OSの種類 .】 Windows Vista SP1 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 office ribbonx group label 非表示 現在、VS2008を使ってエクセルのアドインを作成中です エクセルにタブを追加してボタンを入れ込んでいるのですが、 デザイン上、グループの下に表示されるラベルが邪魔です ラベルのテキストを消してもラベルの跡が残ってしまいます これを消す方法はありませんか?
646 :
645 :2008/10/31(金) 17:19:31
>>643 全角でも半角でもよかった。考えすぎた
上の例でいくと
A1=00000E0F8
A2=0
A3=IF(LEFT(A1)=LEFT(B1),LEN(A1)-LEN(SUBSTITUTE(A1,B1,""))+1,1)
>>643 A1=00000E0F8
A2=0
B1=MIN(IF(SUBSTITUTE(MID($A1,1,ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)),$A2,"")<>"",ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)-LEN($A2)+1))
(配列数式)
C1=IF(B1<>0,MIN(IF((SUBSTITUTE(MID($A1,B1+1,ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)),$A2,"")<>""),ROW(INDIRECT("IV1:IV"&LEN($A1)-1))*LEN($A2)-LEN($A2)+1+B1)),0)
(配列数式)
C1を横にコピーすれば2回目より後の分も出せる
配列数式の使い方くらいはヘルプにあると思う
2003で組んだのでもしかしたら使えないかもしれないw
648 :
647 :2008/10/31(金) 17:45:34
A2は絶対参照のほうがコピーする上で都合がいいかもしれない
649 :
名無しさん@そうだ選挙にいこう :2008/10/31(金) 17:50:59
頭悪い奴がべんきょうするとこうなっちゃうんだなw
650 :
647 :2008/10/31(金) 17:57:35
>>649 あたまわるそうなレスですね
ひとのかいとうけなすまえにもっといいかいとうだせないのか?
気にスンナ。どうせ649には解けないんだから。
652 :
名無しさん@そうだ選挙にいこう :2008/10/31(金) 18:16:09
すみません、 今、セルの中に計算式が入ってるところがあって、 ほかのところを参照した結果がそこに入るようになってるんですが、 それを単なる文字に変換するにはどうしたらいいのでしょう。 「セルの書式設定」で、文字列 にしてしまうと、わけのわかならい文字列になってしまいます。
653 :
647 :2008/10/31(金) 18:16:24
>>651 最初から決め付るのは良くない
649には649なりに何かいい考えが・・・
無いよなw
>>652 そのまま置き換えていいならコピーして「形式を選択して貼り付け」する
右クリックかメニューの「編集」の中に有る
そこで「値」を選択してOK
>>642 それでは条件を満たしてない、条件は「ファイルを開いた時」だ
=TODAY()では他のセルの再計算に釣られて
「ファイルを開いた時」以外にも日付が変わってしまう
まぁ、実際に日付を跨いでブックを開き続けるかは解らないが
その可能性が否定されてない以上、上記は最低限考慮しなければならないことだ
657 :
名無しさん@そうだ選挙にいこう :2008/10/31(金) 18:45:24
>>655 目的の文字決めて、普通に置き替えてからsearchすればok
検索対象文字:A1: 00000E0F8
検索除外文字:A2: 0
検索する文字:A3: =LEFT(SUBSTITUTE(A1,A2,""))
検索する文字の位置:A4: =SEARCH(A3,SUBSTITUTE(A1,A2,REPT("@",LEN(A2))))
べんきょうができる人ははいれつすうしきが好きなようだけどねえ
658 :
646 :2008/10/31(金) 18:56:28
A1=00000E0F8
B1=0
C1=IF(LEFT(A1)=LEFT(B1),LEN(A1)-LEN(SUBSTITUTE(A1,B1,""))+1,1)
だった。死にたい
>>657 A1に@が入るとうまくいかないぞ
入らないならいいんだけど
>>640 涙目になりました…
>>641 助かりました、これから試してみます色々応用効きそうで助かります
>>642 VBAは勉強中だけどエクセル解らないので勉強になりました。
エクセルで有る工業原料の在庫管理表作ろうと思いますが、複数の棒グラフを一枚の 紙に打ち出す、表示するやり方ってありますか? 例 1 作業開始前材料在庫量 2 作業消費材料量 3 作業終了直後材料在庫量 4 材料受け入れ(購入)量 5 次回作業への繰り越し材料量 この5つのグラフを一覧表示して打ち出して壁にはっておきたいのです。 記入要領は、朝8時の始業前に材料個数を点検記録して、終業直後にもう一度 在庫を点検して当日の消費量を算出します。
2 作業消費材料量=3 作業開始前材料在庫量ー1 作業終了直後材料在庫量で 算出します。 さらに在庫が切れる前に材料を購入して作業直後在庫量に加算して次回作業への繰り越し量を 算出します。 これらを横軸に日にちを入れて、11月なら1日から30日まで、縦軸に個数をいれて 縦軸の「11月×日」をそろえて5つのグラフを並べて表示したいのです
662 :
596 :2008/10/31(金) 20:39:53
>>597-598 遅レスになりましたがありがとうございます
頂いたヒントを参考にして色々試してみまして一応こんな感じになりました
ActiveSheet.DrawingObjects.Delete
Filename = ActiveWorkbook.Path & "\" & Range("B1").Value & ".jpg"
With ActiveSheet.Pictures.Insert(Filename).ShapeRange
.LockAspectRatio = msoTrue
.Height = Range("A4").MergeArea.Height
If .Width > Range("A4").MergeArea.Width Then
.Width = Range("A4").MergeArea.Width
End If
HeightAdjustment = (Range("A4").MergeArea.Height - .Height) / 2
WidthAdjustment = (Range("A4").MergeArea.Width - .Width) / 2
.Top = Range("A4").Top + HeightAdjustment
.Left = Range("A4").Left + WidthAdjustment
End With
アスペクト比を変えずに枠内いっぱい、枠の真ん中に貼り付けられました
もっと簡略化できるといいのですがとりあえずありがとうございました
長々と書いてすみません
【1 OSの種類 .】 Windows 忘れました 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ローテーション・マクロ・勤務表・ナンプレ グループ別のローテーション表をつくりたいです。 A〜F班まであって仕事が1〜14週あります。 作業内容も数種類あるのですが下のように縦でも横でも重複させないようにする方法はないでしょうか。 グ 1 2 3 4週 A あ い う え B い う え あ C う え あ い
>663 A〜F班ということは6通り 質問文中には あいうえ の4通り どうやって縦方向の重複を回避したらいいんでしょうか? 中のひらがな部分の設定問題だと思うけど、もっと要件を出してもらわないと 誰も回答のしようがないのでは?
>660 レスのbP〜6に従って質問しないと無視されますよ。
>>664 >作業内容も数種類あるのですが下のように
あくまでも例です。
グループ数と週数は決まってるのですが、まだ作業内容をいくつに分けるか決めてない(2〜3動く可能性も)
のでこの書き方にしました。
>663 質問の追加です。 「横方向の重複がない」とは、質問文中のグループAだけ注目してみると あ、い、う、え ということであれば、14週の間に重複なしのためには あ、い、う、え、お、か、き、く、け、こ、さ、し、す、せ の14個の ひらがなを用意するということですか? 666にある通り、まだ決まっていないのであれば、作業内容は14通り必要。 あとは1文字ずらしだからVBAの出番はない。
>>667 >>668 あ〜そうですね 条件がないと一文字ずらしでいけますね
すみません馬鹿なことを聞きました。
条件を確認してからもう1度来ます。
671 :
名無しさん@そうだ選挙にいこう :2008/10/31(金) 23:29:52
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 こんばんは。よろしくです。 同じ作業を繰り返し操作するのでマクロを記録してみたのですが 一部うまくいきませんでした。 ひとつのブックに複数のシートが7枚ありまして、操作の手順の一つに 必ず左から2番目のシートをcsv形式で1枚目の「A1」の文字列の ファイル名で保存する、というのがあります。 ところが、上記のような保存作業をすると、当該シート名が保存のたびに 変わってしまい、記録したマクロがうまく実行できませんでした。 今回の例でいくと Moduleコード?が出てきて Sheets("計画書1").Select が黄色で塗りつぶしで表示されているので、シート名、「計画書1」を探してエラーになっているものと 推測しています。 (前回の保存でシート名が計画書1から別の名前に変わってしまっているので 計画書1シートを探しに行って見つからず、エラーを吐いているんですよね?) シート名がころころ変わっても、必ず左から2番目のシートに対して 上記のような保存が実行されるよう、修正したいのですが どうすればよろしのでしょうか? よろしくです。
672 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 00:44:45
エクセルで2つ質問があります。 1.セルに20081022と年月日が表示されています。これをVBAで「2008/10/22」 とするのはどうすればよいでしょうか? 2.エクセルでセルの6文字目までをコピーして別のbookに移動させたい のですが、left関数で取得したのをコピーすると数式がコピーされ、 表示された内容がコピーされません。どうすればよいでしょうか?
>>672 1
Sub a()
Selection.NumberFormatLocal = "0""/""00""/""00"
End Sub
2
形式を選択して貼り付け→値
675 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 08:32:50
Excel2000使用者です。 集計表があります。A列に連番(時々空白セルあり)を振ってあります。 別シートに、連番1の隣のセルの数値をそのまま表示させたいのですが、 VLOOKUP(1,A5:A10,2,0) でREFエラーになります。 連番は、特定の列が0だったら飛ばすようにしているので、連番1が何行目かを固定することはできません。 もともとは、特定の列が0の行を詰めて、別シートに上から順に表示したかったのですが、とりあえず連番を振ったらやりやすいかなと思って振っています。 どうすればいいのでしょう。よろしくお願いいたします。
>676 ヘルプでVLOOKUPの説明をよく読んでみ ここで説明を待つより、早いし、わかりやすいぞ
>VLOOKUP(1,A5:A10,2,0) 範囲のまちがいだろ
678 :
671 :2008/11/01(土) 09:55:02
>>673 ありがとう!!!
これでうまくいくと思っていたのですが、、、もう一つダメな箇所がありました、、、。
5枚目のシート(シート名は 名簿 )のセル「B3」に入っている文字列の先頭から3文字を
ファイル名として保存したかったのですが、(B3が、山田太郎 なら、山田太.csvというファイル名で
保存したい)エクセルの記録ではコピペした文字列そのものを記録しちゃってるみたいで
毎回記録したときのファイル名で保存しようとしてしまいます。
どう修正したらよろしいのでしょうか? よろしくです。
この部分がダメなんすよね?
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\naisakubu\デスクトップ\山田太.csv", _
FileFormat:=xlCSV, CreateBackup:=False
679 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 09:56:30
>>674 ありがとうございます!素晴らしいです。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 EXCEL 比較 diff 他人(Aさん)が作ったEXCELファイルがあります。 「○○○ver.1.1.xls」 「○○○ver.1.2.xls」 とファイル名の末尾には,Aさんが独自でつけたバージョンナンバーが付加されています。 しかし,ver.1.1とver.1.2の違いがわからず困っています。 ファイルサイズは微妙に違います。 保存日時は,30分だけずれています。 「EXCELdiff」というシェアウエアで比較してみたところ,シート部分には「差異なし」との結果でした。 ということは,マクロ部分ということになるのですが,マクロの記述も膨大で,とても見るだけでは追いつきません。 「EXCELdiff」はマクロ部分までは比較してくれないようです。 マクロ部分をテキストで出力し,テキストを比較できるソフトで比較するという方法は思いついたのですが, これも膨大ですし,フォームの部分や,パラメータまでは比較できないなと思い,頓挫しています。 何か,良い方法はありませんか?
Aさんは故人です。
いくら膨大っていってもコピーもできないほど膨大なマクロを組んでる事はないだろ?
>680 何がしたいんだ?ただの好奇心か 小汚いクソ野郎の臭いがする
>>680 モジュールをエクスポートしてから比較すればいい。
エクスポートすると拡張子がbasのファイルができるが、これは単なるテキストファイルなので簡単に比較できる。
685 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 11:33:42
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A列に時刻、B列に値が入っていて、これを X軸に時刻、Y軸に値の折れ線グラフ(もしくは点のプロット)にしたいです。 ところが時刻は等間隔ではなく、歯抜けになっています(あるログなのです)。 時刻のダブりはありません。 まずはA、B列を選択して折れ線グラフを作ろうとしましたが、時刻が等間隔ではないため、期待するグラフを作ることができません。 どうしたらうまくいくでしょう?
>>684 モジュールのエクスポートでなんとかやってみます。
ありがとうございました。
>>678 ActiveWorkbook.SaveAs _
FileName:="C:\Documents and Settings\naisakubu\デスクトップ\" & _
Left(Sheets(5).Range("B3").Value, 3) & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False
689 :
633 :2008/11/01(土) 13:47:05
レスありがとうございます
>>634 IFを使うんですか
とりあえずやってみます
>>635 詳しく書いてくださってありがとうございます
22時以降であれば深夜手当なんで書かれた通りにやらせてもらいます
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 無理です・・・ 【5 検索キーワード 】 エクセル 日付 欠ける 欠 挿入 等 検索ワードが悪いのか、なかなかひっかけれませんでしたので質問させて ください。 とある会社の労務担当です。 下記をシートとしてみていただいて、含まれていない日付、文字を自動的に挿入 する適当な関数はありますでしょうか。 行列 A B 1 1月1日 出勤 2 1月2日 出勤 3 1月4日 出勤 4 1月5日 遅刻 5 1月6日 出勤 6 1月7日 出勤 7 1月9日 出勤 例えばA2、A3の間に1月3日が抜けていますので、行2、行3の間に1行 挿入し、列Aには1月3日、列Bには休日と入力します。 この作業を丸4日延々していて、先が見えず気がくるってきましたので何と か助けていただきたくてこのスレにきました。 すみません。
>>690 c2=IF(B2="","休日",IF(DAY(A2)=DAY(A1+1),"","ここに挿入"))
入力後、下までオートフィル
ctrl押しながら列を選択して行き、列を挿入
そしてA列とC列にオートフィルを掛ける
「ここに挿入」がなくなるまで繰り返した後、最後にC列をコピーして値で貼り付け
行を挿入する時、楽な方法がもう一つある
まずどこでもいいので挿入
その後シフト+スペースで行を選択した後、F4を押せば挿入できる
後は慣れれば早くなるだろう
・・・まぁVBA使えば一瞬で終わるけど、関数でやるならこんなところか
>>690 最初から日にちが入っているシートを作って、
そちらにvlookup等でデータを引っ張ってきたらどう?
693 :
691 :2008/11/01(土) 17:59:01
>>690 結果のデータさえ得られればいいんなら、こんな手がある。
(1) 元のワークシートを「表1」と仮定。「表2」のシートを挿入。
(2) 表2のA1に「1月1日」と入力。
(3) 表2のB1に、
「=IF(ISNA(VLOOKUP($A1,表1!$A$1:$B$7,1,FALSE)),"休日",VLOOKUP($A1,表1!$A$1:$B$7,2,FALSE))」
を入力。
※「表1!$A$1:$B$7」の部分2箇所、実際の名前とアドレスに変える。絶対参照($付き)にするのを忘れずに。
(4) 表2のA1:B1を選択してコピー、必要な行数分貼り付け。
あ、かぶった
696 :
690 :2008/11/01(土) 18:10:00
>>691 ありがとうございます。ミスが減りそうで嬉しいです。
やはり関数だけですと最終的に力技になってしまいますね。VBA関連
の本を買って勉強します。
>>692 Sheet間のデータ移動もしたことがありませんが、非常に興味があります。
vlookupについて調べてみます。ありがとうございます!
697 :
694 :2008/11/01(土) 18:13:01
すまん間違ってた。訂正 (2) 表2のA1に「1月1日」と入力。表2のA2に「=$A1+1」と入力。 (4) 表2のB1をB2にコピー。そのあとA2:B2をコピーして、必要な行数分貼り付け。
698 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 18:22:27
>>658 そのように
A1:00000000000000001200000012
B1:00
C1:=IF(LEFT(A1)=LEFT(B1),LEN(A1)-LEN(SUBSTITUTE(A1,B1,""))+1,1)
とすると
23というトンチンカンな数字になるんですが・・・17になってくれません
あとこの場合に2回目の25を出したい場合はD1にはC1のどこを変化させれば良いのでしょうか
700 :
690 :2008/11/01(土) 18:51:21
>>694 ありがとうございます。日付挿入の件が難なくクリアできました。
すでに作成している年間勤務表があるので組み込んでみます。
すみませんがもうひとつ。
B列間の値移動はできたのですが、同じ条件でのC列間の移動も下記の式で
よろしいでしょうか?(実はC列にも退出時刻の数式があります)
例
A B C
1月2日 出勤 19:00
下記の式ですとB列と同じ値が入ってしまいます。
=IF(ISNA(VLOOKUP($A3,表1!$A$1:$C$7,1,FALSE)),"休日",VLOOKUP
($A3,表1!$A$1:$C$7,2,FALSE))
お手数ですがよろしくお願いします。
701 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 19:10:58
>>699 鵺とか錵とかみたいな普通に使わない文字は出てこないと思います
とりあえずその方向で
>>657 の案に従ってみます
:$C$7,2 ⇒ :$C$7,3 少しくらい努力しる!
>>700 まだvlookupについて調べてないようだなw ヘルプぐらい読んどけな。
「=IF(ISNA(VLOOKUP($A1,表1!$A$1:$C$7,1,FALSE)),"",VLOOKUP($A1,表1!$A$1:$C$7,3,FALSE))」
これをC1に入れて下へコピー。
704 :
690 :2008/11/01(土) 19:39:21
>>702 >>703 申し訳ないです・・・でも本当にありがとうございます。
連休の間に土台仕上げれそうです。助かりました!
705 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 22:15:50
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 (マクロ入門) A B C D E F 1 商品名 No. 納品日 2 1日 2日 3日 3 コーラ 100 24 4 ペプシ 101 24 24 5 一番絞り 102 24 48 6 黒ラベル 103 48 今、こんな感じで納品の管理してるんですが、 (商品No.)を入力したら (商品名)が画面に出力されて (納品日)を入力 (納入数)を入力すると自動的に 所定のセルに納入数が入力されるやり方ってあるんでしょうか? 頭悪いコなんで、説明が分かりにくかったら教えてくれれば追記します。 イメージ的には表の上のほうに↑の操作ができるスペースをつくりたいんですが お願いします。
>>705 ワークシートの上だけでもなんとかできないことはないけど、
そういうのは普通はフォーム(入力フォーム)を作るもんだよ。
707 :
名無しさん@そうだ選挙にいこう :2008/11/01(土) 22:30:23
>>706 なるほど。入力フォームを頑張ってつくってみます
サンクス
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 並び替え 改行 縦 横 x A1 y B1, x A2 y B2, x A3 y B3 x A4 y B4, x A5 y B5, x A6 y B6 x A7 y B7, x A8 y B8, x A9 y B9 こんな感じで並んでるtxtデータがあって、Excelで使えるように A1 A2 A3 … B1 B2 B3 … こんな風に並び替えたいんだけど、どうすればいいだろう 手作業ではキツイ量なので・・・
>>708 xとかyってのは数字?で、xとyのペアがスペースとコンマで区切られて3つずつ並んでるの?
>>708 AとBの2列じゃなくて縦1列に並べるの?
>>709 そうです。xとyは記号で、数字だけを取り出したい。
一部抜粋すると、こうなってます。
x 648 y 758, x 638 y 968, x 415 y 104
x 470 y 428, x 471 y 294, x 472 y 972
x 748 y 275, x 474 y 294, x 875 y 294
x 476 y 294, x 168 y 294, x 455 y 858
>>710 直接Excelに出力するなら2列でも構いません。
>>711 元のデータって列と行どれくらいあるの?
数字だけ取り出すなら貼り付けて区切り位置つかって 後は置き換えでxとy消せばいいとおもうんだが 順番が大事ならそのあと6列しかないんだし連番ふって並び替えでいいとおもう
715 :
708 :2008/11/02(日) 00:01:05
解決しました。ありがとうございます。
716 :
671 :2008/11/02(日) 00:31:10
>>688 うまくいきました!!
どうもありがとうございました。
>>711 A1に貼り付け
データ→区切り位置→スペース
全体を選択、「,」を入れて置換後は何も入力せずに置換
B1に「x」が入ってたらok跡は
N1=INDIRECT("r"& INT(ROW()/3)+1-(MOD(ROW(),3)=0) &"c"& (MOD(ROW(),3)+IF(0=MOD(ROW(),3),3,0))*4-1 &"",0)
O1=INDIRECT("r"& INT(ROW()/3)+1-(MOD(ROW(),3)=0) &"c"& (MOD(ROW(),3)+IF(0=MOD(ROW(),3),3,0))*4+1 &"",0)
718 :
717 :2008/11/02(日) 07:51:33
ちと冗長だった
>>711 結果は同じだけど
=INDIRECT("r"& INT((ROW()-1)/3)+1 &"c"& (MOD(ROW()-1,3))*4+3 &"",0)
=INDIRECT("r"& INT((ROW()-1)/3)+1 &"c"& (MOD(ROW()-1,3))*4+5 &"",0)
テキストエディタで , → 改行 y → , x → 削除 スペース → 削除 って置換すれば普通のcsvになる。
EXCEL2003,および2007で,社内ネットワーク上のファイルを開くとき, (1)はじめにEXCELを起動してから,「ファイルを開く」から選択する。 (2)エクスプローラなどで,当該のファイルを選択する。 の2つの方法がありますが,(1)は一瞬で開くのに対して,(2)は3分ほどの時間が かかり,実用に耐えません。原因,及び解決策を教えていただきたいです。
>>722 解決策:はじめにEXCELを起動してから,「ファイルを開く」から選択する。
>719 勉強になりました
>>722 やったことないけどドラッグ&ドロップは?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 勉強中 【4 VBAでの回答の可否】 可 【5 検索キーワード 】If〜Thenステートメント 日付 曜日 始業 終業 時間内 時間外 上のような勤務日報で土曜日のときに時間外に条件分岐して 入力したいのです。 今は相対参照のマクロで始業終業時間内が入るようになっていますが 就業時間入力後 If AcctiveCell Offset(0,-2).Range("A1").Value="土"Then AcctiveCell Offset(0,2).Range("A1").Select. AcctiveCell FormulaR1C1="8" End If 時間内入力 といれても上手くいきません。多分基本的なことが 分かってないのでしょう。教えてください。 関数を入れれば簡単なのですが、事情があり関数は使えません。 日付 曜日 始業 就業 定時 時間外
>>726 × AcctiveCell
○ ActiveCell
× ActiveCell Offset
○ ActiveCell.Offset
× ActiveCell.Offset().Range().Value
○ ActiveCell.Offset().Value
○ Range().Value
○ ActiveCell.Value
(1) スペルが違う (2) オブジェクトはスペースではなくピリオドで区切る (3) 存在しないオブジェクトを参照している
>>727,728 ありがとうございます。 スペルはVBAを見たら間違っていなかったです。tohoho その存在しないオブジェクトという意味がわかりません。 どういうう考え方で行けばいいのでしょうか?
>>729 きちんと勉強したいならVBAの本をなんでもいいから1冊読む。基礎が出来たら必要に応じてMSDNを見る。
とりあえず動けばいいのならぐぐって人の作ったプログラムをコピペする。
>>729 ActiveCell ←これがオブジェクト
Offset() ←これもオブジェクト
Range() ←そしてこれもオブジェクト
Value ←もちろんこれもオブジェクト
オブジェクトを並べる順番と使える組み合わせはきちんと決まっている。
このルールを破るとオブジェクトのエラーになる。
詳しいことはヘルプを見れば書いてあるけど、最初のうちはサンプルをコピペしつつ
ひたすら暗記していくしかない。
>>726 やりたいことかけば誰かが造ってくれると思う
それを見ながら勉強するのもいいかも
731はもっと勉強しなされ
734 :
726 :2008/11/03(月) 15:11:46
>>732 やさしいご意見ありがとうございます。
731さんの言うことももっともなのでいろいろググってはいるのですが
なかなか良いサンプルが見つかりません。オブジェクトとは何かということは
わかります。本も持っているのですが、If〜ThenとOffsetを組み合わせる
やり方は載っていません。さてやりたいことですが、
日付 曜日 始業 終業 時間内 時間外
1 木 9:00 18:00 8
2 金 9:00 18:00 8
3 土 9:00 18:00 8
今、相対参照のマクロで9:00(基点) 18:00 8 とはいるように
なっているのですが、土曜日のときに時間外に 8 をいれたいのです。
今のマクロを生かしながらIf〜Thenを入れれば良いと思いますが、
親切な方教えてください。
735 :
726 :2008/11/03(月) 15:15:19
表がずれてしまいました。 土曜日は時間内が空白、時間外に8がはいります。 見苦しい点をご容赦ください。
>>731 正確にはどれもオブジェクトではなくプロパティね
上3つに関しては戻り値としてオブジェクトを返すが
それら自体はプロパティというメンバの1つ
ActiveCellプロパティが返すのがActiveCellオブジェクトなら区別する必要も無いかも知れないが
ActiveCellプロパティが返すのはRangeオブジェクトだからな
更にRangeオブジェクトのValueプロパティに関しては、戻り値もオブジェクトじゃないし
ついでに言うと、「オブジェクトを並べる順番」なんて言い方は不適切だ
オブジェクトそのものは並べるものじゃない
オブジェクトの次(下)に並ぶのは、オブジェクトそのものではなくメソッドやプロパティなどの下位メンバ
それらの下位メンバがオブジェクトを返す場合は、その返したオブジェクトの下位メンバを更に次に並べられるだけ
そしてVBEならオブジェクトの持つ下位メンバは、オブジェクトの型が定義されていれば候補表示や自動補完が利くから
ひたすら暗記する必要なんて無く、よく使うものに関しては暗記してたほうが効率が良いって程度でしかない
まあテキストエディタでVBAコード書くなら話は別だがな
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 全くわかりません 【4 VBAでの回答の可否】 否 【5 検索キーワード 】グラフ データマーカー エクセルから散布図を作ろうとしているのですが、データマーカーで困っています。 オプションで組み込みの物からマーカーを選べるのですが、オリジナルで作ることは可能でしょうか? 選択肢の一番下に図のマークがあるので、どこからか読みこめるのではないかと思うのですが… 出来ないならそれで諦めもつくのですが、調べてもわかりません。 どなたかご存じの方おられましたらご教授ください。
>>737 マーカーの種類の一番下のアイコンの意味はわからないけど、
マーカーの変更はExcelの前のバージョンと同じ手順で出来る。
まずワークシートにマーカー用の画像を挿入(メニューから挿入→図)。そしてその図形を切り取り。
次にグラフ内のマーカーをクリックして選択状態にしてから貼り付け(Ctrl+V)。
これで変更できる。
739 :
737 :2008/11/03(月) 18:09:39
>>738 さま
ありがとうございます!できました!!こんな簡単な方法だったとは。
本当にありがとうございました!!
>>734 Option Explicit
Sub unko()
Dim gyo As Long
Dim i As Long
gyo = Range("B10").End(xlUp).Row
For i = 1 To gyo
If Range("b" & i).Value = "土" Then
Range("b" & i).Offset(0, 4).Value = Range("b" & i).Offset(0, 3).Value
Range("b" & i).Offset(0, 3).Value = ""
End If
Next
End Sub
あえて冗長なコード。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 不可 【4 VBAでの回答の可否】 否 A列:商品コード B列:商品名 0001 アイス1 0001 アイス1 0001 アイス1 0002 チョコ 0002 チョコ 0003 ガム 同じ「0001」の行を一まとめにして、0001、0002、0003としたいのですが… お願いします。
>>741 オートフィルタオプションで重複データを無視するか何か
>>741 C2に=EXACT(A1,A2)と入力してオートフィルで下に引っ張る
オートフィルタでC列TRUEを抽出
TRUEのある行を全部削除
0001 アイス3
にしたいんだったら知らん、最初からそう言えと
744 :
名無しさん@そうだ選挙にいこう :2008/11/04(火) 00:11:24
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 Excelでセルへの貼り付けをハイパーリンクの挿入を選んでブラウズしたページを 選ぶと、ブラウズしたページが表示されますが、これをひとつずつセルに貼るのではなく、 すべてのブラウズしたページのURLをセルに貼る方法はないでしょうか。 PCが突然クラッシュしてしまい、必要なURLをブックマークに入れてなかったので 大量に閲覧した中からどこにあるか探したいのですが、 ひとつずつしかセルに貼る方法が見つからず困っております。
746 :
名無しさん@そうだ選挙にいこう :2008/11/04(火) 00:40:50
>>745 レスありがとうございます。
その方法ではURLがわかるだけでHistoryフォルダの一覧のコピーはできないです。
748 :
747 :2008/11/04(火) 13:07:20
スリーウェアってなんだ・・・orz 訂正 × スリーウェア ○ フリーウェア
749 :
名無しさん@そうだ選挙にいこう :2008/11/04(火) 15:18:12
教えてください 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 関数 分母 割り算をしたあとに書式設定で表示形式を分数にすると分数表示ができるのですが その分母(できればついでに分子も)の数字を個別で取り出したいのです たとえば A1:1080 A2:6400 A3:=A1/A2 としてA3を分数表示にすると 27/160 になるのですが、ここからさらに A4:27 A5:160 のように関数を使って分母と分子を抜き出すことはできますか? 分母だけでも抜き出せればA4の分子はなんとかできそうな気もしてはいるんですが・・・
分析ツールをアドインすれば関数GCDで最大公約数が求まりますのでそれを利用
最大公約数じゃねーやOTL
さらにOTL
>>749 =TRIM(LEFT(TEXT(A3,"# ???/???"),FIND("/",TEXT(A3,"# ???/???"))-1))
=TRIM(RIGHT(TEXT(A3,"# ???/???"),LEN(TEXT(A3,"# ???/???"))-FIND("/",TEXT(A3,"# ???/???"))))
※1/1000とかは誤差のため算出できない模様
もしくは
>>750 を取り入れて
=A1/GCD(A1,A2)
=A2/GCD(A1,A2)
かな?
17/13,1/1000,17/1024とかでテストしたら
GCD(17,1024)=1→17と1024になる
なのにTEXT(17/1024,"# ???/???")とセルの書式の方はは13/783になった
0.0166015625=0.0166→13/783って丸めてる模様
>>749 が何をしたいのかにもよるけど最大公約数使ったほうがいい希ガスw
754 :
753 :2008/11/04(火) 16:20:00
書式設定をユーザー定義の「# ????/????」とかにして?をセルにある数値の最大桁数分にすればいいだけか・・・ でもこれだと1025/1024が「1 1/1024」 そして最大公約数は1 これでいいのか?
xlsファイルが約1万点あります。(シートは1つしかありません) それらをタブ区切りのテキストに書き出したいのですが、 いい方法はありませんでしょうか。
>755 レスのbP〜6に従って質問しないと無視されますよ。
グラフの軸の書式で、 単位を1.0E-6とかの指数表示でなく 1.0m (マイクロ) という表示は出来ますか?
>>755 バイトを10人使って1000個ずつ処理させる
開いて名前を付けて保存、1個10秒として約3時間
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 2000 互換 2007 2007で作成したファイルを2000で開く方法を教えて下さい。 MSのホームページから FileFormatConverters.exe をダウンロードして実行したのですが 2007のファイルを開こうとすると ファイルの形式を認識出来ないというメッセージボックスが出て うまく読み込めません。 どなたか宜しくお願いします。
>>757 そのままではできない。
作業列に1000000倍した数値を用意しておく必要がある。
761 :
757 :2008/11/04(火) 17:59:51
質問テンプレ忘れていました、 【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 不可 【4 VBAでの回答の可否】 不可 でお願いします。
>>759 Office互換機能パックは、あくまでも新形式のファイルを読み書きできるようにするだけで
古いExcelをパワーアップする物ではない。
だから2007で強化された新機能を使ったブックは開くことができない。
763 :
757 :2008/11/04(火) 18:05:36
【1 OSの種類 】 WindowsXP pro sp2 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか 】 使えません 【4 VBAでの回答の可否】 不可 【5 検索キーワード 】 エクセル 書き出し xlsファイルが約1万点あります。(シートは1つしかありません) それらをタブ区切りのテキストに書き出したいのですが、 いい方法はありませんでしょうか。
765 :
名無しさん@そうだ選挙にいこう :2008/11/04(火) 19:12:38
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 不可 【4 VBAでの回答の可否】 不可 教えて下さい。 あるSheatだけ文字入力後にセルを移動する方向を右にしたいのですが… オプション→編集→入力後にセルを…だと全てのエクセルファイルで適用されてしまいます。 個別のSheatあるいは、ファイル単位で設定できないのでしょうか?
>>765 マクロ使わないとたぶん無理。
あと Sheat → Sheet
>>764 マクロ使わないと無理。
VBA不可なら人海戦術しかない。がんばれ。
769 :
名無しさん@そうだ選挙にいこう :2008/11/04(火) 20:11:54
>>767 回答とご指摘、ありがとうございますm(__)m
地道にマクロ組みます。
770 :
764 :2008/11/04(火) 20:30:08
>>768 さん
マクロにトライしてみたいのですが、
参考なページありますでしょうか。
771 :
766 :2008/11/04(火) 20:41:07
>771 おきのどくに、プッ
>>770 そこから聞いてるようであれば書籍を買った方がいい
そこで金を惜しむような奴はwebの情報ではマクロは組めない
仮に組めても次に繋がらない
表1 10/1 いちご 1個 10/1 ぶどう 2個 10/2 いちご 1個 10/3 りんご 3個 10/3 ごりら 2個 10/3 ぶどう 1個 表2 10/1 150円 5000ポイント 1人 10/2 350円 200ポイント 5人 10/3 500円 10ポイント 15人 このような表がありまして以下の事をしたいのですが 表作りや方法などでアドバイスお願いします。 やりたい事 ・日付ごとにソートもしくはピックアップ(VLOOKUPのような)感じで並べ替えたい ・例えば10/1をソートしたとしてオートフィルタを使えば容易いのですが 表2も10/1分を表示させたいのです(10/1とつくものをすべて表示、もしくは上位にソートする) こうした場合、ひとつの表だと表2の部分がネックとなり表を分ける以外にうまいつくり方が思いつきません。 アクセス向きな気もしますがご助言をお願いします。 【そのた事項】 ・表1の日付は重複しますが、表2の日付はかならず一意となります。
776 :
775 :2008/11/04(火) 21:50:10
わかりづらいので訂正します。 10/1の状態が見たいとした時に 10/1 いちご 1個 10/1 ぶどう 2個 10/1 150円 5000ポイント 1人 こういう形で表示したいのです。いちごなどの品名はおよそ20種類くらいあり 一日ごとに種類を分けて表示しなければならないため 日付の行が重複します。 そのため表2を表1の列のつづきに加えると 10/1 いちご 1個 150円 5000ポイント 1人 10/1 ぶどう 2個 150円 5000ポイント 1人 このように冗長になってしまうので見栄えが悪くなってしまうのです。
777 :
名無しさん@そうだ選挙にいこう :2008/11/04(火) 22:03:13
テンプレ使わないくせに長ったらしい質問する人には教えたくありません。
>>755 ExcelのVBAでファイル開く→TAB区切りテキスト保存するってのをループ
させれば何時間かすればできるんじゃね。
>>776 >こういう形で表示したいのです。
じゃあそれで作ればいいじゃん。何が聞きたいのかわからない
マクロの記録
>>764 ちとスレ違いな回答かもしれんが、その目的のファイルだけOOoで開いてみてはどうかな?
>>777 別に何でもいいから答えてあげればいいじゃん。答えないほうがよっぽど不要なレスだと思う
>>758 みたいなネタのほうがよっぽど価値があるよ?実際採用するかもしれないしねw
782 :
764 :2008/11/04(火) 23:36:05
783 :
名無しさん@そうだ選挙にいこう :2008/11/05(水) 00:07:19
XP 2003 アクティブセルの枠線(というのかセル位置を示す表示枠というのかな?)を 非表示にしたいのですが、できますか? 念のためですが方眼紙のようなセル枠のことではないです。
784 :
名無しさん@そうだ選挙にいこう :2008/11/05(水) 00:26:33
10/1 いちご 1個
10/1 ぶどう 2個
10/2 いちご 1個
10/3 りんご 3個
10/3 ごりら 2個
10/3 ぶどう 1個
10/1 150円 5000ポイント 1人
10/2 350円 200ポイント 5人
10/3 500円 10ポイント 15人
これでいいじゃないか?なにを悩んでるんだ?
>>776
785 :
777 :2008/11/05(水) 00:40:16
>>781 ちょっと待て。俺のは教育だ。
強制力はないがルールがあるから教えてた。
お前の方がある意味無駄レスだ。
>>784 表が2つに分かれてるからフィルタが使えずVLOOKUP使ってるんだとさ。
一枚にまとめろというのは正論だな。
>>783 アクティブセルが見えない位置までスクロール
そのまま(アクティブセルが見えない状態で)入力したいならフォームを使う
787 :
777 :2008/11/05(水) 08:56:08
>>783 ツール→オプションのどこか(表示あたり)に
「行列番号を表示する」のようなチェックボックスがあったはずだから
そのチェックを外す。
選択範囲の囲み線のことだろ
>>788 あーそれかー
すまん、787はスルーで。
>>660 壁に貼るんなら別々に5枚印刷して並べて貼っても何も問題はないと思うんだけど、1枚にまとめたい意図は?
そもそも1枚の紙にグラフ5つじゃ、それぞれが小さくなって、壁に掲示するには適さないサイズになるような気も。
>>784 それだと日付、名前、個数?と名前付けしてたときに
おかしくなるだろう。
日付 名前 個数 値段? ポイント 人数?
10/1 いちご 1個 150円 5000 1人
10/1 ぶどう 2個
これでオートフィルタでいいじゃん。同日は空欄な。
>>794 バカがよく釣れると考えつつニヤニヤしてる。
>>777 ,787
批判や愚痴や感想、、、回答はしないの?
突っ込みたい気持ちは分かるけど、雑談はほどほどに
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】エクセル グラフ マクロ 色分け 3次元縦棒グラフで一定値以上の棒を色分けしたいのですが、 マクロでどのように記述するか教えて頂きたいです。。。 C言語は触ったことがあります。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 入力規制 関数 同じ行 同じ行内で、あるセルに日付を入力すると、もう一方のセルに日付が入っていたら 自動的に消したいのですが、どうすればよいかわかりません。 例 A B 1 成約日 見込み 2 11/7 11/6 成約した場合、A2に日付を入れるとB2の日付が自動的に消えるようにしたい。 A2とB2の両方に日付が入らないようにしたいです。 よろしくお願いします。
条件付書式で文字色を白にするとか
>>798 C言語の知識があるだけでは無理でしょう。VBAでグラフを始めとするExcelの各機能を操作するには、
それぞれに固有のメソッドとプロパティを知らなくてはなりません。
とりあえず、こんな感じになります。
Sub Macro1()
ActiveSheet.ChartObjects("グラフ 1").Activate
With ActiveChart.SeriesCollection(1)
f = .Formula ' 元データの範囲を取得
f = Right(f, Len(f) - InStr(f, "!"))
f = Left(f, InStr(f, ",") - 1)
i = 1
For Each x In Range(f)
If x >= 5 Then ' 色分けの条件
.Points(i).Interior.Color = RGB(255, 0, 0) ' 色1
Else
.Points(i).Interior.Color = RGB(0, 255, 0) ' 色2
End If
i = i + 1
Next x
End With
End Sub
回答者のレベルが低い
806 :
名無しさん@そうだ選挙にいこう :2008/11/06(木) 23:48:35
質問していいでつか?(かなり初心的だと思いますが。)よろしくおねがいします。 ■あるデータがあるとして、、、関数を使って数値1をだす →その数値1をまた関数を使って数値2をだしたい。。。のですができません。空白になってしまいます。 わかりません、くわしいかた教えてください、よろしくおねがいします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい(ちょっと) 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 オートフィルタ 複数列 お世話になります。 Excelのオートフィルタが便利でよく利用するのですが、次に示すことができないか教えてください。 簡単のために、次の4行3列の表を考えます。 A B C 1 x y z 2 α a a 3 β b a 4 γ a b オートフィルタは1行目にかけます。 ここで、2行目のB列またはC列に『b』が含まれる行のみ抽出したいです。 検索キーワードでヒットするページにあるとおり、 別途列を追加して、B列かC列に『b』が含まれるフラグの列を追加する、と、 B列かC列に『b』が含まれる行を簡単にフィルタで抽出できるのですが、列を追加するという方法をとらずに、ORのようなフィルタをかけることはできませんか? よろしくお願いします。
809 :
808 :2008/11/07(金) 00:01:55
連投しつれいします。808です。 VBAのコードを書く際に、Excelの標準のVBAエディタを用いるほかに、編集する方法はありますか? 秀丸エディタで編集できれば、最も助かるのですが。 (検索時にハイライト表示したい。) (タブや半角・全角スペースを目視できるように表示したい。) (WinMargeなどで簡単に比較したい。(これをもっとも希望しています。今はコピペにより別ファイルに保存してから…)) 御存知の方、どうか御教示の程、よろしくお願いします。
810 :
798 :2008/11/07(金) 00:10:12
>>802 やってみたところできました。
奥行きがあって見にくいデータも一目で確認することができました。
さらに数色に分けられるよう書いてみようと思います。
ありがとうございました!
811 :
名無しさん@そうだ選挙にいこう :2008/11/07(金) 00:30:58
>>747 様
そのスリーウェアできちんと取れました。
ありがとうございました。
812 :
799 :2008/11/07(金) 00:51:54
皆様、回答ありがとうございます。 VBA使わないと無理ですか・・・。 VBAでもコードが複雑で難しくなりますか? もし、そんなに難しくないコードでできるなら、 どなたか教えていただけませんか? なんとか挑戦したいと思います。 よろしくお願いします。
>>812 A2に何かデータが入ったらB2を消す
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A2").Value <> "" Then Range("B2").Value = ""
End Sub
たったこれだけのことなんだけど、VBAを使わないとできないんだよな。
印刷しない、あるいは別の数式で集計したり日時を調べたりしないんなら
条件付き書式で文字を白にして見えなくした方が簡単かも。
2007なら条件付き表示形式で条件がそろったら "";"";"";"" になるようにすれば良いと思うけど
>>814 それでもデータが見えなくなるだけで削除されるわけじゃないから白くするのと大差ないような
816 :
799 :2008/11/07(金) 01:14:55
>>813 >>814 早速、回答頂けて嬉しいです。
セルに日付を入れることで、別のIF関数に関連するように
なってます。
VBAに挑戦してみます!
条件付き表示の方法も試してみたいと思います。
助かりました。ありがとうございました。
>>816 折角なので、複数セル対応版を書いてみた。
まだ見てるかわからんけど一応。
Private Sub Worksheet_Change(ByVal Target As Range)
If Cells(Target.Row, 2) <> "" Then
Cells(Target.Row, 2).Offset(0, -1) = ""
End If
End Sub
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 複数条件 平均 可変データ Aに年齢,Bに所属,Cに役職,Dに給与で構成された挿入・削除が可能なデータがあって, 別シートの指定セルに,例えばA社所属で役職が一般の人数,平均年齢・平均給与,B社所属で・・・等を 入れたいのですが,うまくいきません.年齢のデータは○歳という形式なのでaverageも使えないようです. 平均を出すためにまず合計を出そうとして,SUMPRODUCTが使えるとネットで分かったですが,ネットのはどれもデータ数が固定なので 安直に65536行まで調べるという手段に出たのですが,処理が重くどうにもなりませんでした. SUMPRODUCT((sheet1!A2:A65536="A社") * (sheet1!B2:B65536="一般") * (sheet1!D2:D65536)) このような感じで記述しました.
>>818 作業列を使ってピボットかなぁ
A2に年齢が入ってるとするとE2辺りに=SUBSTITUTE(B2,"歳","")*1
そんでピボットにほうりこむ
820 :
名無しさん@そうだ選挙にいこう :2008/11/07(金) 07:41:35
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 入力規制 リスト エクセルのセルに、リストから選択する形式での入力制限をかけたいのですが、 下記のようにリストの1バイト目(数値)のみをセルに反映させる仕様にできないでしょうか。 例) プルダウンリスト 左記のプルダウンを選択後、 セルに反映させたい値 1:対応未定 1 2:次期対応 2 3:対応済み 3 4:未定 4 以上です。 よろしくお願いします。
>>820 作業列作って=LEFTB(A1,1)みたいにしてそこに名前の定義付けてリストの対象かなぁ
2007を使っています。 パスワード付きでexcelで貰ったファイルがあるのですが 毎回パスワードを入力するのが面倒です パスワード入力が不要になるように編集したいのですが どうすればいいのでしょうか?
>>822 2007のファイルで通用するか分からないけど、
新規ブック作ってそこにシートをコピー
824 :
名無しさん@そうだ選挙にいこう :2008/11/07(金) 10:00:51
あるセルに文字列があって、そのセルに AAA-X11-BBB CCC-X10-DDD (A,B,C,Dは数字とアルファベットが入ります) の、ようになっています。 別のセルにIF文を使って、X11が含まれていたら1を出力、 X10が含まれていたら2を出力、ということをやりたいの ですが、何かやり方はありますか?
>>823 コピーするとパスなしで開けました
ありがとうございました
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 シート、ロック、保護、メッセージ 複数のセルをロックしてシートを保護 保護されたセルをダブルクリックした時に出るシステムメッセージ 「変更しようとしているセルまたはグラフは保護されているため・・[OK]」を表示しないようにしたい ようは間違えて保護されたセルをダブルクリックした時のメッセージが鬱陶しい (いちいちOKを押すことを強要される)んで Worksheet_BeforedoubleClickっでCancel = Falseにした時のような”無反応”を ロックしたセルだけに適用したいということです ネット検索で見つけたのは ・アクティブなセルごとにVBA(←ロックしたセルは不規則に散在しており労力かかりすぎます) ・セルに透明なテキストボックスを被せて、それのクリックイベント無しにすればいい(←それはちょっとw) ・「システムメッセージの意味わかってますか?警告何ですよ?出て当然です!」 等でした 「特定のセルは編集できないようにしてる」って担当者には説明してますんで、メッセージは不要なのです
827 :
826 :2008/11/07(金) 11:12:29
あ、できた・・すいません、質問終了します・・ If ActiveCell.Locked = True Then Cancel = True Exit Sub End If
>>824 =IF(ISERR(FIND("X10",A1)),IF(ISERR(FIND("X11",A1)),"",1),2)
かな?
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】fornext 表に色を付ける処理を自動化しようと思っています。 A列 a o q q q k k o a a l と1000行-2000行ほどありまして、A列で同じものが並ぶとき(qとk、下のほうのaのとき)に同じ行のK列のデータに色を付けたいのですが、 そして色をつけるごとに違う色を付けたいと思っています。 qで黄色を付けた場合は、kの時は青色、aは黄色と言った具合です。 ただqとkの境目が分かればいいので、あまケバくならないように二色に収めたいと思っています。 これを実現するにはどういうコードを書けばよいでしょうか? fornextで入れ子にすれば良いのかな?と思いましたが、 同じものが何個も続く場合、どう処理していいものか分かりません・・ よろしくお願いします
>>829 Forのどこを入れ子にしようとしたのか想像できなかった
とりあえず適当に書いてみたんだが・・・
Private Sub aaa()
Dim rg As Range
Dim flg As Long
Dim myColor(1) As Long
myColor(0) = vbYellow
myColor(1) = vbBlue
For Each rg In Range("A:A")
If rg.Value = "" Then Exit For
'下のセルと同じ
If rg.Value = rg.Offset(1, 0).Value Then
rg.Interior.color = myColor(CLng(flg))
ElseIf rg.Row > 2 Then
'下とは違うけど上のセルと同じ
If rg.Value = rg.Offset(-1, 0).Value Then
rg.Interior.color = myColor(CLng(flg))
flg = (flg + 1) Mod 2'色の切り替え
End If
End If
Next rg
End Sub
832 :
困っています :2008/11/07(金) 15:49:18
困っています :2008/11/07(金) 15:00:04 0 輸入ゴマから残留農薬検出 厚労省が全貨物検査命令 - 2時間前 とだけ切り取っても、エクセルに貼り付けると ゴマ - Google 検索 輸入ゴマから残留農薬検出 厚労省が全貨物検査命令 - 2時間前 と反映がなります。いつも、検索用語が一緒についてきて困っています エクセルで貼り付けるときだけ起きるのです。 IEのキャッシュとTEMPを削除して再起動したのですが、駄目でした。 ちなみに、ワードでは同じことは起きません。 エクセルに変な機能があり、それを私がいじったのでしょうか? 検索用語まで勝手に記録されて貼り付けられるのは何故だろう。 すいません。ワードでは大丈夫です。 普通の掲示板への貼り付けは大丈夫なんです 訂正)形式を選択して貼り付けですが、テキストを選んでも、HTMLを選んでも、同じになります。
833 :
830 :2008/11/07(金) 16:13:09
>>831 829のデータでテストしたらちゃんと色が付いてるんだがな・・・
もしかしてデータが始まる行までに空白がある?
もしそうなら「Range("A:A")」を書き換えて
「If rg.Value = "" Then Exit For」を消せばいけるはず
ってこの程度のことはもうしてるよな?w
>>833 してませんでした!できました!ありがとう!!
>>832 毎回同じ語句が付加されるならマクロなどのExcelの機能が関係している可能性もあるが
付加されるのがコピーしている内容に関連する内容って事は、クリップボード内にその語句が有るって事で
つまりは貼り付ける時の問題ではなくコピーするときの問題でExcelは関係ない。
例えExcelでしか再現しないとしてもスレ違いなので宜しく
因みにWebの色つき文字などをコピーしてExcelやWordに貼り付けると
文字色も引き継がれるが、メモ帳に貼り付けると黒文字になるように
クリップボードの内容に文字色などの修飾やリンクなどの付加情報が有っても
貼り付け対象によってはその情報が貼り付けられない場合もある
聞いたことないね
>>832 、真似てみたけど、再現するはずもなく
改行入りコピペとかそんなレベルの人でもなさそうだし
どういう状況なんだろう
837 :
名無しさん@そうだ選挙にいこう :2008/11/07(金) 20:36:04
excel2002(winXP)で作成したデータですが、 1〜9行目まで:テキストボックスやワードアートがある 10行目 :項目名 11行目以降:データ、という構成で、印刷範囲はA〜Fというように列ごと指定しています。 これを2007(winXP)で読み込んで、印刷プレビューで見ると、一部のテキストボックスや ワードアートが消えるのです。プレビューしなければ消えませんが印刷すると消えたりずれたりします。 この現象は印刷範囲をクリアしたり、列ごとの範囲指定をやめてA1〜A150などとすると治ります。 おそらく列ごと印刷範囲をすると、2007では行数がすごく増えたのでそのエラーではないかと思うのですが、 Microsoftの技術情報にも出ていないので想像だけです。 行のデータが今後も増え続けるし頻繁に印刷するのでどうしても列ごとの印刷範囲を設定したいのですが、 回避できる方法はあるでしょうか。なお、A1〜A5000などと余分に印刷範囲を指定すると データがなくても5000行分出てしまうのでだめでした。長くてごめんなさい。
838 :
799 :2008/11/07(金) 20:42:20
>>817 返事が遅くなりすみません。
今日、会社でVBAに挑戦してみましたが、私のスキル不足でできませんでした。
マクロ作成からVBAコードを入れると
コンパイルエラーでEnd subが必要です。となってしまって・・・。
基本がわかってないので、やり方が間違っているんでしょうね。。。
この休日にちょっと勉強してみます。
ありがとうございました。
839 :
名無しさん@そうだ選挙にいこう :2008/11/07(金) 22:02:55
>>838 End Sub というのは [Private] Sub Worksheet_Change(...) に「『以上』が『記』に対応する」みたいに対応する
要するに「Subで書いた処理はここまでで終わりだよ〜ん」っていう命令。
これがないと、延々と下に終わりを求めて彷徨う結果になる。
>>817 B列に何か入ったらA列を消すになってるぞ
841 :
799 :2008/11/07(金) 22:46:01
>>839 今、挑戦してますが上手くいきません。。。
以下の手順で良いですか?
1 エクセルのツール→マクロ→マクロ名入力(seru)→作成
2 モジュールコードにコードを入れる。
Sub seru ()
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A2").Value <> "" Then Range("B2").Value = ""
End Sub
End Sub
3 実行を押すと Sub seru ()が黄色くなり
「コンパイルエラーです End Sud が必要です。」
VBA超初心者の質問ですみませんが、
End Subは Sub seru()の分も入ってると思うのですが???
教えて下さい。
>841 最初と最後の行が不要です。真ん中の3行だけでいいんです。
もうひとつあった。ifに対するend ifがない。 end subの前にend ifを入れる。
844 :
841 :2008/11/07(金) 23:02:52
>>842 この3行だけ入れて実行を押すと、
マクロの名前つけるウィンドウが出てきます。
なので仕方なく名前を入れて→作成 すると
Sub seru()
End Sub
が出てきてしまいますが・・・。
どうすれば良いのでしょう???
すいません。
周りにVBA使える人がいないので聞けなくて・・・。
Sub マクロ名()というのは、マクロ名を指示して実行させるときの書き方です。 799の「あるセルに日付を入力すると」というように「なにかの操作」でマクロを 実行するときにはマクロ名ではなく、イベントを書くのです。 ここまで書いてよくみたら、どのセルに何かを入れてもマクロが動くようになって しまってますよ。A2とB2だけでいいのかな?
846 :
841 :2008/11/07(金) 23:12:21
>>845 イベントを書く???
ますます???になってきました。
最終的にやりたいことは・・・
指定の列にマクロを効かせたいのですが、
B2に日付が入っていてA2に日付を入れたら、B2の日付が削除される。
このマクロを実行したいです。
だから、マクロを指定して実行じゃダメなんです。マクロを書いたらVBAエディタを 終了するんです。実行ではありません。 今試してみたら、if文は1行で書いたらend ifは要らないんですね。 エディタを終了して、B2に何か入力してください。 次にA2に何か入力するとB2セルの内容が消えるはずです。 A2に何か入っている限り、B2に入力してもすぐ消えます。
Private Sub Worksheet_Change(ByVal Target As Range) は「ワークシートになにか変化があったときに実行するマクロ」ということなんです。 だから、このマクロを動かすには、エディタの画面からではなく、 セルに何か入れるとか削除するとか、とにかくシートに変更を加える度にマクロが実行されます。
849 :
841 :2008/11/07(金) 23:26:55
>>847 何度もすみません。
モジールコードの画面から、
「終了してEXCELに戻る」で良いんですよね?
それでExcelの画面になり、数値を入れてみましたが
動きませんでした。
コードはコピペしてるので間違ってないと思います。
イベントとして書く場合は、ツールのマクロからVBAに入ってはダメですか?
当方Excel2003なのでちょっと違うのかもしれないけど、 こちらのやり方です。 1 このスレの841のマクロの2行目から4行目までをコピー 2 エクセルに切替 3 ツール-マクロ-VBエディタ(この時点ではコードを書く部分がない) 4 画面左上のSheet1(Sheet1)をダブルクリック →シート1のマクロコードを書く部分が表れる 5 貼り付け ※念のため、メニューからデバッグ-VBAProjectのコンパイルを実行 (綴りの間違いがあればエラーになる) 6 VBエディタの画面を閉じる 7 B2セルに何か入れる→表示される 8 A2セルに何か入れる→B2セルの内容が消える こんな風になりませんか?
851 :
841 :2008/11/07(金) 23:57:52
>>850 丁寧にわかりやすく、手順を記載して頂いてありがとうございました。
自宅のPCは2003なので、この順番通りやってみました。
デバックもエラーもなくVBエディタを閉じて、B2とA2のセル
に値を入れてみましたが、消えませんでした。。。
なんででしょう???
私のPC壊れてるのかな???
壊れてるのは頭だろ
イベントを発動させたいシートはSheet1で合ってるの?
854 :
841 :2008/11/08(土) 00:23:32
>>853 オブジェクトはsheet1で合ってます。
Sheet1(コード)ウィンドウにマクロコードを貼り付けてあります。
そして値を入れているのもsheet1・・・。
他の設定とかの問題ですかね〜???
>>817 なんでいちいちOffsetを使うのか
Cells(Target.Row, 2).Offset(0, -1) = ""
↓
Cells(Target.Row, 1) = ""
でいいんじゃね?
>>854 (1) Excelを起動する
(2) VBEを起動する (Alt+F11)
(3) 左のペインから「Sheet1 (Sheet1)」と書いてある部分をダブルクリック
(4) 開いたウィンドウの左上のリストボックスを、初期状態の「(General)」から「WorkSheet」に変更
(5) 同じく右上のリストを「SelectionChange」から「Change」に変更
(6) するとエディタ画面に自動的に
>>813 のマクロの1行目と3行目が出るので、残りの2行目だけをコピペ
(7) Excelの画面に戻ってB1、A1の順に何かデータを入れてみる
857 :
856 :2008/11/08(土) 00:37:44
訂正 (7) Excelの画面に戻ってB2、A2の順に何かデータを入れてみる ↑ ↑
858 :
841 :2008/11/08(土) 00:38:54
新しいエクセルブックで、再度850の手順をやったら できました!!! 初VBAです。 超初心者の私に、親切に教えて下さった皆様、 ありがとうございました。 助かりました。 また、悩んだ時はよろしくお願いします。
いじってる内にマクロ無効で開いてたとかじゃね
>>812 VBAなんか使わずに、条件付き書式でA2にデータが入っていたら
B2の文字色を白にするとか、背景を黒にして字が見えなくするとか、
あるいは表示形式でなんかうまく処理するとかできますよ。
>>860 既出
本人がVBA使ってでも削除したいっていうんだから仕方ない
862 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 12:59:03
863 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 13:06:22
後、他に質問が2つあるのですが ・ある範囲の中からA以上でB未満のものの数を数える方法はありますか? ・ある範囲で最も大きい数を表示させる方法はありますか?また2番目に大きい数を表示させるものはありますか?
>>862 そのページの表を右クリック→「Microsoft Excelにエクスポート」を選ぶと、
自動的に一覧表がコピーされる。
次に「円」をすべて削除。(円を空白にすべて置換)
あとは普通に計算が出来るようになる。
>>863 Excelのバージョンが2007かそれ以外かで方法が変わってくるが、とりあえず作業列を使えば数えることはできる。
順位を調べるのはRANK関数。これで2番目の物を探せばいい。
866 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 13:18:38
>>865 すみません。バージョンは2003です。
EXCELあまり使わないもので、もう少し詳しく教えていただいても良いですか?
わからないのは次のものです。
・円を空白にすべて置換
・ある範囲の中からA以上でB未満のものの数を数える方法
・RANK関数で例えば2番目に大きいものだったら、範囲には探す範囲、順序には2、数値には何を入れれば良いのか
教えてください。お願いします。
867 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 13:30:36
>>866 すみません。3つ目は解決できました。LARGEを使いました。
868 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 13:42:39
>>866 1番目も解決できました。
・ある範囲の中からA以上でB未満のものの数を数える方法
だけどなたか詳しく教えてください。
質問から30分で2つ解決したんだ あと15分かけて検索すれば残りひとつも解決するよ
870 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 14:17:03
>>869 わからないので教えてください。お願いします。
871 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 14:31:29
872 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 14:36:11
対象となる文字の優劣の規則性が、あなたの脳内でしかわからないから ハッキリとは言えないが、文面からすると 1.CODE関数を使って、文字(アルファベット)を数値に変える 2.そしてCOUNTIF関数で数を数える これでどうだ?
873 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 14:38:27
874 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 14:38:28
>>871 ありがとうございます。
条件には何を入れれば良いのでしょうか?
例えば1以上3未満の数を数える場合には。
875 :
871 :2008/11/08(土) 14:38:52
AとBってのには数値が入るんじゃないの?
876 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 14:40:09
>>876 だったら、COUNTIFの使い方は
ヘルプで丁寧に解説してあるよ
878 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 15:43:20
込み入った質疑にはさまれて目立たなくなった
>>837 を
どうぞよろしくお願いします。
879 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 17:51:01
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel ロック 一部だけ sheet1は読み込みも編集もできるが、 sheet2はパスワードを入力しないと読み込みも、編集もできないようにしたいのですが、 一部だけにパスをかけることはできますか? お力貸していただきたいです。
880 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 18:21:43
>>879 シート1を全選択してセルの書式設定から保護を外す
んでブック保護
・・・と思ったがこれだと読み込みはできちゃうな
>>879 sheet2を隠して保護掛けるのはどう?
>>861 あはは、レス全部読まずに書いたんだけど、はっきりいっていったん
入力したデータを消してしまうのは、データ管理として邪道と思うなぁ。
予定と実績を過去にさかのぼって残しておくのって、重要なことなん
だけどねって、まあ他人のことはどうでもいいや。
で、間違って実績データを入力してしまって、予定が消えたー
なんてトラブルが予想できるのはここだけの話。
>>874 初心者ならIFを入れ子にすればよし。
一気に指揮で解決するのではなく作業列作って順番に処理。
たとえば最初の作業列で1以上だけ書き出す。
二番目の作業列で1以上で抽出した中から、5以下を抽出する。
いろいろやっていくうちに、これ一気に処理できないかなーとなり、
解説サイトを見て、おおーー、と感激し、それで記憶に残る。
急がば回れ。
そうすれば自分の思い通りにExcel操れるようになっていく。
>>837 ようくわからんが、Excelの印刷って思い通りにいかないことが多い。
で、消えるテキストボックスってのは、プレビューで見たとき、紙の
端っこの方の部分?
その場合は、一番右のデータが入っている列の次の5列ぐらいを
標準の幅ではなく、見た目5mmぐらいの狭い列にしておく。
そうするとうまくいくことがある。
あと、古いプリンタだとドライバのせいかうまくいかないことがあり、
この場合はあきらめるしかないことが多い。
885 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 19:52:25
XP 2003 VBAでの解答を求むもので、丸投げorz orzでお願いします。 sheet1にcsvデータ(区切り文字は半角スペース)のexcelファイルで、 A5に項目名があり(7項目)、A6〜A400までにデータがあるのですが、 6項目目が会社名なのですが、半角スペースで区切ってあるため、 各レコードの空白で区切ったデータ数は7〜9となっています。 sheet2に各セルに項目毎のデータが入った形にするマクロを お願いします。
886 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 21:06:16
わざわざVBAでやろうとする理由がわからない
>>885 そもそもソースとなるCSVデータが半角スペース区切りなわけ?
だったらデータを挿入する操作でテキストデータを取り込む。
あとは区切り文字を指定する画面が出てくるから、スペース
区切りにすればいいだけ。
2007しかないから以前のバージョンでどのメニュー化は忘れた。
確か挿入のなかのデータだかテキストだかだった気が、、、
>>885 マクロの記録で区切り位置使ってコピーすれば?
>>885 処理したいデータ(ブック)はたくさんあるの?
シート1枚分しかないんなら
いったんテキストファイルに書き出して、区切り文字をスペースにしてもう一度読み込むだけで
分割できるよ
890 :
885 :2008/11/08(土) 22:56:50
>>886-888 サンクス
データ→区切り位置コマンドで区切り位置指定ウィザードが開くことを知りませんでした。
おかげで、操作による方法と、マクロ組み立てとが、出来そうです。職場で試します。
「excel 区切り位置」で検索したら、マイクロソフトのサポートオンラインがトップに出て・・・、
キーワードの選択ミスで随分時間がかかった悲しい例となりましたorz
>>882 同感だ。管理形態やデータ構成から見直した方がいいようなケースでも、
小手先のワザで解決してしまうことが多々ありそうだと常々思ってる
ま、こっちもそこまでサポートできるはずもなく、仕方ないな
892 :
885 :2008/11/08(土) 23:00:58
>>889 書くのが遅いもんで、890を書き込んでから、気付きました。
重ねて、サンクス。
893 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 23:02:55
【1 OSの種類 .】 WindowsXp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 【4 VBAでの回答の可否】 【5 検索キーワード 】 初歩的な質問ですみませんがどなたか教えてください。 エクセルで100人ほどの名簿を作りました。 その名簿から一人一人の名前が入った受験票のようなものを作りたいのですが、 作った名簿を利用して受験票を作る方法がわかりません。 調べようにもどのワードで検索してもそれらしきものが引っかかりません。 どなたか教えてください。
894 :
名無しさん@そうだ選挙にいこう :2008/11/08(土) 23:14:01
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 関数を引用、関数を返す、数式を引用 今、 A1に =RANDBETWEEN(1,100) B1に =IF(AND(1<=A1,A1<=10),1,0) があります。(10%の確率で 1 を返す。) 状況に応じて、B1の関数を入れ替え、1 を返す確率を変更したいと思い そのためにVLOOKUP()を用いることを考えましたが 関数そのものを引用する方法が分からず、つまづいています。 関数を他のセルから引用することは可能でしょうか。 ご教授お願いいたします。
>>893 Excelで作った名簿から人数分の何かを印刷するときはWordと組み合わせて「差し込み印刷」をするのが定番
>>895 ありがとうございました。早速やってみます。
>>894 10%の確率で1を返す式はもっと簡単にできる。例題に合わせると、A1は不要でB1に
=1*(RAND()<10%)
と入れるだけ。
で、確率を変える時は式や関数を変えるんじゃなくて確率の数字だけを変えるのが普通。
たとえばC1に確率が入っていたら
=1*(RAND()<C1)
のように書く。
898 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 00:28:39
>>897 どうもありがとうございます。
どうやら、RANDをしっかり理解していないために
妙にこねくり回したことが躓きの原因だったようですね
それでは、スロットの子役確率からt分布を用いて信頼区間を導く
シミュレーターを作る作業に戻りたいと思いますw
セルのなかに文字が書いてあってそのまま文字打つと もともと書いてあった文字が消えるじゃないですか 消さないでキーボードで追記するにはどうすればいいですか?
[F2]
さんくす
902 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 17:35:02
>>884 エクセルの一般的な表示の問題ではないのです。
プレビューすると、ワードアートやテキストボックスがまるっきり表示されなくなるという現象です。
ファイルを開く→通常通り表示されている→プレビュー→とワードアートやテキストボックスが消える。
(保存後再度開いても再び通常通り表示される)
ファイルを開く→印刷→ワードアートやテキストボックスが異常にずれたり消えている。
で、印刷範囲をA:Fではなく、A1:F100などに変えると上記の現象はなくなる。
>>902 Office Updateはチェックした?
印刷関係のアップデータがあったような気がするんだけど
904 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 19:10:33
エクセルについて質問です。 例えば、麻雀の成績で A:○,+30,+20,+10,-10 B:+40,○,+10,+40,-30 C:+10,-20,○,-10,+20 D:-20,-50,-10,○,+20 E:-30,+40,-20,-40,○ このような成績になって AがBのいる時の成績を算出するにはどのようにすればいいのですか? 今回の場合なら+20です
LOOKUPかINDEXで
906 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 19:37:58
>>905 合計を求めることが出来ない気がするんですけど・・・
合計って? どういう計算式なの?
AとBの双方が参加したゲームの得点の合計を出したい。○印が不参加。 この例だと1ゲーム目はAが不参加だから足さない、2ゲーム目はBが不参加だから足さない。 3ゲーム目から5ゲーム目のAの得点は+20、+10、-10だから、合計は+20。 こういうのは配列数式なら一発。
909 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 20:26:26
>>903 チェックしてなかった。ありがとう。明日やってみるよ〜。
>>908 なるほど。
A B C D E F G
1 A:○,+30,+20,+10,-10
2 B:+40,○,+10,+40,-30
3 C:+10,-20,○,-10,+20
4 D:-20,-50,-10,○,+20
5 E:-30,+40,-20,-40,○
6
7 A 0 1 1 1 1
8 B 1 0 1 1 1
9 AND 0 0 1 1 1
G1=SUMIF(B9:F9,1,B1:F1)
これでどうよ
配列数式を使う場合は、こうかな A B C D E F 1 A ○ +30 +20 +10 -10 2 B +40 ○ +10 +40 -30 3 C +10 -20 ○ -10 +20 4 D -20 -50 -10 ○ +20 5 E -30 +40 -20 -40 ○ {=SUM(IF(ISERROR(B1:F1-B2:F2),0,B1:F1))}
912 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 21:03:04
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 タグ エクセル テキスト形式orCSV
HTMLタグを含むセルがあります。これをテキスト形式で書き出すと
そのセルの最初と最後に「"」、タグの属性にある「"」が二つに増やされます。
これを普通に、書いている通りに出力させるにはどうすればよいでしょうか。
ググった結果
http://pc11.2ch.net/test/read.cgi/hp/1021096525/1-28 ここで「書き出したらダブルクォーテーションが大量発生してウボァ」みたいな
ことを書いている人がいますが、解決法は示されていません。
(やってることも似たようなもの。ウェブ用データベースのデータファイルを
サーバー上で登録作業を行わずに一括処理するのにエクセルで手入力作成して
いる)
>>912 (1)シート全体を選択してフォントを「MSゴシック」にする
(2)シート上部の列名が書いてあるところのAとBの境界線をダブルクリックして全体の幅を合わせる
(3)名前を付けて保存→ファイルの種類をテキスト(スペース区切り)(*.prn)にする
914 :
912 :2008/11/09(日) 21:41:45
915 :
お願いします。 :2008/11/09(日) 21:47:05
excelで作った図表を画像として他のソフトに貼り付けたりできないものでしょうか? もし方法があったら教えてください。
コピー&ペースト
>>914 つべこべ言わず913の通りにやってみろ
>>914 ここ重要
> (3)名前を付けて保存→ファイルの種類をテキスト(スペース区切り)(*.prn)にする
^^^^^^^^^^^^^^^^^^^^^^
920 :
914 :2008/11/09(日) 22:25:37
>>917 、919
だからやってみて、それじゃダメだって言ってます・・・
ダブルクォーテーションは確かに取れますが、その形式は結局
「画面通りにする」というだけですよね。
>>914 に書いたような単純なデータならともかく、
セルに書かれているデータ量にあわせた”セルの幅”では編集不可能です。
AからKまでセル使ってて、1つのセルのデータ量が半角で1000超えます。
小さいセルで作業できなきゃ意味ないです・・・。
921 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 22:25:50
グラフの接線を求めるときはどうすればよいのですか?
>>920 Excelからファイルに書き出さずに、テキストエディタにコピペしてそっちからセーブしろ
>>920 よくわからんが ""を"に替えるだけなら置換すればよいのでは
924 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 22:32:17
>>911 {=SUM(IF(ISERROR(B1:F1-B2:F2),0,B1:F1))} は
何を意味してるんですか?
>>922 うーん、やはりその手にするしかないか・・・そうします。
せっかくファイル書きだし&UTFコード化マクロ組んだのに
たった一つの仕様で死亡だぁ〜
おじゃましました。dでした。
>>925 マクロができるんならテキストファイルの保存くらい自分でできそうなもんだけど…
あと1行が何千桁もあるHTMLってなんか嫌だな…
>>924 まず1行目のデータから2行目を引く計算をする。どちらか片方が○印だと計算ができないからエラーになる。
引き算がエラーにならなかった列の数値だけを合計する。そういう式。
928 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 22:52:42
>>927 実際にやってみたら0になるんですけど、
どういうことですか?
929 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 22:55:30
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 いいえ 【5 検索キーワード 】 文字検索 A列の各行にデータの一覧があり(石鹸水 洗剤 半紙 頭痛薬 ) B列の各行に検索したい文字( 石鹸 薬 木 )があって B列中の文字がA列中に存在(部分一致でもいい)した場合 B列の一致した文字のセルの右脇(C列)に *でもその文字でもいいので表示させたいのですが 例えば この場合石鹸と薬はA列のデータ一覧に一致する物があったので C列に何らかの形でその結果を表示させたいのです どうすればいいのでしょうか?
>>928 データがちゃんと入っていないか、配列数式じゃなくて普通の数式になってるか
931 :
921 :2008/11/09(日) 23:07:38
932 :
名無しさん@そうだ選挙にいこう :2008/11/09(日) 23:08:59
>>930 配列数式にするにはどうすればいいんですか?
>>929 データがこんな風に入っていたとするとC列に入れる式は =IF(COUNTIF(A:A,"*"&B1&"*")>0,"*","")
これをC1に入れてあとはオートフィル
A B
1 石鹸水 石鹸
2 洗剤 薬
3 半紙 木
4 頭痛薬
>>932 excelを開いて[F1]を押し、配列数式を検索してみろ
>>933 ありがとうございます 解決しました!
もしよろしかったらこの式の意味を教えてもらえませんか?
初心者なのでIFにCOUNTIFを重ねて結果がO以上なら*を返す
程度しかわかりません
>>935 COUNTIFを使ってデータの検索をしている。見つからなければ0、見つかったら1以上の数字が何か入る。
外側のIFは * を表示するためにある。
結果が *印じゃなくて数字でもなんでも区別できればいいんならIFは必要ない。
書式で0だけを見えなくすることもできるしね。
937 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 00:26:00
みなさんありがとうございました。 追加質問です また麻雀の成績で A:○,2,1,2,3 B:1,○,2,1,4 C:2,3,○,3,1 D:3,4,3,○,2 E:4,1,4,4,○ この時にAがBのいる時に1位を何回とったかを 表示する方法を教えてください
>>937 ときどき自分の頭つかうと便利だよ
>>910 のSUMIFをCOUNTIFに替えてみるとか
939 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 00:46:18
>>938 すいません・・・
{=COUNT(IF(iseror(C19:C1000-E19:E1000),C19:C1000,1))}
これでやっても出来ないんですけど、
アドバイスお願いします
それは
>>910 の式じゃないぞ 頭だけじゃなく眼も悪いのか
941 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 00:54:16
A B C D E F 1 A ○ 2 1 2 3 2 B 1 ○ 2 1 4 3 C 2 3 ○ 3 1 4 D 3 4 3 ○ 2 5 E 4 1 4 4 ○ AがBのいる時に1位を何回とったかを出す時 {=COUNT(IF(iseror(b1:f1-b2:f2),b1:f1,1))}
942 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 00:55:56
>>940 すいません
配列数式を使うとどうすればいいですか?
>>937 1位をとった回数
{=SUM(IF(B1:F1=1,IF(B2:F2<>"○",1,0),0))}
もうちょっと簡単にできそうなんだけどなあ...
945 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 01:24:29
946 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 01:37:28
このサイトいいよ! 最新ビジネスソフトが激安でした 「中古PCソフト」で検索して 中古PCソフトっていうところです 後払いで安心して買えました
947 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 02:03:11
949 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 02:19:08
いま表を作っているのですが、 横長い形になってしまって、 一番左にある項目がスクロールしないと確認できなくなってしまいました。 一番左にある項目を常にエクセル上に表示されるようにしたいんですが、 どうやればいいのでしょうか?
>>949 944は「1行目が1」「2行目が○以外」という2つの条件に合うデータがいくつかあるか出す数式
これで目的の結果はちゃんと出ているはず
>>944 {=SUM((B1:F1=1)*(B2:F2<>"○"))}
でいいんでない?
954 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 12:35:20
>>951 「ウィンドウ枠の固定」を使えばよい。
まず常に表示しておきたい列の右隣かつ最上行のセルを選択
(※選択したセルの位置で固定表示される行および列が決まることに注意)、
Ecel2003以前・・ツールバーの「ウィンドウ」→「ウィンドウ枠の固定」
Ecel2007・・・・「表示」タブ→「ウィンドウ枠の固定」→「ウィンドウ枠の固定」
でOK。
955 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 19:30:51
EXCEL2002;VBA使用せずの条件で、 データ欠落部を飛ばして折れ線グラフを描く方法を教えて下さい。 (データが欠落していない別データ系列と一緒に表示) 例 2000年〜2007年の売上データと 2000年〜2003年と2005年〜2007年の仕入データ(2004年分だけ欠落) がある時、 仕入れグラフを2000年〜2003年の折れ線と2005年〜2007年の折れ線で 表示し(2003年〜2005年の部分が断線している形で)、売上グラフを 2000年〜2007年の連続の折れ線で表示する(同じグラフ上に)。 よろしくお願いします。
956 :
名無しさん@そうだ選挙にいこう :2008/11/10(月) 21:09:03
957 :
名無しさん@そうだ選挙にいこう :2008/11/11(火) 00:08:14
Excelのプログラムをコンピュータから完全に削除する方法を教えてください
>>957 完全に消すのはかなり難しいよ。手間のかからない方法だと色んなところに残骸が残るから。
誰にでも出来そうなのは、HDDを物理フォーマットしてWindowsをクリーンインストールかな。
959 :
名無しさん@そうだ選挙にいこう :2008/11/11(火) 01:24:06
960 :
名無しさん@そうだ選挙にいこう :2008/11/11(火) 12:07:29
関数でちょっと困っているのですが 長い文字列があって 任意の文字が何番目にあるのか探す時は FIND("任意の文字",文字列) で探せるのはわかるのですが 任意の文字以外が何番目にあるかを調べたい時はどうすればいいのでしょう 任意の文字を全て取り除いてLENで長さを測って・・・ みたいな方法しかありませんか? たとえば 1235674835A638B0CD26 という文字列で数字以外の文字が何番目に出てくるか等です もちろん必ずしもAとは限りませんし文字数ももっと膨大なこともあります
>>960 既出
646以降から嫁
「数字以外の文字」とするのは面倒かも知れんが
応用すればできる
質問です。 2色の白黒印刷をしたいのですが、Excelで印刷すると色によってグレーになってしまうのは仕様ですか?
>>963 Excel2003ならページ設定→シート→白黒印刷で2値にならないかな?
965 :
963 :2008/11/11(火) 19:06:29
>>964 すいませんExcel2007なのですが、同じ項目をチェックしても印刷プレビューと実際の印刷でグレーになります。
966 :
955 :2008/11/11(火) 19:48:29
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】特定 個数 下記の様な文字列の中から最初の1文字目が(1)で始まる文字列の個数だけを数える方法を数える方法を教えて下さい。 文字列は200行ぐらいあり、全てハイフンをはさんで一桁です。 countifにleftを組み合わせてもうまくいかず困ってます。 A 1 1-6 2 2-1 3 3-6 4 1-3 5 2-6 6 1-5
>>967 =COUNTIF(A1:A6,"1-*")
でいいんじゃないかと
>>968 ありがとうございます。
こんなに簡単にできるなんて…
感謝します。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel マクロ 終了処理 自動処理マクロを作りたいと思います。 処理終了時にブックを自動で閉じるマクロで、その時に他のブックが開いてなければ excel自体を終了させたいのですがどうすればいいのでしょうか
>>971 普通に数えると「PERSONAL.XLS」みたいなブックまで数えるから
非表示じゃないブックの数を数えて判定すればいいんじゃ?
単純に「PERSONAL.XLS」だけ除くのもいいかもしれないけどw
973 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 09:38:31
質問です 例えばA1に何か数字を入れた時A2にその日の日付が表示されるようにするには式をどうすればいいですか?? トゥデイ関数とイフ関数を使って A2に IF(A1、TODAY()) にすると日がたつとA2の日が自動更新されてしまいます A1に新しく数字を入れないと更新されないようにしたいのです 分かる神はおらぬか
式では _
975 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 10:05:02
>>974 ではエクセルでは無理と(*_*)
くやしいですっっ(>_<)
976 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 10:14:32
125 721 522 111 387 225 312 176 421 412 このような数字があるとして、各行ごとに、最大の数値のセルだけ色を付ける方法はありますか? 上の例だと721と421の色が変わるといった具合です
>>975 >>974 が言いたいのはVBA使えって意味だ
悔しがることじゃないだろw
>>976 条件付書式でその行のMaxと比較して同じだったら色を付ける
条件付書式が満杯(最大3つ)だったらVBA使う
978 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 10:53:50
質問お答え願いたい! 十万をも超える大量のセルに計算式が入っておるなれど 引数に別シートのデータ貼り付け用から呼び込んでいるもの等ありて 貼り付けるデータの大きさ如何によってはエラーが表示さるる ここでこの目障りなエラーを見えなくさせたいと思いて(見えないだけで良い) 一、全ての式を=IF(ISERROR(計算式),"",計算式)として空白表示にしてしまう 二、計算式はそのままに条件つき書式にてエラー時には文字色を白くし見えなくする の二つを考えたのだが コンピューターへの負担が少なくて済むのはどちらであろうか? マクロ?そんなものは知らぬわからぬ使えぬ!
979 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 10:59:09
>>977 このスレ来てVBAなんて言葉初めて知りました
自分はエクセル普通使える方だと思ってたのに
やっぱくやしいですっっ(>_<)
>>978 参、別シートで当該セルの式を=IF(ISERROR(元のシート!A1),"",元のシート!A1)などとして空白表示にしてしまう
一なら1つのセルで「計算式」を2回、2ならエラーだったら1回違ったら2回やるので大して変わらないと推測
上の案なら確実に1回なのでましかと・・・
981 :
976 :2008/11/12(水) 11:49:03
>>977 C27:D27
↓
$C27:$D27
設定したい行を全て選択してからこれを設定すればまとめてできる
「相対参照」や「絶対参照」で検索して勉強しとくといいと思う
983 :
977 :2008/11/12(水) 12:18:46
>>982 有難うございました、
おかげさまでうまく結果が出せました
>>978 コピーして、
編集→形式を選択して貼り付け(値)で別シートに貼り付けて、
編集→ジャンプ→セル選択(定数、エラー値)で選択して、
Deleteキーを押す
根本的に、そんなにエラーの出まくるシートの設計が悪い
>>984 データが変わる度にそれやることになると978は涙目かも知れんなw
セル選択って選択できる個数は制限無いのかな・・・
こんなことを懸念してしまった
>>985 それを言ったらお終いだ
別シートにエラー以外の値をコピーするマクロを作ってボタン登録しとけばいいじゃん
988 :
978 :2008/11/12(水) 13:45:56
あいすまぬ、拙者が力及ばぬゆえにご足労をかけてしまい
大変申し訳なく思う
>>980 その参はつまり、貼り付けシートと計算結果シートの間に
もう一枚のシートをかませ、
そこでまずは一旦エラーを空白に変えるということでござるか?
その場合、最初に空白を貼り付けたために出るエラーは結局空白のままゆえ
結果として同じエラーになるのではなかろうか・・・
あと
> 二ならエラーだったら1回違ったら2回
の「違ったら2回」がよくわからぬ・・・
エラーであるか否かに関わらず必ず判定を行い、(1回)
エラーの時だけ文字を白に実行するのだと思ったのだが
>>984-986 これは右も左もわからぬ赤子でも使えるようにと頭領が作り給うたもので
ただコピーし貼り付けるだけで毎月の成績の集約が瞬時にできるとのうたい文句であった
そのためかゆとり多く余分に計算式を入れており
貼り付ける量が仮に60000でも98000でも大丈夫なようにしてある
あまり詳しくはないが左端縦列から該当する名前を拾い
そこから上下左右いくつ動いたかを指定してデータを読み取る?ようだ
なお門外不出持ち出し禁止なためこれ以上は言えぬ!
989 :
980 :2008/11/12(水) 14:12:52
参は計算結果シートの間ではなく後にエラーの箇所を空白にしたシートを作ればいいんじゃないか? って言う意味 >二ならエラーだったら1回違ったら2回 これは =IF(ISERROR(計算式),"",計算式) 1.まずエラーかどうか見るために「計算式」を計算する 2.エラーでなければさらにIFの結果を返すために「計算式」を計算する エラーなら計算などせずに空白を返す つまりエラーでなければ「計算式」は2回動く という動作をしてると思ってるって意味だ (検証等をしたわけではない) ところで誰か次スレよろ
>>830 さんのも使えましたが、折角なので自分で考えた奴も完成させました。入れ子が予想つかないとも言われましたので・・w
表のスタイルも少し変わってます。
>>829 の中のA列〜はB列〜、K列に色づけ〜はその行に色づけ、に変わってます
マクロの中身はB4(B1-B3はタイトル)から1セルずつ下に向かって調べて行き、同じものがあればdo loopに突入、そこで同じものだけ数えるという形です
別に数える必要はありませんでしたね!
Private Sub CommandButton2_Click()
Dim gyo As Long'表全体の最終行
Dim b As Long'個々の終わりの行
Dim i As Long'個々のループ変数
Dim n As Long'色分けフラグ
gyo = Range("B65535").End(xlUp).Row
n = 1
For i = 1 To gyo
Cells(i, 2).Value = StrConv(Cells(i, 2).Value, vbNarrow)
Next
For i = 4 To gyo
If Cells(i, 2).Value = Cells(i + 1, 2).Value Then
b = i
Do
b = b + 1
Loop Until Cells(b, 2).Value <> Cells(b + 1, 2).Value
If n = 1 Then Rows(i & ":" & b).Interior.ColorIndex = 40 Else Rows(i & ":" & b).Interior.ColorIndex = 34 End If n = n * -1 i = b End If Next
スレ立て 誰か 頼む
Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-10 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 74
http://pc11.2ch.net/test/read.cgi/bsoft/1223462844/
最近なんか時間の経つのが速い。 このスレが立ってから2日ぐらいしかたってないかと思ってた。え?もう1000いったの?って感じ。
先走って思わず次スレの2をgetしてしまった・・・orz テンプレ全部貼られるの待つべきだったな
今からテンプレ貼るぞ
できあがってるじゃないか。
はい、次の方は次スレでどうぞ。。
うめ
おしまい
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。