1 :
名無しさん@そうだ選挙にいこう :
2010/10/10(日) 02:31:08 ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20 あたりの注意書きや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総合相談所 93
http://hibari.2ch.net/test/read.cgi/bsoft/1279119276/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・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 書籍や解説サイトの紹介以来はスレ以外。ここは技術的な質問のみで。
★ルールを無視すると…
>>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分野の話ではないので、ここでは聞かないでください。
★ 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セルを分割 (分割したいセル以外を結合)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼数式・関数 ・ 表示形式以外の書式の取得設定、書式情報を条件とする数式 (ユーザー定義関数) ・ 関数式でセルの選択状態を取得する (VBA) ・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA) ・ 入力したセルに結果を返す (VBA) ・ 範囲を引数にしての文字列連結 (ユーザー定義関数) ・ 値の書き換え、値の保持 (VBA) ・ 複数の結果を抽出、不定な数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む) ・ 空白のセルの部分を上詰め、左詰めなどで表示する (作業セルを使って別セルに詰めて表示なら可能、それ以外はVBA) ・ VLOOKUP,HLOOKUP,MATCH等の関数で、検索語を全半角両方にマッチさせる (ユーザー定義関数) ▼VBA ・ ExecuteExcel4Macroの参照で空セルと0値を区別する ・ セルの値や変数値で直接変数名を指定する (配列、コレクション) ・ VBのコントロール配列と同じような操作をしたい (イベント以外ならコントロール名を「同名+連番」にしてControls(名前 & インデックス)で処理、イベントはクラスでWithEvents) ▼ユーザーフォーム ・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む) ▼グラフ ・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる (オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入) ┌┐ 〜〜 ||
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。 以上でテンプレ終わり (Excel総合相談所 89からコピペしました)
次スレでは「2007では」を「2007以降では」に直そう。 2010も同じ仕様で出てきたから。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 発注日: 10/07/12 納期: 10/10/05 受領日: 10/10/05 このようなテキストデータがA1セルにあり、日付をdd/mm/yy形式にしたいのですが、 それぞれ2010/12/7、2010/5/10、2010/5/10になってしまいます。 どこがダメなのでしょうか? Sub テキスト変換() Range("B1") = Left(Range("A1").Text, 4) Range("C1") = Format(Mid(Range("A1").Text, 6, 8), "dd/mm/yy") Range("B2") = Mid(Range("A1").Text, 19, 3) Range("C2") = Format(Mid(Range("A1").Text, 23, 8), "dd/mm/yy") Range("B3") = Mid(Range("A1").Text, 36, 4) Range("C3") = Format(Mid(Range("A1").Text, 41, 8), "dd/mm/yy") End Sub
>>9 色々と間違えてます、多分。
↓こうなればいいの?
A1の文字列から、3つの日付をそれぞれC1、C2、C3に取り出す(表示形式はdd/nn/yy)
日付の前にある文字列をそれぞれB1、B2、B3に取り出す
B列 C列
発注日 10/07/12
納期 10/10/05
受領日 10/10/05
こうでしたね、失礼。 というか元の日付は? YYYY/MM/DDなの? YYYY/DD/MMなの?(前者でしょうけど) B列 C列 発注日 12/07/10 納期 05/10/10 受領日 05/10/10
>>9 表示形式が「標準」(G/標準)のままになっているせいです。
標準では日付は必ず「yyyy/m/d」形式になってしまいます。今回の場合は「文字列」にしなければなりません。
(提示されたコードには概ね問題ないようです。ただ各Mid関数の開始位置が間違えているだけです)
セル値の表示は「表示形式」に依存してます。
またセルに代入された値は、表示形式に合わせて値の自動変換が行われます。
「標準」(G/標準)の場合に日付として解釈できる文字列を代入すると自動的にDate型に変換されます。
さらに表示も「日付」(yyyy/m/d)として機能します。
例えば"99/01/31"をセルに代入すると「1999/1/31」と表示されます。
画面にdd/mm/yyで日付を表示したい場合は2種類の方法があります。
1)表示形式を「文字列」にしておき、表示したい文字列をFormat関数等で生成してそのまま代入する。
2)表示形式を「dd/mm/yy」にしておき、Date型の値を代入する。
2のメリットは、そのまま計算に利用できるたり、セル上で表示を替えられる点です。(発注日から数えて今日が何日目か算出する、y/m/dに変更する等)
※EXCELで文字列が日付として解釈できるかどうか(Date型に変換可能かどうか)は、以下の順にチェックされます
1)y/m/dとして解釈出来る場合(y=1900〜)
2)m/dとして解釈できる場合
3)d/mとして解釈できる場合
4)数字として解釈できる場合(※セルが日付の表示形式になっている場合のみ)
2,3の場合は、西暦が省略されているものと解釈し、システム日付の現在の西暦で補完されます。
4の場合は、単に基準日時からの日数であると解釈し、西暦や月は補完されません(Date型の基準日時は1900年1月1日0時00分0秒です)
>>9 dd/mm/yyってどんな変態日付だよw あー、ユーロはこの表記法だっけ?
そんなもん米国生まれに読ましたらおかしくなるにきまっちょる。
変態を放り込むなら、表示形式を文字列にしとかんとダメ。
コードはちょこっとだけ直しといたから↓
Range("B1") = Left(Range("A1").Text, 4)
Range("C1") = Format(Mid(Range("A1").Text, 6, 8), "dd/mm/yy")
Range("B2") = Mid(Range("A1").Text, 15, 3)
Range("C2") = Format(Mid(Range("A1").Text, 19, 8), "dd/mm/yy")
Range("B3") = Mid(Range("A1").Text, 28, 4)
Range("C3") = Format(Mid(Range("A1").Text, 33, 8), "dd/mm/yy")
参考までに同作業のスプリットバージョン↓
セルの表示形式を扱うコードも盛り込んどいた。(セルの表示形式をdd/mm/yyにしDate値を放り込む)
Dim Ary() As String
Range("C1:C3").NumberFormat = "dd/mm/yy" 'セルの表示形式を変更
Ary = Split(Range("a1"), " ") '半角スペースを境に文字列を分解
Range("B1") = Ary(0)
Range("C1") = CDate(Ary(1)) '事前に日付型へ変換(セル側での自動変換を抑止)
Range("B2") = Ary(2)
Range("C2") = CDate(Ary(3))
Range("B3") = Ary(4)
Range("C3") = CDate(Ary(5))
14 :
9 :2010/10/11(月) 05:02:50
>>11 フツーの日本人ならyyyy/mm/ddでしょ?
yyyy/dd/mmなんて表記する国があるんですか?
>>12 文字列?
何で問題を摩り替えてんの?
わざわざFormat(Mid(Range("A1").Text, 6, 8), "dd/mm/yy")って書いてるんだから
文字列じゃなくて日付だって気付いてよ
>>13 半角スペースが消えちゃってる・・・・
*が半角スペースです。
発注日:*10/07/12*****納期:*10/10/05*****受領日:*10/10/05
16 :
13 :2010/10/11(月) 06:01:07
>>14 お前自身、日付じゃのーて文字列放り込んどるんじゃけど、気付いとるか?
Format関数の戻り値は文字列なんじゃけど。
>>11 も主の頭悪いサンプルのせいで確認しとるんじゃろーが。わしも迷ったわボケ
「フツーの日本人なら」全部2桁で12以下の数字しかなく出所が日本と限定されない年月日の順は正確には分からん
サンプルコードはぶっ壊れててマトモに動かんし、そもそも自分がユーロ仕様で出力しといて何言いよん?
ちゅーかそんだけ文句言うなら自分でやったれや、のう?
わしもコード修正なんてせんにゃよかったわ。朝から気分悪い。じゃあの。
17 :
9 :2010/10/11(月) 07:48:19
>>15 ここは低脳しかいないですか?
>>16 なに様?
標準語でおkです。何言ってんのかわかんねーよ
自作自演がたくさん紛れ込んでるじゃないか
A列:数値、B列:テキスト のようなデータで、B列に、A列の値を使ってグラデーションつけるって出来ないよね?
2010ならできる
>>9 元データがyy/mm/ddなのかyy/dd/mmなのかわからないので適当に作ってみたけど、こんな感じ?
Forを使ってないはわざと
Sub テキスト変換()
A1 = Split(Range("A1").Text, " ")
Range("C1:C3").NumberFormatLocal = "dd/mm/yy"
Range("B1") = A1(0)
Range("C1") = A1(1)
Range("B2") = A1(2)
Range("C2") = A1(3)
Range("B3") = A1(4)
Range("C3") = A1(5)
End Sub
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 A B 1 りんご 3個 2 なし 4個 3 ぶどう 3個 4 みかん 4個 5 なし 2個 6 りんご 5個 7 りんご 4個 8 ぶどう 1個 上の表で、Aの列の果物の名前を抽出して、合計個数が大きい順に並べ、 りんご 12個 なし 6個 ぶどう 5個 みかん 4個 という形にしたいのですが、そのような方法ありますか? よろしくお願いします。
ピボットテーブル 並び替えは自動じゃ無理かもしれない
上から見ていって、重複しないなら格納、重複ならB列を合計
>>22 自動ならマクロ、一番効率がいいのがピボットテーブルで集計後並び替え
セルに全角で「3個」と書いてあったら面倒だな
LARGEとかでできるかもしれんけど マジ全角なん?
28 :
名無しさん@そうだ選挙にいこう :2010/10/11(月) 22:56:39
全角ならB1=SUBSTITUTE(A1,"個","")*1みたいに作業列作らないとな ピボットもそろそろこの辺に対応して欲しい。 アホに合わせるのもデファクトスタンダードの使命だと思うんだよね
最近会社変わったんだけど新しい会社だとピボット使いまくるのな ここでやたらピボットで解決しようとする奴のバックグランドが分かった気がするけど、 やっぱピボットって使いづれーよ たかがクロス集計いっこ作るのに幾つも手順踏んで何枚もシート作って、正直アホみたいだ。 定型業務ならAccessかVBA使って手順一発で終わらせろよと
31 :
複乳 :2010/10/11(月) 23:56:21
大企業:データベースから引っ張ってくるだけ。専用ソフト使えば1手順でほとんどのことが可能(無くても要望が多ければシステム部門が作ってくれる)。他はアクセスorエクセルで数字を引っ張ってくる。
中小:アクセスで集計されたデータ、もしくは正規化されたデータがある。データをテキトーに加工、場合によりピボット。
零細:アクセスがなく、エクセルファイルで集計している。専用ソフトの出力データも正規化されていない。外部からVBAで処理するもエクセルのバージョンの違いでエラー多発←今ここ
>>29 VBA使えるなら組めばいいと思う。ただバージョンが統一されてないとエラーは多発する。
32 :
巨乳 :2010/10/12(火) 00:00:37
まともな会社なら普通はデータベース使うわな 自分で集計しなくてもDBから集計結果が直接取り出せるのが普通 そういう意味でピボット使っていちいちExcelで集計するのはアホ 家計簿とか家庭内の利用なら仕方ないけど
34 :
複乳 :2010/10/12(火) 00:40:55
そうはいうが日本は中小企業が多いし、お局様(笑)のご意向で変えられないところもある。 アホアホ言ってやるのは可哀相だ。
excelを表計算ソフトとして使っている人は、またいいほうだよ。 作表ソフトとして使っている人の多いこと。 とりまとめなんか、投げたしたくなることがほとんど。
すべてのセルの高さと幅が40とかにしてあって さらに縦横結合しまくって表を作るやつとか結構いるよな 方眼紙かっつーの
>>30 ひでーなおいw
そこまで言われてないしにはワロタ
39 :
名無しさん@そうだ選挙にいこう :2010/10/12(火) 12:15:46
りんごと打つと「りんご 1」 みかんと打つと「みかん 2」と表示されるよう辞書登録してありまして 「りんご 1」と表示された時 1だけを自動的に青く色変換できる方法は無いですか? 例えば 「りんご」と打つと 「りんご(黒字) 1(青字)」となって 自動的に表示されるようにしたいんです。
Excelの使い方を根本的に間違ってるよ そういうのはVlookupで関連付けする
41 :
名無しさん@そうだ選挙にいこう :2010/10/12(火) 14:04:27
だいぶ昔に りんご0000ff1000000 みかん00ff001000000 って感じのずらーっとある文章で 0000ffから000000までを青に 00ff00から000000までを緑に 一括で色を変えるみたいなマクロは作ったけど相当めんどかった りんご 1 みかん 2 だと全角スペースを開始にできるけど 「ここまで」ってのがないから無理ぽ というか数が多かったらもすぬごく時間かかるマクロになってたし人様には見せれないかもしれん
>>39 マクロ使わないと無理
何種類あるかによるけど、たとえば20種類くらいならフォームとか使って入力したら?
いちいち変換するより早いかもしれないよ
「りんご 1」じゃなくて「りんご」と「1」に分割した方がいいと思うんだけどな。
CSVをダウンロードしたとき、文字列の最後に不要な半角スペースが 付いてるんだけど、これを取るのに適した方法は何でしょうか?
>>45 sedでコンマの直前のスペースと行末のスペースを削除
置換
>>47 置換で末尾のスペースだけってどう指定すんの?
正規表現もどきがExcelの置換でも使えたはず
50 :
45 :2010/10/13(水) 00:53:01
さっぱりワカランです・・・・ おやすみなさい。
51 :
名無しさん@そうだ選挙にいこう :2010/10/13(水) 01:23:47
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 No 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 入力強制変換 エクセルで普通に整数を入力すると自動的に10^-8が乗ぜられる状態になってしまっています。 どこもつついていないし直し方も思い当たらない…汗 一応してみたこととしては書式などの調査などなど。 でもどれも普通だったので直し方が分からないのです。 何か思い当たるところありませんか? 関数はデータ入力をするところ意外でPOWER関数を用いていますが、関係あるでしょうか。
53 :
名無しさん@そうだ選挙にいこう :2010/10/13(水) 07:20:00
>>52 数値にはなっているんですが…汗
それでも成るので原因不明なのですよ。
>>51 そのワークブックはあなたが作ったものですか?
それとも誰か別の人が作ったものが元ですか?
入力すると自動的に動作するマクロが仕込まれている可能性はない?
新規のワークシートでは入力できますか?
出来るなら、入力できたセルをコピーして該当箇所にコピーしてみて下さい
55 :
複乳 :2010/10/13(水) 07:45:37
>>45 適してるかどうかしらんけど
B1=IF(RIGHT(A1,1)=" ",LEFT(A1,LEN(A1)-1),A1)
>>51 ブックをアップロードして欲しい
56 :
巨乳 :2010/10/13(水) 09:49:27
ぁぁ ぃゃん
10^-8って二進数−十進数の変換誤差じゃないの?
「乗ぜられる」
書式が "0."00000000 になってる
60 :
名無しさん@そうだ選挙にいこう :2010/10/13(水) 18:20:11
>>54 作ったものというよりはエクセル自体の話。
新規にワークブックを作っても同じように成ります。
>>55 ブック自体でないことは確実なのでuploadは却下します。恐らくエクセル自体の設定だから。
>>57 二進数使わないからどうやっていいか分からないです。
十進数のはずなんだが…汗
>>51 ツール→オプション→編集 の
"少数点位置を固定する"がオンになっているのでは?
【1 OSの種類 .】 Windows7 x64 【2 Excelのバージョン 】 Excel2010 beta 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 あるセルに SUM(A1:A30) の計算をし、その下のセルは SUM(A16:A45) の計算を・・・ というような作業を数千セルおこないたいのですが、この処理を一度に行う方法はありますでしょうか。 もうひとつ、例えば 1633 という値を 27:13 というふうに秒を 分:秒 という形で表示する関数などはありますか
EXCEL2007 で棒グラフの中をパターンで塗りたい(右斜線とか、つぶつぶとか) んですが、2007ではテクスチャとグラデーションしか選べないいでしょうか?
>>63 関数はないけど、普通に割り算して商と余りを出す関数とconcatenate関数でなんとかなるんじゃない?
>>63 =SUM(OFFSET(A1,ROW(A1)*15-15,0,30,1))
下にコピー
それと1633→27:13ってなに?どうやって変換しているのか理解出来ない(´・ω・`)
>63 >あるセルに SUM(A1:A30) の計算をし、その下のセルは SUM(A16:A45) の計算を・・・ 集計範囲の規則性がわからないのでは無理 >例えば 1633 という値を 27:13 というふうに秒を 分:秒 という形で表示する関数などはありますか 表示する関数はないので、A1セルに当該数値があるものとして、別のセルに =int(A1/60)&":"&MOD(A1,60) のような数式で表すことは可能。 もし、当該数値を日付時刻として利用するのであれば、1秒=1/(60×60×24)なので、A1セルに 当該数値があるものとして、=A1/(60*60*24) の数式を入れ、当該セルの書式を [m]:ss でいいと思う。
69 :
複乳 :2010/10/13(水) 22:29:08
>>63 だぜ!
ここのカスどもは0.000001でも狂ってたら例文と認めないからな・・・・
A1を1/24にすれば時間、更に60でわれば分、サランい60で割れば秒だぜ
つまりA1に数値を入れて=A1/24/60/60として書式設定のユーザー手ギイを「mm:ss」とすればいいぜ!
70 :
複乳 :2010/10/13(水) 22:37:42
いやーm、おう
>>68 とか天才だね
おれをNGsにいれて
>>68 をそんしにすtるべき
71 :
複乳 :2010/10/13(水) 22:40:21
敵ながらあっぱれ わたくしは頭を丸めて反省します / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
72 :
複乳 :2010/10/13(水) 22:49:55
ぐうにゅうはそんなつまんねーとこごいわないぜ えっとつまりですえmえ。おもしろくないことはきょjkyりょjkyつうわjyばうぼでsy」
左下の矢印を右クリック>シートの選択 で表示されるようなワークシートの一覧を、常時表示させておく方法はありませんか? シートの数が多いので、常に全面に表示させて、クリックでシートを切り替えられると凄く楽なのですが
>73
前スレで2人ほど回答しているのは見ましたか?
919 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2010/10/06(水) 05:46:50
Excel2010なんですが、左下の三角を右クリックすると
シートの一覧が出て、選択出来ますが
このシートのリストを、常時どこかに表示させておく事は出来ませんか?
頻繁に多数のシートを切り替えるので、その都度左下を右クリックするのが手間です。
924 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2010/10/06(水) 09:16:19
>>919 ctrl+pageup/pagedownじゃだめ?
929 名前: 名無しさん@そうだ選挙にいこう 投稿日: 2010/10/06(水) 19:51:02
>>919 できない。あとは別のシートにシートへのリンクを貼るとかして、常時表示させておくとか
すいません、前スレは見てませんでした
76 :
63 :2010/10/14(木) 16:51:26
返事が遅くなりました
>>66 そのままだと望む結果にはなりませんでしたが、
=SUM(OFFSET($A$1,ROW(A1)*15-15,0,30,1))
とすることでうまくいきました。
最初の質問が曖昧だったようで分かりづらくてすいません。
ある列の連続した30個のセルの和を求めるというもので、
その条件を、開始点が15個おき(1〜30の和の次は16〜45、そのつぎが31〜60)
にしたかったのです。
>>68-69 変換する値が小数点付きの秒だったので、=int(A1/60)&":"&MOD(A1,60)
という数式ではうまくいきませんでしたが、=A1/(60*60*24) の計算からの
[m]:ss 表記で望む結果となりました
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 使用方法までわかれば可 【5 検索キーワード 】 excel シート名が違う 抽出 CSVファイルからデータを抽出したいです。 毎月の使用量をCSVで出力する機器があります。 このCSVファイルをクリックするとEXCELが起動してシートに展開されます。 この時、シート名が 20100901_20100930 のように期間表示となり毎月異なります。 sheet2に式を入れて 20100901_20100930 からデータを抽出したいのですが、異なるシート名でもsheet2に抽出する方法はありませんか? シート名を変更しても構わないのですが、CSVが毎月20ファイル程度あるので楽な方法を探しています。
>77 いくつかおたずねします。 1 CSVファイルをダブルクリックして開いたシートと Sheet2 は最終的に別ファイルになるんですか? それとも、CSVファイルをダブルクリックして開いたシート(ブックとしてはまだ保存されてない)の次に Sheet2を追加し、最終的にブックとして保存するんですか? 2 CSVファイルをダブルクリックして開いたシートを別の作業・保存用ブックのSheet1にまるごとコピペすれば、 シート名が変わらないので同じ計算式で対応できると思いますが、この方法ではだめですか?
79 :
名無しさん@そうだ選挙にいこう :2010/10/15(金) 11:41:05
>>77 sheet0のA1=20100901_20100930
これは毎月変わるシート名を入力
sheet2のA1=INDIRECT("'"&Sheet0!$A$1&".csv'!r"&ROW()&"C"&COLUMN(),0)
これを右と下にオートフィル
で、sheet2にsheet0のA1に入力したシートの内容が表示される。一度開かないとダメかもしれない
VBAだと、
Sub unko()
Sheets(Sheets.Count).Name = "sheet2"
End Sub
で右端のシート名が変わるが・・
なんかいい方法が浮かばないねぇ
80 :
複乳 :2010/10/15(金) 11:41:56
ああ、最後に全体選択して値で貼り付けしてね
81 :
複乳 :2010/10/15(金) 11:44:51
/ ̄ ̄ ̄ ̄ ̄ ̄\ / 反省中 \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
>>77 1 csvをダブルクリックで開く
2 シートを追加して名前をSheet2に変える(デフォルトだとSheet1になる)
3 以下のとても長い数式を好きなセルに入力すれば、csvのデータの入ったシートのシート名が取得できる
都合で複数行にわけてあるけど1行にまとめてね
=MID(CELL("filename",A1),FIND("?",SUBSTITUTE(CELL("filename",A1),"[","?",LEN(CELL("filename",A1))-
LEN(SUBSTITUTE(CELL("filename",A1),"[",""))))+1,FIND("?",SUBSTITUTE(CELL("filename",A1),"]","?",
LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"]",""))))-FIND("?",SUBSTITUTE(CELL
("filename",A1),"[","?",LEN(CELL("filename",A1))-LEN(SUBSTITUTE(CELL("filename",A1),"[",""))))-5)
>>77 Sheet2を作ってcsvのシート名を入れるマクロ
Sub aaa()
Worksheets.Add after:=Sheets(1)
Sheets(2).Name = "Sheet2"
Sheets(2).Range("A1") = Sheets(1).Name
End Sub
84 :
複乳 :2010/10/15(金) 12:02:43
【1 OSの種類 .】 Windows7 home 32bit 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル2000 落ちる windows7にエクセル2000入れると落ちます。オートコンプリートもきりましたがダメでした 他に原因などあるのでしょうか
85 :
複乳 :2010/10/15(金) 12:16:26
自己解決しました / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル2000 スクロール ワークシートを上下にスクロールさせる際、マウスのホイールを使うとワークシートごと 上下に動いてくれるのですが、スクロールバーをつまんで上下に動かした場合、ワーク シートの表示は変化せず、摘んだバーを離してはじめてその位置にJumpします。 内容を確認しながらスクロールさせたいのでこの状態はちょっと困ってます。 設定の変更など教えていただけると助かります。
87 :
名無しさん@そうだ選挙にいこう :2010/10/15(金) 14:10:45
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 パスの取得 エクセルが、今どこにあるかそのパスを取得するにはどうすればいいでしょうか ある場所はCなのですが、住所がほしいです。 プロパティで見ると右端が切れてはいるものの表示はされます。ただしそれをコピペしようと思うと反転せず範囲選択できません よろしくお願いします
88 :
複乳 :2010/10/15(金) 14:51:56
>>85 やめろwww解決してないよw
>>86 下キーじゃだめ?
>>87 A1=CELL("filename",A1)
でパスが出てくる
>>87 ヘルプ→バージョン情報→システム情報→
Office2003アプリケーション→Microsoft office Excel 2003→ファイルの概要
>>84 うちのWin7(64bit)ではExcel2000は落ちた事ないんで、7かどうかは無関係かも。
>>88 つーか複乳を名乗るからイジられるんだろw 本気質問ならその名を使うなよ、と思った。
>>86 慣れて下さい。(手を放すまでスクロールイベントが発生しないのは古いスクロールバーの仕様です)
コツとしては、スクロールバーのスライドをドラッグし適当に目星をつけて放し、
あとはスクロールバーのスライドがない場所(上か下の空白部分)をクリックして1画面ずつガシガシとジャンプ、
さらに1行単位は上下の三角ボタンで微調整して下さい。
キー操作がお好みならHome、End、Ctrl+Home、Ctrl+End、PageUp、PageDown、Ctrl+PageUp、Ctrl+PageDown、あたりで。
関係ないけどCtrl+矢印はかなり便利に使えるから積極活用推奨。
>>87 Excel.exeのフルパスが知りたいの? 開いているファイルのパスが知りたいの?
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel 2003 SP3 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 自動計算 手動計算 Sheet1は自動計算、Sheet2は手動計算にしたいと思い、VBAでThisWorkbookに以下のように書きました。 Private Sub Workbook_Open() Worksheets("Sheet1").EnableCalculation = True Worksheets("Sheet2").EnableCalculation = False End Sub これで、Sheet2がアクティブになるようにして開くと、Sheet2は手動計算になっているのですが、 Sheet1にいじってSheet2に戻ってくると、自動計算になってしまいます。 それなら、Sheet2がアクティブになったら実行するように、Sheet2にも同じように書いたのですが、 これでも同じ結果です。 Sheet2がアクティブになるようにして開かないと、手動計算にはなりません。 Sheet2だけずっと手動計算にするには、どうしたらよいのでしょうか?
>>91 手元の環境ではSheet2がアクティブでなくても手動計算のままだけど、計算内容によっても異なるのかも・・・
とりあえずWorkbook_ActivateやSheet2のWorksheet_Activateイベントで処理してはどうだろう
>>92 それができないんですよ。
sheet2のところに、同じように書いてもだめ。
Private Sub Worksheet_Activate()
Worksheets("sheet1").EnableCalculation = True
Worksheets("sheet2").EnableCalculation = False
End Sub
sheet2がアクティブになるようにしてbookを開けば、確かに手動になってるけど、
一度sheet1をさわってからsheet2に戻ってくると、sheet1と同じように自動計算されちゃうんですよ。
どうしてなのかさっぱりわからん。
手動計算というか「再計算しない」だな 自動計算に戻ったときにEnableCalculationの値はどうなっているんだろう? 別の何かが書き戻しているのかもしれない
>91 シート毎に再計算の設定ができるなんて知りませんでしたが、ちょっと質問。 シート間の参照はしていませんか?
計算方法ってシートごとには設定できないんじゃね? あとは、オープン時じゃなくて、ワークシートがアクティブになった時に計算方法を指定する方法が良いかと思うんだけど。
まさかsheet2が重い計算式があるから手動にしたいんじゃないだろうね? 重いときは手動にしろなんていうやつがいるが、そんなものはなんの解決にもならん。
98 :
86 :2010/10/15(金) 23:43:40
>>90 仕様だったのですか。会社のPCでは出来るので何らかの設定かと
思ってました。アドバイス頂いたようなやり方で対応したいと思います。
有難うございました。
>>95 動作を検証するために、最低限の関数しかいれずにやってます。
シート間の参照もなし。
>>96 ずっと昔にやったことあるから、この方法でシートごとにできるはずなんですけど・・・
94の方がいうみたいに、手動計算というよりは計算しないという動作になります。
計算させるときは、マクロで一度TrueにしてFalseに戻すことでできるはず。
>>96 ,97
Sheet1は常にデータを拾ってきてるから自動計算させていて、Sheet2はSheet1を参照してるけど、
決まった時間ごとにしか必要ないから、少しでも軽くするために普段は計算させないほうがいいんです。
だから、Sheet2だけ手動にするのは、かなり意味があります。
100 :
95 :2010/10/16(土) 00:14:27
>91,99 もしもし? シート間の参照はないって書いておきながら、>96,97さんには >Sheet2はSheet1を参照してるけど って書いてますよ。どっちなの?
>>100 書き方が悪かったかな。
実際に使いたいものは、シートもたくさんあるし、お互いに参照もしまくって複雑。
ついでにいうと、複数のシートの計算をとめたい。
動作を確認するために、別のファイルで試しているということです。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 countif 複数列 例 A列 国語の点数 B列 数学の点数 C列 英語の点数 行 生徒番号 として、1教科でも90点以上がある生徒の数を求めたい 作業列を使えば、D列に90点以上の真偽をだせば出来るのですが 作業列なしで一発計算することはできますか? よろしくお願いします
>99 当方、同じ環境なので簡単に試してみました。Sheet1のデータを変更した後でSheet2を表示させても再計算しませんでした。 というか、ツール-オプションから再計算を手動にしたときと違い、ステータスバーに「再計算」という表示も出なければ、 [f9]キーを押しても再計算してくれません。これにはビックリ。 再計算を自動にするのもマクロで行うしかないんですか?
>102 A2:A10が国語の点数、B2:B10が数学の点数、C2:C10が英語の点数と仮定して =SUMPRODUCT(SIGN((A2:A10>=90)+(B2:B10>=90)+(C2:C10>=90))) と入れると求めたい数が出ます。 + でつなぐことで3項目のいずれかが90以上のときに正数(1〜3)になり、 SIGN( )で()内を1か0にしたうえで、SUMPRODUCTで集計します。
>>104 お早いご回答ありがとうございます
早速入力させていただきました
自分の関数知識に絶望したので勉強したいと思います
ありがとうございました
>>88 その公式をどこに入れればいいのですか?A1以外のセルでおk?
>>89 そう、その情報がほしいのですが、その画面ではコピペできなくないですか???
>>90 今VBAの勉強をしていて、対象となるエクセルファイルがどこにあるのかパスを取得してください、と書いてあったので
そのエクセルの場所だと思うのです
91です。
自己解決しました。
どうしてできないか納得できなかったので、ためしに以前使っていたExcel2000で試すと、
問題なく思っていたとおりの動作になった。
これは・・・ひょっとして、と思いExcel2003を再インストール。これでめでたくできました。
どうしてだめだったのかは再現できないけど、とりあえず目的のことができました。
実際に動作が軽くなったかどうかは、まだ試していないから分からないけど、
理屈の上では計算するシートが減るわけだから、かなり期待してます。
>>103 F9でも計算しなくなります。
私の場合は、定期的に再計算させるようにマクロを作りました。
>>97 何の解決にもならん? そんな事はないし、どういう意味だろ
>>106 90だけど、VBAのお勉強ならVBAで取得しなきゃ意味ないんじゃね?
> 対象となるエクセルファイルがどこにあるのかパスを取得してください、と書いてあった
どう考えてもExcel本体じゃなくファイルのフルパスの事ですよこれ。
拡張子.xlsなどのファイルは「エクセル」と呼んじゃダメ、せめて「エクセルのファイル」と呼んで下さい。
VBAでやるなら「現在開いていて操作しているファイル」は「ActiveWorkbook」なので
パスがほしい場合はこのオブジェクトのPathプロパティかNameプロパティかFullNameプロパティあたりを利用します。
今回の場合はActiveWorkbook.FullName が妥当かと。(例えば"C:\test\練習.xls"といった形のフルパスを取得出来ます)
あと↓こんな専用スレもあるよ
Excel VBA 質問スレ Part16
http://hibari.2ch.net/test/read.cgi/tech/1280045912/
重いときは計算方法を手動にするのではなく軽くするのが正しい対処法
word総合相談所が落ちてるんだが、wordのVBA質問したい場合はどこいけばいいの(´・ω・`)
>>112 過去ログに保管されてない?
Janeからみれないだけか・・・
うーん・・・ 3桁の数字+文字列(下記例で「001あ」等)を書きたいんだけど 書式設定のユーザー定義で000にするとA列ではちゃんと、3桁の数字にはなってくれるんだけど、 A B C 001 あ =A1&B1 002 い =A2&B2 003 う ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ とすると、C1で出てきた答えが普通に「1あ」になってしまう・・・。 これをどうにかする書式設定とかってあるんでしょうか???
A列の書式設定を文字列へ。
=TEXT("000",A1)&B1
>>116 キター!!!!!
そうか・・・文字としての数字にすればよかったのか・・。
素早い上に的確な回答thx!!!マジ感謝だぜ
>>117 なるほど。
そっちでTEXT指定にしちゃう方法もあったのね。
しかしエクセルはほんとなんでもできちゃうんだな・・
セルの一部を結合してその中に文章を作りたいのですが、文章を一行で表示させようとして横の関係ないセルの方向に文章が進み全部表示されません。 具体的にはA〜Dの10〜15を一つのセルに結合してその中に横書きで数行の文章を入れたいのですが、実際は一行のままD以降に文字が 入力されてしまいます。 エンターを押してもかくていされるだけで入力した文章はDの右端で途切れてしまいます。 結合したセルの中に複数の段落をつけて下の方に文章を送りたい場合はどうのようにすればいいのでしょうか?
>>120 よく分かんないけれど「ALT+ENTER」をして改行したい、ってこと?
>>115 元から文字列として取り出せるようにしておく(
>>116 )か、
取り出した数値を利用直前に文字列へ再変換する(
>>117 )かのどちらか。
というか「値はいじらず、表示だけ自由自在に変えたい」ってニーズを満たすのが表示形式。
そこを理解したら納得できるんじゃないか?
セル値には必ず型がある。数値として持っているなら数値が、文字列として持っているなら文字列が入っている。
参照時はこの値がそのまま取り出される。これは表示に左右されない。(入力時は影響を受ける)
A1が持っている値は"001"(文字列)ではなく1(数値)だから、参照すると数値が出てくるのは当然の話。
A1が値として"001"を返すべきなら、元々文字列として値を持っていなければならない。
ちなみにそういう都合のいい型(3桁の整数値のみを持つような文字列型)はないので厳密には実現できない。
Excelのセルの値型はVBAに準拠しているので数値型、文字列型、日付型、真偽型、エラー型のいずれか。(大雑把な大別)
表示形式に"@"がない限り、セルの値は文字列型以外だ。つまりいずれにせよ数値。
001も1も数値としてはどちらも1、だから参照すると1が返る。
&演算子は両辺に文字列型を要求するためExcelは直前に1を"1"へ自動変換する。
表示形式に"@"があるなら、その型は必ず文字列型になる。よって参照すると"001"を取り出せる。
が、文字列型では入力時のチェックがまったく働かないので1と入力すると"1"がセルに入ってしまう。
"001"を取り出せるようにするには入力時に001と入力しなければならなくなり、入力作業が面倒になる。
>>121 ありがとうございました。まさにその通りでした。
どうもありがとうございます。
最初は本とか買って見ながら基本的な練習したほうがいいのでしょうか・・・?
>>123 まあ、どうでもいいんじゃない?
本はvba含めて数冊買ったけど、まともに読まなかった。
今はネットもあるからすぐ調べられるし。
あ、でも最初の頃はマイクロソフトオンライントレーニングをやったこともあったな
>>123 「Alt+Enter」やセル内折り返しの話が基礎学習過程で出て来るかどうかはやや疑問。
結局、EXCELにいくら精通してても細かい所は知らなかったり忘れるので必要に迫られて都度調べたりするもんです。
現状が「あらゆる疑問の答えをすべて持っていない」状態だとしても、だからといってそれを嘆くことはないでしょう。
これは単に全体効率の問題。一般的に本や初心者向けサイトをちゃんと1から10まで学習・実践するのは効率が良いと思う。
掛け算を知らぬ者が突然数学Iを理解しようとしても混乱するだけで当面は理解不能なだけ。
結局どこかで掛け算に舞い戻って学習しなければならい事に気付くでしょうが、時間的にはかなりのロス。
(そのロスが無駄だとは思わない。自ら疑問を持ったり試行錯誤する行為や学習の理由付けは理解にとって大切なプロセス)
>>125 アドバイスありがとうございます。
私自身確かに現状で問題なく出来る事もあれば知らない事もあり、良くも悪くも色々と中途半端な状態であると感じてます。
とりあえずやれる事を進めていき、つまずいたらその都度調べるなら勉強するなりしてやってみようと思います。
>>126 125ですが、ある程度理解出来ているならむしろ
1から10まで基礎的な部分を再学習してみる(答え合わせする)のは良い事です。
知っている部分は「そうそう」と手早く読み飛ばして、「あれ?」と思った部分を重点チェックです。
独学や必要に迫られる形で自ら獲得した知識はなかなか忘れずまた実践的で実用に足るものですが、
逆にやや間違えた解釈のまま覚えている場合があります。
また別々に記憶していた知識が、実はその根底がある概念で繋がっている事があります。
知識に橋が架かるとその同じ知識がより大きな範囲で活用出来るようになります。
その同じ知識を持って他の多くのものさえも簡単に理解出来たりと良い事尽くめですよ。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可能 【5 検索キーワード 】 CurrentRegion resize オートフィルターでのリストのコピーで、resizeについて 教えて下さい。 CurrentRegionで選択した領域で、特定の列だけを コピーするにはどうしたらいいのでしょうか? A1〜F8までの領域で、C列だけをコピーして 別シートに貼り付けたいって感じです。 resizeを使って…っと思ったのですが、イマイチ 理解できていません。 よろしくお願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
CSVを開いて、月ごとの支払い予定金額を集計したいです。
J列には20100917というように8ケタの日付が、V列には金額が入ってます。
ttp://uproda.2ch-library.com/304370DGG/lib304370.png (実際のデータは3500行ほどあり、J列とV列以外は空白にしています)
J列をもとに、次のように分けて金額の合計を集計し、
Sheets"MENU"のB5〜B8セルにそれぞれ記入したいのですが
どのようにすればいいでしょうか?
1.今月末までの金額
2.来月1日〜末日までの金額
3.再来月1日〜末日までの金額
4.再々来月1日から先の金額
考えたのは、V列の最下行に "=SUBTOTAL(9,R[-" & 最下行 & "]C:R[-1]C)" と入れて、
オートフィルタでJ列を分け、B5〜B8セルに順次入れればいいかと思いましたが、
抽出条件のやり方が分りません・・・orz
よろしくお願いします。
>>129 「今月末までの金額」ってのは、今月1日から?今日から?
>129 いくつかおたずねします Q1 .csvファイルを開いて表示されたシートと、Sheets"MENU"のあるシートは別ファイルになりますね? Q2 .csvファイルのファイル名(excelで開いたときのシート名)は固定ですか? Q3 日付順でソートされているんでしょうか? Q4 上記Q2で日付でソートされている場合、1.今月末までの金額 とは、無条件に2行目からでOKですか? それとも、過去の(前月以前の)データも含まれている、ということでしょうか? Q5 日付を意味する8桁の数字(この時点ではExcelは日付と認識できない)は数値ですか、文字列ですか?
132 :
129 :2010/10/18(月) 21:47:34
レスありがとうございます。
>>130 「今月末までの金額」は、過去からです。
支払い予定に対し、未払いのデータを出力するので先月や先々月なども含みます。
>>131 A1 別になります。
A2 固定ではありません。For Each WB in Workbooks で、
開いてるファイルを探して取得するつもりでいます。
A3 おおむね日付順ですが、並べ替えは可能です。
A4 過去の(前月以前の)データも含まれている、ということです。
A5 文字列の状態です。
よろしくお願いします。
>>129 今月末までの合計
=SUMIF(J:J,"<=" & YEAR(NOW()) & TEXT("00",MONTH(NOW())) & "31",V:V)
数式考えるのがめんどいから書かないけど、残りの合計もこれの応用でいけるはず
>>129 なんか汚いプログラムでごめん
Sub aaa()
Dim 今月末 As Long, 来月末 As Long, 再来月末 As Long
Set ur = ActiveSheet.UsedRange
今年 = Year(Now())
今月 = Month(Now())
If 今月 = 12 Then 来月 = 1 Else 来月 = 今月 + 1
If 来月 = 12 Then 再来月 = 1 Else 再来月 = 来月 + 1
今月末 = 今年 & Format(今月, "00") & 31
If 来月 = 1 Then 来月末 = 今年 + 1 & "0131" Else 来月末 = 今年 & Format(来月, "00") & 31
If 再来月 = 1 Then 来月末 = 今年 + 1 & "0131" Else 再来月末 = 今年 & Format(再来月, "00") & 31
For R = ur.Row To ur.Row + ur.Rows.Count - 1
Select Case Cells(R, "J") * 1
Case Is <= 今月末
sum1 = sum1 + Cells(R, "V")
Case Is <= 来月末
sum2 = sum2 + Cells(R, "V")
Case Is <= 再来月末
sum3 = sum3 + Cells(R, "V")
Case Else
sum4 = sum4 + Cells(R, "V")
End Select
Next
With Sheets("MENU")
.Range("B4") = sum1
.Range("B5") = sum2
.Range("B6") = sum3
.Range("B7") = sum4
End With
End Sub
135 :
129 :2010/10/18(月) 22:44:02
>>133-134 レスありがとうございます。
すみません、睡魔が襲ってきたので明日確認します。
136 :
名無しさん@そうだ選挙にいこう :2010/10/19(火) 17:31:16
2010年10月 | 6,000 2010年09月 | 30,000 2010年08月 | 31,000 というデータがあるとします。 2010年10月分は、1日〜6日までの分しかありません。 このデータに平均を足す場合、 全ての値を足して、月数で割ったもの (6,000+30,000+31,000)/3 = 約22,333 と、 (6,000/6*31 +30,000+31,000) /3 = 約30,667 のようにしたもののどちらを使えばいいのでしょうか? また、どちらも載せる場合、平均A/平均Bなど以外に何か良い呼び方はないでしょうか? 少々スレ違いかも知れませんが、よろしくお願いします。
137 :
複乳 :2010/10/19(火) 17:40:16
>>136 ちとスレちがいな気もするが・・後者でしょ
呼び方は日数平均でいいと思う。
意味は少し違うが加重平均をいう言葉を知っていると便利でカッコイイ
138 :
複乳 :2010/10/19(火) 17:41:12
あー、りょうほうか A 月平均(但し10月は6日間のみ) B 日数平均 って感じだな
139 :
複乳 :2010/10/19(火) 18:38:45
/ ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ 今後も複乳をよろしく
140 :
136 :2010/10/19(火) 19:01:46
ありがとうございます。
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 セル範囲A1:A8240までに記入された文字から 特定の文字が何回出たかをカウントしてB1に表示させたいのですが、そのための式を教えてください 抽出したい文字は2文字〜5文字の言葉になります LENやSUBSTITUTEを使ってみたのですが、上手く回数を返してくれません 宜しくお願いします
配列式を使えば可能かもしれないな 配列式をマスターするよりVBAを勉強するほうが簡単だと思うくらい理解しにくいが
「配列式」でググってサイト見ていったらやっと原因分かりました Ctrl+Shift+Enterで押さなきゃいけないんですね どうもありがとうございました
めんどうだからA1〜10で セルの数であれば =COUNTIF(A1:A10,"*あ*") セルの中のトータルの出てきた数であれば、 =SUMPRODUCT(LEN(A1:A10)-LEN(SUBSTITUTE(A1:A10,"あ","")))
145 :
129 :2010/10/19(火) 21:14:01
>>133 すみません。134さんのマクロで集計したので試しませんでした><
>>134 月末をどうするか悩んでましたが、全て31以下で処理するんですね。
勉強になります…メモメモφ(..)
タイトル行があるのでR=ur.RowをR=2、Cells(R, "J")をCells(R, 10)、
Cells(R, "V")をCells(R, 22)に書き直して集計できました。
>>145 > Cells(R, "V")をCells(R, 22)に書き直して
これは同じ意味だから書き直さなくていいんだよ
アルファベットのままの方が何列目かわかりやすいでしょ
>>144 CountIfってワイルドカードとかあったのね知らなかったや、ありがと
>>145 32日の月ってあるの?w
文字列を数値としてそのまま扱うトリック使ってるけど、ちゃんと理解されてるのかな
>32日の月ってあるの? あるわけねーだろ? 消防か?
マジレスとか
150 :
複乳 :2010/10/20(水) 09:41:36
/ ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ おまいら釣られるなよ
教えてちょんまげ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 条件付き書式で色分けしたいんですよ 列AAの4〜103までの100セルに計算式を入れてます その値はそれよりも左のA〜Z列によって変動し 1〜4あるいは0の数字が入ります(0は計算式を変えることで""にもできます) それ以外の数字になったりはしません また式の仕様により ・AA4セルはいつも1である ・数字の順番は下に進むにつれ常に1→2→3→4→0になる ・2や3や4は出てこないことがあるが数字が飛ぶことはない(3がない時は絶対に4もない) ・基本的に同じ数字がいくつか連続する という状態になっています 例を挙げると、上から順に見ていった場合 ・11111122222222223334444000000......0 ・11122222000000000000000000000......0 ・11111111111111100000000000000......0 みたいな場合があります(0は""にもできますが) このような時セルの背景を ・1の部分は水色 ・2の部分は明るい緑 ・3の部分は黄色 ・4の部分はゴールド ・0の部分はぬりつぶしなし にしたいんですが3つまでの条件つき書式でどうやればいいでしょうか? なおすでに列がたくさんあるのでなるべくなら作業列を使わずにやりたいんですが可能でしょうか?
152 :
複乳 :2010/10/20(水) 14:30:10
>>151 多分無理じゃないかなー
ABとACで
「数式が」=$AA$4=1
のように設定して行くしかないと思う
153 :
複乳 :2010/10/20(水) 14:39:33
/ ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ でも、できるかもしれないのでもうちょっと調べてみるね
>>151 Excel2003の条件付き書式は3つまで
Excel2007の条件付き書式は無制限
2003でもVBAなら出来るよ
>>151 5色塗り分けるのは無理じゃないかな
どうにかVBAなしで実現できないか考えてみたが、5色(4色+なし)が不可能ぽい
「3色+なし」で4種類までなら、可能なのだけど
3つの条件式は独立して作用するわけでもないし、(If文やSelect文のように1つしか実行されない)
背景色は元値に関わらずただ書き換える事しかできない。(元値に対して四則演算などの操作が出来ない)
この2点がクリア出来たなら色によっては最大7色+なしで8種類まで可能だったけど、あいにくそういう仕様じゃないので無理。
条件付き書式以外での実現方法も視野に入れる(VBAを使うor併用するとか作業列を用意する)ならやれない事はないだろね
…「条件付きマクロ」って欲しいなぁw
>>155 そういう時「条件」はマクロの中で判断するものだから
>151 どうしてもAA列の値に応じた色を指定する必要があるのでしょうか? 地図の色分け(※)みたいに、1:水色、2:緑、3:黄色、4:水色、0:塗りつぶしなし のように全体で4色(条件付書式で3色+地の色)ではダメですか? ※地図はどのような場合であっても必ず4色で塗り分けが可能 VBA不可というのは、絶対ですか?(職場のPCでVBA実行禁止の設定がしてあるとか?)
91で質問した者です。 Excelを再インストールすることで、EnableCalculationが動作するようになったのですが、 しばらく使っていると、EnableCalculationで計算しないシートを指定しても、 そのように動作してくれなくなりました。 これはいったいどういうことなんでしょう。さっぱり分かりません。 なにが原因なんだろう?
>>158 EnableCalculationを自動的に書き換えるアドインや何かが入っているとか
XLSTART,PERSONAL.XLS,他設定ファイルがおかしなことになっているかも
今月ならA2セルにOctober、来月になったらNovemberとファイルを開いたら 自動的に入れる方法ってありますか?
=TEXT(TODAY(),"mmmm") と入れてみよう
=TEXT(NOW(),"mmmm") でもよさそう。
>>159 XLSTARTとPERSONAL.XLSはないから関係なさそう。
アドインは使ってるけど、これが自動的に書き換えるとは思えないし・・・
アドインも使わず最低限の計算しか入れてないシートで検証してみたけど、
それでもだめだったから、たぶんアドインの影響はないと思います。
困ったな。OSごと再インストールするしかないのか・・・
5000行(レコード)のなかから 重複行の抽出は?
165 :
160 :2010/10/21(木) 22:05:21
>>161 >>162 スゲー!ありがとう。感動した!
いやー、auto_openマクロでやらないとだめだよな〜って思ってたので。
ずっと記述を保持したいならauto_openもありだと思うけどね
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 excel vba セル ひとつに
複数セルの内容を一つのセルに連結したいのです。
http://soudan1.biglobe.ne.jp/qa1164832.html 検索した所、↑このページが一番近いイメージだったのですが、
手動で対象セルを選択するのではなく、特定セルを自動で行いたいのです。
横方向は3列、縦方向は可変です。
A1 青森 b1 リンゴ c1 パイ
A2 愛媛 b2 みかん c2 ジュース
↓結果↓(先頭セルにまとめて、セル(単語)毎に改行。先頭セル(a1)以外はクリアする)
a1 青森<改行>
リンゴ<改行>
パイ
a2 愛媛<改行>
みかん<改行>
ジュース
よろしくお願いします。
>>167 Sub test()
Dim r As Range
Dim maxRow As Long
maxRow = Cells(Rows.Count, 1).End(xlUp).Row
For Each r In Range("a1:a" & maxRow)
r.Value = r.Value & vbCrLf & r.Offset(0, 1).Value & vbCrLf & r.Offset(0, 2)
r.Offset(0, 1).Resize(1, 2).Clear
Next r
End Sub
マクロ使わない方法 @D1に「=A1&CHAR(10)&B1&CHAR(10)&C1」、D列にオートフィル AD列をコピー&値貼り付け BA〜C列を削除
170 :
複乳 :2010/10/22(金) 09:02:30
>>167 自動で、の自動の瞬間っていつ?Cが入力されたとき?
VBAを使わなくても別シートのA1=A1&CHAR(10)&B1&CHAR(10)&C1
とすれば自動に近い感覚で使えると思う
171 :
複乳 :2010/10/22(金) 09:15:35
ぎゃーかぶったごめんなさい
172 :
複乳 :2010/10/22(金) 09:38:54
,/テ=、 | ///,.-ー`,/ ̄ ̄ ̄ ̄ ̄ ̄\ | // / ̄/ \ 〃 | / / ヽ ′ ボクとしたことが . /`ー、ノ l:::::::::. | _ /、 > |:::::::::: (●) (●) | ´ おはずかしい・・・・・ ` ヽ´ |:::::::::::::./// \___/ /// | / ヽ:::::::::::::::::::. \/ ノ
【1 OSの種類 .】 Windows7 32bit 【2 Excelのバージョン 】 Excel2000 SP3 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Windows7 Excel2000 オートコンプリート 落ちる Windows7 で Excel2000 を使ってます。 オートコンプリートを有効にして、その機能を使うと強制終了します。 しかし、オートコンプリートを停止して Excel2000 を使うと正常に動きます。 ちなみに、ネットの情報では MS-IME との相性が悪いので ATOK や Google IME を使えば改善するとありました。 しかし、Google IME をインストールして、既定の IME にしても症状は改善しませんでした。 何か対策はございますか? オートコンプリートがあった方が便利なので、この機能を使いたいのです。
174 :
複乳 :2010/10/22(金) 13:49:22
>>173 俺も同じ質問したことあるけど、解決方法は多分ない
オートコンプリートを切ろう
175 :
複乳 :2010/10/22(金) 15:30:17
/ ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | はい |:::::::::: ⌒ ⌒ | 次どうぞ |:::::::::::::./// \___/ /// | ヽ:::::::::::::::::::. \/ ノ
176 :
名無しさん@そうだ選挙にいこう :2010/10/22(金) 16:05:51
excel2003です 以下のように入力されている場合 A1=10 B1=大吉 A2=20 B2=中吉 A3=20 B3=吉 A4=20 B4=末吉 A5=20 B5=凶 A&=10 B6=大凶 "A列%の確率でB列の値を表示させる関数"はありますか? (10%の確率で大吉、20%の確率で中吉、…) もしこのような関数がなければ、関数を組み合わせて上記の""ようにする方法を教えてください。
5時から出かけなあかんから一言だけ ランダムな数字を出すRAND関数やったっけ あれ使ってIF使ってA1セルの値より小さければ〜とかやったらどやろ ああRANDに100かけなあかんかな
>>176 おみくじの結果をC列に表示するとしたら、
C1=IF(INT(RAND()*100)+1<=A1,B1,"")
あとは下へコピー。
179 :
176 :2010/10/22(金) 18:02:02
なんかもっといい方法ないですかね A列*RAND()して一番大きい数のA列をVLOOKUPで求めたら確率はおかしくなるのかな?
180 :
複乳 :2010/10/22(金) 18:13:07
100%で1%刻みなら100行にしてVLOOKUPすればできなくもないけど、準備が結構めんどくさい
181 :
複乳 :2010/10/22(金) 18:25:19
/ ̄ ̄ ̄ ̄ ̄ ̄\ /u J u \ / u u u J ヽ l::::::::: | 検索の型にTRUEを使えばできそう |:::J::: u (●) u (●)u | もうちょっと考えてみるね |::::::u:::::::: \___/ | ヽ::::::u::::::::::. \/ u J ノ
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可(全く経験ありません) 【5 検索キーワード 】 セル 色 反映 別シートに作ったリストをVLOOKUPで参照する際、リストに付けたセルとフォントの色が 同じになるようにしたいのですがどうすればいいのでしょうか?
>>176 作業列に確率の積算値を入れればVLOOKUP一発で可能
C1=A1
C2=A2+C1
以下略
>>176 =LOOKUP(RAND()*10,{0,1,3,5,7,9;"大吉","中吉","吉","末吉","凶","大凶"})
=LOOKUP(RAND()*10,{0,1,3,5,7,9},{"大吉","中吉","吉","末吉","凶","大凶"})
表を作った方がいいけどな。
あと10倍が必須ではないが。
すまん、A列は可変なのか。 C1: 0 C2以下=C1+A2 としてから =LOOKUP(RAND()*100,C1:C6,B1:B6)
C1: 0 C2以下: =C1+A1 の間違いだな。 A列は合計100となる前提。
確率を微妙に変えたいとき、いちいち合計を100にするのは面倒だろう C1=A1/SUM(A$1:A$6) C2=(A2+C1)/SUM(A$1:A$6)
>>187 0.1
0.201
0.20201
0.2020201
0.202020201
0.102020202
こんな数値からどうやって求めるのか教えてくれ。
C1以下=A1/SUM(A$1:A$6)
=LOOKUP(RAND()+C$1,C$1:C$6,B$1:B$6)
なら分るけどな。
C1:C6は{=A1:A6/SUM(A1:A6)}の方がベターだが。
すまん C1以下=A1/SUM(A$1:A$6) D1: =C1 D2以下: =D1+C2 =LOOKUP(RAND()+D$1,D$1:D$6,B$1:B$6) こうだったわ。
190 :
176 :2010/10/22(金) 23:22:49
191 :
176 :2010/10/22(金) 23:36:46
出来たと思ったんだけど、ためしに A1=1 A2=1 A3=1 A4=1 A5=1 A6=100 でやると逆にB6が出にくい。そのぶんほとんどB5になります 理由はなんとなく理解してるけど、頭が回らない このやりかたではだめなんかな?
すまん、
>>189 は全然駄目だな。
どうもボケが来てしまったようだ。
今度は間違いないだろう。
C1以下=A1/SUM(A$1:A$6)
D1=0
D2以下:=D1+C1
=LOOKUP(RAND(),D$1:D$6,B$1:B$6)
193 :
176 :2010/10/23(土) 00:15:30
今度こそ出来ました ありがとうございました
Excelで、「セルの詳細設定」を開こうとすると、えらい時間がかかります。30秒くらい。 一旦開くと、次からはすぐに開くのですが、Excelを再起動させると同じ状況になります。 WiMaxに接続しているときに、この症状が起きることは分かっているのですが、直し方はわかりません。 ドライバーは複数バージョン試したのですが、同じ症状です。 Wifi接続時は問題ありません。 直し方を教えてくれませんか? 機種:ThinkPad x200s OS:windows 7 Excel:2007 WiMax Adapter: Intel Advanced-N + WiMax 6250
195 :
名無しさん@そうだ選挙にいこう :2010/10/23(土) 02:06:56
>>194 / ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
Ctrl + 1 (キーボード左の1) を押すとどうなりますか?
196 :
名無しさん@そうだ選挙にいこう :2010/10/23(土) 02:54:10
エクセル2003使ってます あるセルとその下のセルを結合してその中に文を書きたいです そのセルの中で上の段と下の段で分けて書きたいのにど真ん中にしか書けないです やり方を教えて欲しいです
つ "Alt + Enter"
198 :
名無しさん@そうだ選挙にいこう :2010/10/23(土) 03:13:45
199 :
194 :2010/10/23(土) 03:29:50
>195 同じように時間がかかります。
>>192 はよく見たら
C1 =0
C2以下 =C1+A1/SUM(A$1:A$6)
=LOOKUP(RAND(),C$1:C$6,B$1:B$6)
と同じじゃないか。
俺もいよいよ頭が回らなくなってきたな。
あとSUM(A$1:A$6)は作業セルの方がいいけどな。
>>194 最初に書式設定を開く時、インストールされたフォントと印刷可能なプリンターをすべて確認する仕様になってる。
(ネットワークで共有されたプリンターを含む)
不要なフォントと普段使わないプリンターを削除して、LANケーブルを抜いてネットに接続されていない状態にすれば
だいぶ軽くなるけど、いちいちそんなことをするのも面倒だし、根本的な解決方法は今のところ見つかってない。
202 :
名無しさん@そうだ選挙にいこう :2010/10/23(土) 10:17:41
>>176 =CHOOSE(INT(RAND()*10),"大吉","中吉","吉","末吉","凶","中吉","吉","末吉","凶","大凶")
ランダムに1:2:2:2:2:1の確立で・・・なら、こんなのどう?
>>202 それだと1/10の確率でエラーになる
=CHOOSE(RAND()*10+1,"大吉","中吉","吉","末吉","凶","中吉","吉","末吉","凶","大凶")
複乳君はとうとう考え出せなかったか
206 :
202 :2010/10/23(土) 14:06:07
>203 RAND関数は0.1以下になる場合もあるんだ、知らなかった。 ありがと! >204 でも、その分シンプルだろ
>>176 みたいな関数あったほうがいいよな…
使う機会多そうだし
いやいらんだろ・・・
そのためのRAND()だろうに
そんなんならVLOOKUPとかHLOOKUPの逆向きのが欲しいわ 見出しは左側や上側に付けるとしてもいつも抽出したいものが右とか下にあるとは限らんと思うのだが INDEXとかMATCHはお帰りください
>>206 シンプルってあんた、例えば下の確率で作ってみなよ。
結構大変だと思うぞ?
10 大吉
15 中吉
25 吉
25 末吉
15 凶
10 大凶
やっぱ汎用性のある
>>200 が簡単だな。
>>210 馬鹿杉
だからVLOOKUP使いは馬鹿が多いって言われるんだよ。
>>176 のケースはLOOKUPで決まりだしな。
214 :
名無しさん@そうだ選挙にいこう :2010/10/23(土) 19:43:02
>211 汎用性が無いのは分かってんだから、違う問題出しても意味無いじゃん
だが質問者は皆ウソをつく ここで質問する時はこうこうこれだけがしたいんですと言い 実際にはもっと複雑なことがしたいのだ つまり汎用性を求めているんだよ、質問者は 常に、ね それを禁止するようテンプレに書いていても無駄だ いかにしてバレないかと巧妙なウソを考えるにすぎん
216 :
sage :2010/10/23(土) 20:56:39
215君、子供っぽいね。
>>200 はよく出来てるね。
>>211 の比率で100万行に式を入れてやってみたら、ほぼ同じ比率で出現した。
あるフォルダの1層目のファイル名、フォルダ名だけをすべて掃きだすことってできないですか? そのようなものはあったのですが階層すべてが表示されてしまい、ある特定の層だけというのはできませんでした 単純なことなので標準で実装されていたりしますか?
>>218 標準では用意されていない
Sub aaa()
f = Dir("C:\Program Files\*.*", &H3F)
r = 1
Do While f <> ""
Range("A" & r) = f
r = r + 1
f = Dir()
Loop
End Sub
助かりました。ありがとうございます。
【1 OSの種類 .】 Windowsxd 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい(ちょっとだけ) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel vba 一文字毎 伏せ字 a1 東京 b1 鈴木 一郎 c1(いろんなデータ) a2 大阪 b2 南 光太郎 c2 a3 愛知 b3 御手洗 明 c3 個人情報を取り扱ってまして、下記のように顧客の名前を一文字置きに伏せ字にできまませんか? a1 東京 b1 鈴○一○ c1・・・(いろんなデータ) a2 大阪 b2 南○太○ c2・・・ a3 愛知 b3 御○洗○ c3・・・
222 :
221 :2010/10/24(日) 21:30:23
あ、追記で申し訳ないのですが、 名前と苗字の間には全角の空白となってます。 よろしくお願いします。 あと例示リストは3つですが、実際には複数名があります。
>>221 自信なし・・・一般関数のreplaceってどうすればいいの?
Sub AAA()
Dim maxRow As Long
Dim i As Long
Dim r As Range
Dim v As String
maxRow = Cells(Rows.Count, 2).End(xlUp).Row
For Each r In Range("b1:b" & maxRow)
v = Replace(r.Value, " ", "")
For i = 2 To Len(r.Value) Step 2
v = Application.WorksheetFunction.Replace(v, i, 1, "○")
Next i
r.Offset(0, 1).Value = v
Next r
End Sub
>>223 おお、取りあえず例示の構成では上手くいきました
明日会社で実際のファイルで試して見ます。
有り難うございました。
>>223 VBAではMid関数を使う
For i = 2 To Len(r.Value) Step 2
Mid(v, i, 1) = "○"
Next i
Application.WorksheetFunction.Replaceっておもいっきり下手だなぁ。 >For i = 2 To Len(r.Value) Step 2 >v = Application.WorksheetFunction.Replace(v, i, 1, "○") >Next i ここを添削すると For i = 2 To Len(v) Step 2 Mid(v, i, 1) = "○" Next i となる。 ちなみにステートメントの場合Mid$とする必要はない。
あちゃー、リロードしないで書きこんだらすでに同じ指摘が入ってたよ。 でもまぁFor i = 2 To Len(r.Value) Step 2 も間違いだからいいか。
ちなみにMid関数じゃなくてMidステートメントな。
Midマニア襲来
Midナイト
231 :
名無しさん@そうだ選挙にいこう :2010/10/25(月) 14:58:23
,.,.,.,.,.,.,.,.,__ i::::::::/'" ̄ ̄ヾi |:::::::| ,,,,,_ ,,,,,,| |r-==( 。);( 。) ( ヽ :::__)..:: } ,____/ヽ ー== ; それでそれで? r'"ヽ t、 \___ ! / 、、i ヽ__,,/ / ヽノ j , j |ヽ |⌒`'、__ / / /r | {  ̄''ー-、,,_,ヘ^ | ゝ-,,,_____)--、j / \__ / | "'ー‐‐---''
大陰唇みてちんちんぼっきした? /:::::::::,イ〃//:/A//}}:::::::!::::!::::::!:N //|::::::|トi!|/ 'レ行ミ、〃::::::::!:::::::::!::::| i:||::::垳 じリ/::::::::::::::::::::::::::::| |! |:::|:::!r' ""乂:::::::::A:::::::::::::::| ! Y八 r‐、 イ::>― <Y::::i:∧ |! |:ヽ` //´ ヽ 乂ト、i!:::| j |:i:|`ァT:/ l ||ト、ヽ\ |:|:| |:レ'i | 〃ヾ \ヽヽ |:|:|/|:レj ___/リ \__)):::::\ /,:/:/|/|  ̄ /〃 r- 、::::) ///〃/ || / / ∠ ィ___77A┼>、 〃 {{ |ト、|| //__7 ̄/ /ノ≠≦==iト≧=- _ {{ ヽ|Y! / ,. -、{`-{ -〈 /.‐/7-ヽ‐-》___》__〉-、-、 ヽ i! ! _,. / `‐┴--ヽ__〈/-‐'´ ̄ ` <「ヽ ,'/レ7 : ヽ.ト、 ,' ト、_./ i Vヘ ,' LV ! Vヘ ,'/L/ ,' Vヘ ,'|_/_.,' ,.' |ヽ ,' ヽ.V ,.小 ト、 / ,' ,. '´ ノ ; ! .! r 、 fヘV .,' /-‐'-イ ;、/ ⊂ニ、 `. 〈 i / / ∧┼
233 :
複乳 :2010/10/25(月) 19:08:03
。 。 ,.-ー .、 ,.-- 、 / / _,..-、 __ ,,..--─- 、_ ノi^ヽ、_,ヘ、 ,' ,ィノ-ィ ; i i /__/,..--,i ,ィ^i^!i ッ-ヘ。__。ヘ ./ー- 、 !ヽ'r〜⌒〜yノ。 / _,,,......,,,_i i / `'! i , ' ` ´ヽ、 ,レ ⌒ ヽ レ, '´゚ `,〉 /==ヽ i `Y ルノハルノ ´r'ノノ人ノ))) 'r.'´ノリ人ノリ〉-' i <ノルレノル' 彡iノノlノリミ i ハ)))ハ))ノ) ム, |/ ハi.リ ゚ ヮ゚ノリ ,ヘ,ゝ ゚ ヮ゚ノ,) 〉从!゚ ヮ゚ノi( i !i ゚ ヮ゚ノ! ソリ!゚ ヮ゚ノ!〉 イオi ゚ ヮ゚ノヘ / `/ l ・・ヽ ,ゝ/,´ ・・ヽ `/ l ・・ヽ |/,´ ・・ヽ /,´ vvヽノ ,/ l ・)・)つ'ソ しノ ・・|J ζヽ,〉 ・・|,〉 しノ ・・|J くノ,〉 ・・|,〉 くノ,〉 vv| しノ(・)・)・) / ・・l £' ( ・・l C/ ・・l ( ・・ヽ ( vvl / | 〜ノ ハ | | / l ノ ハ | !リゝ 〉、ヽ | / l ノ ハ | し' i__) !__)__) し' i__) !_ノ ヽ_) !__)__) し' i__) ぁたしたちの複乳も見てね☆
複乳名乗ってる奴ってどんだけ複乳ファンなんだよw
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 コピペ 太字 ウェブの文からコピペすると太字やサイズのばらつきが気になるのですが、 解除が面倒なので、初めからそういうのを一切適用しないようにできないでしょうか?
ペーストした後に範囲選択して「クリア」→「書式」とすりゃいいんでないの?
形式を選択して貼付けでテキストを選択すりゃいいんでないの?
一番簡単なのは、セルを編集状態で貼り付けること・・・・
テキストの属性は簡単に解除できるけど、一緒に貼り付いてくるチェックボックスとか画像を消すのがめんどくさい 2007になってからマウスでガーっと選択してDeleteのやり方がわからなくなった
241 :
複乳 :2010/10/26(火) 11:04:21
一旦メモ帳に貼り付けて編集するのが好きです
242 :
複乳 :2010/10/26(火) 11:25:58
/ ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | キャッ キャッ |:::::::::: (>) (<) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
243 :
名無しさん@そうだ選挙にいこう :2010/10/26(火) 14:46:29
せんせー! 質問です! エクセル2002を、WinXPで使ってます。 小遣い帳のテンプレを自分で作って、記入しています。 次の月は、シートを追加して、そのテンプレをシートに貼り付けて使ってます。 うっかりと、テンプレに記入する事が多いのですが シートまたは、セルの範囲内を記入できない様にする方法が ありましたら、教えてください m(_ _)m
保護かければいいんでは
>>244 せんせー! うまくいきました。ありがとうございました m(_ _)m
>>240 気持ちはわかる。俺も同じだ。
テキストとしてペーストすると表示が崩れる場合がある
その時は作業用のシートを用意しそこへ単純ペースト、それをさらにコピーして目的のシートへ形式を選択して貼り付け
これでたいていはうまくいくが、画像やらリンクやらがあるとどうしても残る
結局俺は、最終的にVBAマクロを作って対処した。
コーディングも中々面倒だった。
>>241 表の状態は残しつつ、画像や装飾や罫線や背景色はいらない!みたいな時が厄介での
Excel2000を使っています。 1行毎に1、2,3・・10、と数値を連続データで入力したのですが 行を挿入した場合、自動的に連続データで入力した数値は変換するように するのはどうすればよいのでしょうか?
=IF(MOD(ROW(),2),INT(ROW()/2),"") こういうのを入れておけば行挿入に伴って1行おきに+1ずつ増える数ができます。 行挿入したところはひとつ上のセルをドラッグコピーしたらいいと思う。
コピーしたセルの挿入
しかしきちんと回答できてる人もいるわけで シロウト相手にサポートしてると日本語がおかしいなんて日常茶飯事だわ エスパー能力もスキルのうち
255 :
名無しさん@そうだ選挙にいこう :2010/10/28(木) 02:31:15
ちょっと質問なんですが、EXCEL2003を使用していて作った表が印刷出来ません。 プリンタが印刷を開始しても白紙のまま出てきます。 OSはWINDOWS XPでプリンタはCanon ip4600を使っています。 至急解決策が欲しいのでよろしくお願いします。
すいませんsage忘れました。
>>255 プリンタのプロパティでテストページは正常に印刷できる?
>>257 テストページは正しく印刷出来ます。
デジカメの写真やネットから拾った画像なども大丈夫なのですが、
Excel2003からの印刷のみ白紙で紙が出てきてしまいます。
Words2003でも試したところ同様に白い紙しか出てきませんでした。
Excelでの”印刷範囲の設定”ができていないのでしょう。
>255 印刷プレビューでは正常に表示できてますか?
261 :
194 :2010/10/28(木) 11:13:32
>201 そうですか。わかりました。 ありがとうございます。
オートフィルタによって一部抽出したリストで、 表示されている部分だけ1枚に印刷するにはどうすればよろしいか? 元のリストが長いと、抽出分が10行くらいなのに 印刷すると何ページにもなってしまいます。
263 :
複乳 :2010/10/28(木) 22:04:30
ハードコピーを取って、それをWordに貼り付けて印刷すれば無事1ページにおさまるさ。 / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
>>262 へ〜、そんなふうになるっけ?
覚えがないけど・・・
とりあえず、表示されている部分を選択して、「選択した部分を印刷」にすれば?
余談だけど、2010ってALT+Nで「選択した部分を印刷」って出来ないのね(´・ω・`)
マウス使わなきゃだめなのか・・・あぅあぅ・・・よく使う機能だったのに・・・あぅ
265 :
複乳 :2010/10/28(木) 23:54:11
>>262 改ページがそのままなんじゃないの
表示の改ページプレビューで直せばいいと思う
>>258 Office共通の印刷エンジンが壊れたのかな
もう一度同じ質問するけど、印刷プレビューはどうなってる?
修復インストールは試した?
267 :
名無しさん@そうだ選挙にいこう :2010/10/31(日) 02:52:16
エクセルで水光熱費などを毎月付けており 毎月、前月分をコピペした後 金額と、H22年○月分の○部分を変更記入しているのですが 金額はともかく 年月の部分はコピペするたびに加算?されていくことは出来ないですかね? 例えば H22年11月分の1行をコピペして貼り付けると H22年12月分へと自動変換してくれて H22年12月分を貼り付けると、H23年1月分に自動変換してくれるみたいな。
2010の場合、 =EDATE(A1,1)
269 :
複乳 :2010/10/31(日) 06:09:26
>>267 普通にオートフィルでOK。
セルの右下をドラッグする。
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
270 :
268 :2010/10/31(日) 06:17:45
でもこれダメだ取り消し。
そんなだったらオートフィルで十分だな。
273 :
名無しさん@そうだ選挙にいこう :2010/10/31(日) 09:51:12
質問お願いいたします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 簡単なものならなんとか 【4 VBAでの回答の可否】 できればやめていただきたいです インターネット等の文字列をコピー(Ctrl+C)し、エクセルへ貼り付け(Ctrl+V)た際、 『貼り付け元の書式』にて貼り付けをされます。 これを※自動※で『貼り付け先』の書式に合わせて貼り付ける方法(設定等)はないものでしょうか。 補足:「貼り付けのオプション」→「貼り付け先の書式に合わせる」ではなく。自動(一度で)できる方法をお教えください。 ご回答よろしくお願いいたします。
できない
そういう手もあったか。気付かなかった
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel、vba、bitblt、api VBAでBitbltを使うには、どう書けばいいのでしょうか? VBやCのサンプルはいくらでも見つかるのですが、 VBAは見つかりません。
>>279 ありがとうございました。
フォームに直描きしようとしていたのが間違いだったようです。
281 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 09:26:26
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 少しだけ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】文字を○印で囲む ダブルクリックでセル内の文字を○印で囲み 再度ダブルクリックで○印を消すには? 太さは0.75、色は黒指定です。 よろしくお願いします
>>281 マルチポストは関心しませんな
VBAスレにも書いたけど、基本的には無理
284 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 11:01:44
エクセルのユーザ設定で 通常の場合:黒 0の場合無表記 マイナスの場合赤としたいのですが どうしたらいいですか?
>>282 ワードの○囲い文字作成を流用してvbaで作成出来るんじゃね?
>>284 書式設定を数値でマイナスの場合赤文字にして、条件書式設定で 0="" でいいんじゃね?
286 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 11:11:27
>条件書式設定で 0="" ダメでした 詳しくお願いします。
288 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 11:32:23
thx できました。
289 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 11:49:46
>284 ユーザー設定なら 書式設定のユーザー定義で #;[赤]-#と入力しても行けますよね?
290 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 12:33:11
SUMIF関数で 表の項目名と 条件を入力する箇所の項目名が 違っていても対応できる方法はありませんか? あるいは実際には、同じなのに 見た目の表記を変えることはできませんか?
ピボットテーブルで
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 多少 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel 他シート 変数 特定セルに含まれている文字と、同じ名前のシートの行数を取得 ということをしたいのですがうまくいきません MsgBox Worksheets(Cells(3, 9)).Cells(Rows.Count, "C").End(xlUp).Row cells(3,9)には 22_11M という文字が入っています MsgBox Worksheets("22_11M").Cells(Rows.Count, "C").End(xlUp).Row だとうまくいきます 改善点を教えてくださいませ
293 :
292 :2010/11/02(火) 17:27:10
CStrで文字列にしたところうまく・・・ 失礼しました
EXCEL Viewerの2007対応版で セルの書式設定で元号表示をユーザ定義で ge.mm.dd として平成22年11月01日にしてあると 元号部分が旨く表示できず 10.11.1と西暦になってしまうバグって何かのテクで対応可能ですか?? 因みにユーザ定義しないで通常の元号表示で平成22年11月1日ならば問題ないんですが・・・・(^^; 2003まで対応版Viewerはコンナこと無いんですが、2007のみインストしてあると古いのが入れられないんで(T_T)
295 :
名無しさん@そうだ選挙にいこう :2010/11/02(火) 23:53:30
日付から選んだものには「[$-411]」とかのローケル(?)情報付くので入れてみては?
296 :
名無しさん@そうだ選挙にいこう :2010/11/03(水) 18:29:22
Excel2003なのですが VBAを使用しないで for next のような処理は可能ですか
297 :
複乳 :2010/11/03(水) 19:03:39
>>296 幅が広すぎて何とも言えない。
a = 0
for i = 1 to 5
a = a + 1
next
程度ならセルでなんとかできるけど、セルの削除などは出来ない
あとはマクロ4.0を使うという手もあるが、きっとお望みの回答ではないでしょう
>>296 何を言いたいのか分からないけれど、
REPT関数とかしかないし、基本無理じゃないかな
>>296 その質問じゃ何を欲してるのかわからん
わかるように説明できないなら、せめて詳しい具体例を挙げろ
300 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 00:22:16
質問です A1 B1 A2 B2 A3 B3 こんな感じで3000行くらいあるんですが、これを B1 A1 B2 A2 B3 A3 それぞれA列とB列を入れ替えたいんですが?
301 :
複乳 :2010/11/04(木) 00:45:41
>>300 B1=INDIRECT("r"&IF((MOD(ROW(),2)=1),ROW()+1,ROW()-1)&"c1",0)
下にオートフィル
コピーして同じ場所に値で貼り付け
>>300 For r = 1 To 3000 Step 2
w = Cells(r, 1)
Cells(r, 1) = Cells(r, 2)
Cells(r, 2) = w
Next
C列に数式で適当な数値いれて並び替えればいいじゃんw この程度のこと
おまえら難しく考えすぎ
>>300 B1=A2
B2=A1
オートフィル
コピーして値で貼り付け
俺は質問の意味が分らん B1 A1 としてオートフィルってことか? それとも '=B1 '=A1 としてオートフィルからデータ、区切り位置、完了?
306 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 11:10:05
>>300 ???B列カットしてA列選択してペースト
これではいかんの?
>>300 のA1とかB1とかはセル内のデータの例でセル位置ではないんだと思う
簡単そうで難しいな(`・ω・´)
エスパー合戦でつか?
【1 OSの種類 .】vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】否 【5 検索キーワード 『方程式 excel 』 excelで A-46x=B(C-22x)の xの解をだしたのですがどのようにしたらよいですか? A,B,C,Dの数値は変わります 基本的な算数もできないので A-46x=BC-22xB 22xB-46x=BC-Aでとまっております^_^; よろしくおねがいします
312 :
294 :2010/11/04(木) 13:31:22
>>295 その情報を入れたら解決しました。
ありがとうございました(_ _)
313 :
311 :2010/11/04(木) 13:46:50
>>311 すいません自己解決しました
算数ができなかったようでした
314 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 14:46:42
質問があります。 シート1に、A列に10個のデータがあり、B列にも10個のデータがあります。 シート2にA列の1行目と5行目のデータをA1、B1にリンク貼り付けをしました。 シート3に先ほどのシート2をリンク貼り付けするとA1、B1にA列の1行目と5行目のデータ の結果が出来ました。しかし、シート3ではシート1のB列のA列の1行目と5行目のデータ を貼りたいとおもうのですが、効率のよい方法はありますか? 実際には多数のデータがあり、1つ1つAをBに書き換えるのが面倒で困っています。
>314 検索/置き換えで A を B に全て置き換えじゃダメなの?
316 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 15:25:36
ありがとうございます。無事に出来ました。 AをBに変える際、検索/置き換えを行うとすべてがBに変わるのですが、変えるAも指定できますか? 変えるセルには実際にはいくつかAが入っています。
【1 OSの種類 .】 WindowsXP Pro 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル ""+"" =IF(A1="","",処理1)+IF(A1="","",処理2) で、A1=""のとき、つまり =""+"" となるときエラーがでます A1=""のとき、そのセルは""にしたいのですが、 どのように回避すればよろしいでしょうか?
>>316 リンク貼り付けなら絶対参照になってると思うんで「$A」を「$B」とかにすればいいんでは
>>317 =IF(A1="","",処理1+処理2)じゃだめなの?
320 :
複乳 :2010/11/04(木) 17:28:24
>>317 =sum(IF(A1="","",処理1),IF(A1="","",処理2))
sumだと文字列を無視して計算してくれる
321 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 20:42:20
質問です。 コピペで形式を選んで貼り付けってありますけど 僕はほとんど値のみしかコピペしません。 毎回値を選んでってやらないでそのままコピペ一回で出来るものでしょうか?
322 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 23:14:24
超弩級初心者ですがよろしくお願いいたします 【1 OSの種類 .】 WindowsXPHOME 【2 Excelのバージョン 】 Excel2007 下記のような自動処理をしたいのですが良い方法はありますか? A B C ─┼─┼─┼─ 1.│aa│bb│cc ←この各ABC3つのフィールドにそれぞれ入っている文字aa、bb、ccを 〜〜〜〜〜〜〜〜 Aの一つのフィールドの自動処理でaabbccと移動したいのですが、どうやりますか? ↑以下縦方向に無数に続きます。 なにとぞよろしくお願いいたします。
323 :
名無しさん@そうだ選挙にいこう :2010/11/04(木) 23:16:14
>>322 >Aの一つのフィールドの自動処理でaabbccと移動したい
フィールドではなくセルと言うのでしたね。
ようするに三つのセルのデータを、一つのセルにまとめたい、ということなのです。
324 :
複乳 :2010/11/04(木) 23:38:16
>>321 エクセル ショートカット 値で貼付け 辺りでぐぐれ
>>323 D1=a1&b1&c1
cankatanateみたいな名前の関数でも可能。CONCATENATEだった
325 :
323 :2010/11/04(木) 23:44:44
>>324 こんな夜更けにありがとうございます!
やってみます
326 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 01:13:02
【1 OSの種類 .】 Windows7 HP 32bit 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセルグラフアクティブ化 エクセルのグラフをクリックしてもアクティブにならなく なってしまいました。但し、右クリックではアクティブに なります。 同じシートの中の幾つかのグラフの中で、一つだけ上記の 様な状態になってしまいました。 お願い致します。
右クリックでアクティブになるんなら右クリックすればいいんじゃ・・・? 何をお願いしますなのかわかんね またエスパーか うぜえな
328 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 05:06:36
>>326 オブジェクトの選択と表示で、図形か何かが重なってないか調べる
【 Excelのバージョン 】 Excel 2010 実値が入力されているセルと数式が入力させているセルが混合している列があるとして、 数式のセルだけフォントの色を変えるにはどうすれば良いのでしょうか?
331 :
複乳 :2010/11/05(金) 16:48:55
>>330 VBAを使って一文字目が"+"か"="を判定してフォントの色を変える
333 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 20:49:37
ctrl+cでコピーして違うシートでctrl+vだと形式を選ばないといけません。 値だけ貼り付けしたいのですがユーザ設定で出来ますでしょうか? ちなみに2007を使っています。
334 :
複乳 :2010/11/05(金) 21:04:03
>>333 値で貼付け ショートカットでぐぐれといいたいが昨日ぐらいにそんな質問があったと思う
質問です。 質問A 質問B 質問C 山田 2 ・・・・・ 1・・・・・ 4 木村 3・・・・・ 4 ・・・・・・7 吉野・・・・ 5・・・・・ 3 ・・・・・ 2 例えば質問が3つあって答えが7種類あるとします。 2-1-4とかどの組み合わせが一番多いかってのをやりたいのですが どのようにすればいいでしょうか? オートフィルだと手間がかかるのでどうすればと。 アンケートに答えている人は例で3人挙げましたが30人ぐらいいます。
>>335 回答を文字列として連結してからピボットテーブル
てゆーか 30人くらいなら手でやれよ
337 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 22:32:17
30人程度で選択肢7つx3組の組み合わせ順位なんて 多いも少ないもないだろ、何を出したいのか知らんが優位解は得られん つーか統計を勉強し直せよ
有意解、だろ?
339 :
名無しさん@そうだ選挙にいこう :2010/11/05(金) 23:33:07
いや意図的に「優位差を持つ解」を字短した つか内容の本筋は伝わるだろ… 質問主のささやかな反撃なのか?
341 :
名無しさん@そうだ選挙にいこう :2010/11/06(土) 00:56:47
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 OR関数、引数、多過ぎる 突然失礼します。IF関数およびOR関数に関して質問させてください。 Iという文字列がどのグループに属しているのかを表す式を作ろうとしています。 グループはABCの3つ、それぞれのグループには20個程度の文字列が入っています。 この場合、式を =IF(OR(I=α1,I=α2,・・・),A,IF(OR(I=β1,I=β2,・・・),B,IF(OR(I=γ1,I=γ2,・・・),C,))) としているのですが、各OR関数における論理式を20回書くのではなく、もっと簡単に表示したいと考えています。 しかし、OR(I=α1:α20)のような書き方にしても当然成立するわけもなく、悩んでいます。 このような場合にどう修正すれば良いのか教えていただけないでしょうか? ちなみに、α1〜α20、β1〜β20といった文字列は各グループ毎に同行内も隣接するよう配置しております。 宜しくお願いいたします。 長々と申し訳ありません。
>>341 α等が表になってるなら
=IF(ISNA(MATCH(x,α1:α20,0)),IF・・・,A)
とか
343 :
名無しさん@そうだ選挙にいこう :2010/11/06(土) 01:39:15
>>342 ありがとうございます。
ISNAやMATCHを調べていて時間がかかってしまいました。
上記のように書いてみたのですが、多過ぎる引数が入力されていますとなってしまいました。
こうなると分けて書いたりするしかないんでしょうか?
現在書き込んでいる式も載せておきます。
=IF(ISNA(MATCH(B27,$G$19:$AF$19)),IF(ISNA(MATCH(B27,$G$20:$V$20)),IF(ISNA(MATCH(B27,$G$21:$S$21),"分類に含まれず",$F$21),$F$20),$F$19)
>>343 閉じカッコが一つ足りてない
〜IF(ISNA(MATCH(B27,$G$21:$S$21)),"分類〜
↑
ここ
345 :
名無しさん@そうだ選挙にいこう :2010/11/06(土) 02:53:31
>>343 ありがとうございます。
初歩的なミスで申し訳ないです。
()部分を修正した上記の式の後に、全match関数内部に照合の種類を記入したところ、希望の結果が得られました。
アドバイスしていただいた方々、本当にありがとうございました。
346 :
複乳 :2010/11/06(土) 03:05:20
>>335 E列に作業列を発生させるとして
E1=B1&C1&D1
F1=COUNTIF(E:E,E1)
でG列にLANK関数とか。
アンケートならアンケートサイトがあるから(↓は一例。ぐぐればいっぱいあるとおもう)それ利用したほうがいいかもねぇ
ttp://enq-maker.com/ >>337 30人程度と言っているが多くなるかも知れないし、統計の現れやすい質問かも知れない。
例文だけで無下に否定するのはよろしくないかと
347 :
複乳 :2010/11/06(土) 03:08:10
しかし2chって相手を否定するの好きだけど、なにかあるの
何もないよ だからだよ
349 :
複乳 :2010/11/06(土) 12:21:45
あ、なるほど。ありがとうございました。
350 :
346 :2010/11/06(土) 20:27:18
>>346 ありがとうございます。
確かに例で30人投げただけで多いと80人ぐらいになるので助かりました。
LANK関数ってなにを返すんだ
lank 【形容詞】 1 やせた; ひょろ長い. 2 〈頭髪が〉(縮れていないで) 長く柔らかい.
>>351 Rank関数ならようするに「ランキング順位を示す数値」を返す。
ヘルプ見た? 載ってるサンプル動かしてもわかんないのか?
例えば1,5,2,80,0のセルがあるとき、5って値は大きい順で(あるいは小さい順で)何番目かを返す。
この場合答えは2(あるいは3)という数値を返す。
普通この関数を使う時は第1引数も第2引数もセル参照を使うと思うけどな。
LANK関数は…なんだろうな、一番長い文字列でも返すのかな?w
354 :
複乳 :2010/11/07(日) 00:12:29
>>351 ごめんなさい。英語苦手なんです。実はしょっちゅうNAME?ってエクセルさんに言われる
でもLARGE関数みたいなのもあるよね
356 :
名無しさん@そうだ選挙にいこう :2010/11/07(日) 09:24:06
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 2つシートがあり、データ用と出力用という名前にしています。 VBAでデータ用から位置を読み込み、出力用にテキストボックスを作りたいのですが、 OvalクラスのHorizontalAlignmentプロパティを設定できません。とエラーが出ます。 Selectせずにテキストボックスを扱うにはどうしたらいいでしょうか? Worksheets("データ用").Shapes.AddTextbox(msoTextOrientationHorizontal, 左端, 上端, _ 52, 20).Select With Selection .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .ReadingOrder = xlContext .Orientation = xlHorizontal .AutoSize = False .AddIndent = False End With Selection.Characters.Text = "aaaaaa" With Selection.Characters(Start:=1, Length:=6).Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 9 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With
>>356 そのままコピペしたら、
.AutoSize = False
のところでエラーが出たからコメントアウトしたら動いたよ
そもそも、Ovalクラス使ってないじゃん
関係ない部分のソース貼ってない?
358 :
複乳 :2010/11/07(日) 12:46:09
>>356 addした時にnameを取得しておき、textframeやCharactersというプロパティから.HorizontalAlignmentを扱う
プロパティ一覧はF2のオブジェクトブラウザで探せる。俺も今知った。
あとOrientationとAddIndentをコメントアウトしてるのはエラーが出るため。理由は知らん
っていうかー素直にselectしたほうが早いと思うんだよねー
別シートのオブジェクトでselectできないときは、先にsheetをselectしておくよできるよ
Sub a()
b = Worksheets(2).Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 50, _
52, 20).Name
With Worksheets(2).Shapes(b).TextFrame
.Characters.Text = "ccbbbbaaa"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ReadingOrder = xlContext
'.Orientation = xlHorizontal
.AutoSize = False
'.AddIndent = False
End With
With Worksheets(2).Shapes(b).TextFrame.Characters.Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
.Size = 12
End With
End Sub
359 :
356 :2010/11/07(日) 21:39:06
うまく動きました。 先にsheetをselectするって方法が有るなんて思いつきませんでした。 アドバイス有難うございました。
selectなしでもできんがな Sub test() With Sheets(2).Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 50, 52, 20) With .TextFrame .Characters.Text = "ccbbbbaaa" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .ReadingOrder = xlContext '.Orientation = xlHorizontal .AutoSize = False '.AddIndent = False With .Characters.Font .Name = "MS Pゴシック" .FontStyle = "標準" .Size = 12 End With End With End With End Sub
361 :
複乳 :2010/11/08(月) 01:01:00
ああそうか、そうすれば良かったんだ
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 検索キーワードをどうしたらよいか… 条件付きで数字(お金)の合計をしたいと考えています。 家計簿を付けていて、支出のうち 風俗代がいくらか把握したいと思っています セルは下記のようにつくっています。 A列 B列 C列 日付 金額 風俗に行った場合 1を記入しています … … 1 … … … … ここでB列の一番下に 支出全合計 はSUM関数で合計しています 新たに支出合計のセルのしたに 風俗代のみ合計したいと考えています。 何かの関数の組み合わせで(VBAを使用しないで)、希望通りのことはできますか?(VBAならできると思います) (D列を作って B列×C列にして 合計すればイイじゃんて言われそうですがかっこよくつくりたく) どの関数を使えばできるか見当もつかないため、達人のみなさま助言をお願いします。 よろしくお願いします。
図が分かりにくいので追加します すいません A列 B列 C列 1 日付 金額 風俗に行った場合 1を記入しています 2 … … 1 3 … … (空欄) 4 … … (空欄) 20 … … 21 (合計) 22 (風俗代のみ合計)
>>364 ありがとうございます
こんな関数あったんだあああああああああああ _| ̄|○
366 :
複乳 :2010/11/08(月) 21:34:34
A列の下に出せば =sumif(c:c,1,b:b)みたいに作れて挿入・削除の影響ウケなくて便利よ B列だと循環してしまう
367 :
名無しさん@そうだ選挙にいこう :2010/11/09(火) 01:38:04
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい(でも出来る限り使いたくない) 【4 VBAでの回答の可否】 可 (他に方法があればよりよいです) 【5 検索キーワード 】 検索キーワードをどうしたらよいか… あるセルを、隣のセル値を参照して、網掛パターンを替えることは出来ませんか? 例えば、A1セルに「1」と入力したら、A2セルの文字が網掛表示されるような・・・ 同じセルなら「条件付書式」で出来ることを、違うセルを参照して出来ないか、ということです。 よろしくお願いします。
368 :
複乳 :2010/11/09(火) 02:14:18
369 :
名無しさん@そうだ選挙にいこう :2010/11/09(火) 22:21:17
>>368 出来ました!ありがとうございました!!感謝です。
>>367 それはちょっと分からない方が不思議だろw
2010ですが、横軸の第二軸を設定する方法ってないですか?
372 :
371 :2010/11/10(水) 18:18:14
自己解決しました。 2本目のグラフを第2軸に設定すると、リボンの グラフツール→レイアウト→軸 に第2縦軸と第2横軸が現れるんですね。 グラフの右クリックからの書式設定ばかり見ていたので見落としていました。 ただグラフが1本しかない場合は第2軸がそもそも設定できないので、同じグラフを追加して 線やマークをオフにしたりして非表示にする、などの手間が必要ですね。
373 :
名無しさん@そうだ選挙にいこう :2010/11/10(水) 22:50:25
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル書類を作成するのですが、「必ずマクロ機能を有効にすること」という 注意書きがあります。 「マクロ機能を有効にする」にはどういう手順を踏めばよいのでしょうか。 ご教示をお願いいたします
>>373 その書類はあらかじめ先方から渡された書類?
1 xp sp3 2 2003 3 いいえ 4 否 5 エクセル パスワード 再入力 開き直し パスワードが設定されたエクセルファイルを開く時に パスワード入力に失敗すると、再度ファイルをダブルクリックして開き直さないといけないのが、非常に面倒です ショートカットキーなどを利用して パス失敗からパス再入力までの間にあるファイルオープン手順を簡略化できないてでしょうか よろしくお願いします
パスワード間違えなけりゃ済むこと それともなにか悪さでも?
>>373 あらゆる場面でマクロを無効にしなければよい。
>>375 無理
ゆっくり間違えないように入れれば結果的に時間の節約になる
>>373 ブックを開く時に「マクロを有効にしますか」って聞かれるから「有効にする」を選択しろって意味?
「信頼できる場所」に作業フォルダを登録しておけばいちいち聞いてこなくなるよ
セキュリティレベルを落とすのはおすすめできない
そういう意味じゃないのかな?
【1 OSの種類 .】 Windows 7
【2 Excelのバージョン 】 Excel 2010
【3 VBAが使えるか .】 少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Webクエリ 2010 すべて更新
Excel 2007で、Webクエリを利用して、「すべて更新」により、
50個ぐらいの株価データをまとめて入手していました。
先日Excel 2010にしましたが、その後、「すべて更新」を使用すると、
http://www.*****を開くことができません 。
インターネット サイトには接続できましたが、データを取得できません。
http://www.*****を開くことができません 。
このインターネット サイトへの接続に割り当てられた時間を超過しました。
と表示され、更新が出来ません。
個々のクエリで更新を行うと、更新が無事に行われます。
Excel 2010で処理の仕方が変わって、同時接続数に上限ができたり、
メモリが不足するようになってしまったのでしょうか?
(ブック自体は非常に重たいものです。)
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ 実行時 再計算 無効 下記のようにマクロ実行時にシート(ブック)内の関数の自動計算を無効・停止にするにはどうしたらよいでしょうか? マクロ開始→再計算停止→マクロ→再計算開始→マクロ終了
382 :
名無しさん@そうだ選挙にいこう :2010/11/11(木) 18:42:17
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】限りなく初心者 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA オートフィルタ 動的配列 変数 Function プロシージャ 戻り値 などなど。。。 毎月 数が増減する3つのコード @事務署コード Aチームコード B個人コード この3つのコード毎に月の成績を集計して 名前・成績・事務署名・人数を別シートに出力したいのですが どのような順序で作ればいいのでしょうか? また、できるならば3つのコードをFunction内の動的配列などに格納して 別のプロシージャでも使用できるようにしたいです よろしくお願いします。
>>381 自動再計算の停止
Application.Calculation = xlManual
↓
処理
↓
自動再計算の再開
Application.Calculation = xlAutomatic
こんなんでいいかな?
385 :
382 :2010/11/11(木) 21:12:47
386 :
383 :2010/11/11(木) 23:19:09
>382,385 Calcのファイル、ダウンロードしました。(シートは3枚ですね) 列位置がこのままであれば、直接VBAマクロを提示できると思いますが、いくつか質問を。 Q1 社員名簿テーブルのJ列以降の数値は「成績」ですね? Q2 横方向はどんどん伸びていくのですか? Q3 事務所成績、チーム成績のシートの「目標」の数値は社員名簿テーブルにはないから、処理対象外とみなしていいですね? Q4 事務所とチームには包含関係がありますか?(ひとつのチームコードが複数の事務所に存在することはないか?ということです) Q5 Q4に関して包含関係がある(ひとつのチームコードが複数の事務所に存在することはない)という前提で、マクロの実行時に 社員名簿テーブルを KEY1:事務所コード、KEY2:チームコードでソートしますが、もともとのデータの並びを復元する 必要がありますか? Q6 退社日の欄がある、ということは、事務所やチーム毎の人数の集計から引くんですか? とりあえず、今日はこれだけおたずねします。
>>384 ありがとうございます
明日試してみますね
388 :
382 :2010/11/12(金) 07:27:39
>>386 A1 J列は成績です。
A2 即答できなくて申し訳ありません。後で確認いたします。
A3 別ブックから引用となるのですが、シートコピーで同じブックに追加しています。いまさらですが追加してもよろしいでしょうか?
A4 別の事務所に同じチームコードは存在しません、包含関係があります。
A5 社員名簿テーブル自体がほぼ使い捨てのような感じなので、復元する必要はありません。
A6 すいません。出力シートに書き忘れがありました。月合計を人数で割り、一人当たりの生産量を計算するのに使います。
出来るだけ。本物に近いものを本日用意させていただきますのでご了承ください。
ありがとうございます。
また、改めてよろしくお願いします。
A2セルの内容をB1セルに表示させるというのを下方向へ ずっとやりたいのですができますか? ずっと表示というのはセルに書き込んだらA2以下下方向に その内容が表示されるということです。
>>389 B1 =A2
その後B1セル角の黒十字を下へクリックしながら引っ張るとたとえば、B2→=A3,
B3→=A4と式が入ります。
>>390 B1=A2で値は入りましたがそれ以後の動作で同じ数値がはいってしまします。
>382,388 >本物に近いものを本日用意 アプロダにupするときは、組織や個人情報が含まれてないか、くれぐれも注意してください。 シートなど 直接目に見えるもの だけが情報ではありません。メニューのファイル−プロパティで 作成者の情報(個人名やID)などがわかります。くれぐれも仕事で使っているブックそのものを upすることはやめてください。 できれば>385のように組織とは全く関係ないCalcの方に架空のデータで作るのが安全です。 私が最初に画面ハードコピーで、と伝えたのはそういう理由からです。
>>391 ごめん説明足らなかった。
引っ張った後、右下のちっちゃい四角いのをクリックしてオプションを開いて
連続〜というのをクリックすれば出来ます。
>>389 もしかしてA2の内容をB1以降にも入れたいのか?
だとすれば
B1に =A$2
と入れて
>>390 の作業をすればoK。
ちょっと説明がわるかったです。 A2に1という数字を入れたらB1に1という数字が表示される。 A3に2という数字を入れたらB2に2という数字が表示されると いうことができたらと思ってます。
>>395 まずB1に「=A2」と入れてEnterを押す
もういちどB1をクリックする
B1セルが黒い太枠で囲まれた状態になるけど、その枠の右下の角に黒い小さな四角がある
その小さい四角にマウスを合わせると細い十字に変わる
変わった状態で左ボタンを押す
押したままマウスを下に動かす
てきとうなところでボタンから指を放す
これで完成
右下の黒い小さな四角の名前は「フィルハンドル」
これを使って内容をコピーする動作を「オートフィル」と言う
ボタンを押したままマウスを動かすことを「ドラッグ」と言う
あ、バージョンによっては初期状態でフィルハンドルが出てないんだっけ
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 初心者です 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 数式 削除 現在、報告書の各項目に「No」の表記を付け作成しています NOには「=(1つ前のセル位置)+1」の数式を使用しています 全ての項目が埋まっている場合は問題が無いのですが 諸事情により途中「歯抜け状態」になる場合が発生し 「NO」の表記(数式)ごと削除を行うのですが 削除を行った際に次の項目の「No」の数式が参照する「1つ前のセル位置」に 数値が入っていないため、毎回次のセルに適正な数値を手打ちしています 123456789を5を削除した場合 1234 6789となり、6を毎回5に打ち変え 1234 5678としています 5を削除した際に自動で6のセルが5の位置ではなく4の位置を参照するようにする方法を 教えていただきたいのですが どなたかよろしくお願いします
>>398 ちょっと違うけどNoがA列として
A1=1
A2=MAX($A$1:A1)+1
とかどう?
>>399 回答ありがとうございます
早速試したところ、上手く行ったのですが
同じシート状では問題ないのですが
シートを変更した場合に前シートの数値を引き継ぐ事が上手くできないようです
シートの変更が発生した場合は別の数式になるのでしょうか?
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 散布図のグラフを描いていて 横軸の目盛を、0、100、300、500・・・ としたいのですが何かいい方法はありますか?
403 :
382 :2010/11/12(金) 18:41:54
>383 申し訳ない。 急務により、今日中にはUPできそうにありません。 明日以降にUPいたしますので、ご了承ください。 尚、色々と相談にのっていただきまして、大変感謝しております。
>392,403 ぼちぼちでいいですよ。こっちも全力で対応できるわけじゃないので。 >385の内容で検討は始めてます。 それより、>392も見ておいてくださいね。
>>389 何を言ってるのかわからない、だけど出来るだろう。
とりあえずB1セルに「=A2」と書き、そのセルを下方向にフィルしてみ。
やりたい事はこれで実現できてるか?
これじゃない!と思ったらどう違うのか説明してみ。
>>402 お役に立てて何よりです。
ただ上記の回答は正確ではないので訂正します。
本来は「再計算の停止(再開)」という意味ではなく、
「再計算を手動(自動)にする」というものです。
詳しくは "application.calculation" でググってみて下さい。
407 :
名無しさん@そうだ選挙にいこう :2010/11/13(土) 01:28:46
WindowsXpSP3、Excel2003です。 コマンドバーの印刷ボタンをクリックするとユーザーフォームが表示されて、 フォーム上に[印刷する][印刷しない]の2つのボタンがあって、 [印刷する]をクリックしたら印刷し、[印刷しない]をクリックしたらジョブキャンセルしたいのですが、 どうすればいいでしょうか? Workbook_BeforePrintに書けば、印刷ボタンクリックでフォームは表示できますが、 これだとフォーム表示と同時にそのまま印刷も走ってしまいますよね。 [印刷する][印刷しない]のいずれかがクリックされるまで印刷を待機させたいんです・・・。 何か方法はありますでしょうか? よろしくお願いいたします。
??407 俺の場合、印刷プレビューを使ってワンクッションおいているが。
>>407 Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim dlgAnswer
dlgAnswer = MsgBox("しちゃう?", vbYesNo, "たずねる")
If dlgAnswer <> vbYes Then
Cancel = True
End If
End Sub
こんな感じにしても印刷まで行っちゃうの?
410 :
名無しさん@そうだ選挙にいこう :2010/11/13(土) 07:15:34
オフィス2000で 方眼紙を作りたいのですが、升目をクリックして青の点線の方眼を作りたいのですが 方法ないですか?
412 :
名無しさん@そうだ選挙にいこう :2010/11/13(土) 07:48:15
>>411 罫線を引くのはやはり、フリーで一本1本ってことでしょうか?
セルの罫線? 記号でクリックしたら一度に範囲全部引けるやつは
無理でしょうか?
サイトの画面の右下 左3番目に見えるやつです。
>>410 Officeのサイト行って方眼目のテンプレートをダウンロード。
414 :
410 :2010/11/13(土) 08:18:51
うぉーーーー 一本1本引いたら きれいなブルーじゃねぇ
Word使ったほうがいいんじゃね
416 :
410 :2010/11/13(土) 08:46:29
クリックでひけるなら教えろ
418 :
410 :2010/11/13(土) 09:29:11
>>417 そこは、VBAが難しそうだし、ダウンロードできないからだろ。
今、2本ずつ引いてるとこ。
419 :
410 :2010/11/13(土) 09:30:04
おぉおおおぉぉおー 今度は、プリンタの青がでねぇ 。
410が何をしているのか分からない・・・セルを四角にして罫線じゃだめなのか??? クリックでひけるなら????
たぶんオートシェイプとかのアイコンワンクリックで、みたいなことだろうな
Excelは作図ソフトじゃねえっつーの
424 :
410 :2010/11/13(土) 10:55:40
>>423 ありがとう。
でもダウンした、画面が小さいまま でかくなんねぇ。
425 :
410 :2010/11/13(土) 11:00:46
>>420 そうなんだけど。
普通に学校でかっこよく5mm方眼がほしいだけだけど。、、、薄い青で
↑
今、ココ
>>425 セルに罫線引くのが現実的
セルの大きさはmm単位で指定できないんでテスト印刷して自分で合わせれ
色もプリンタによって違うからテスト印刷で
427 :
410 :2010/11/13(土) 11:18:32
ヤレヤレ… . ∧__,,∧ ( -ω-) . /ヽ○==○ / || | ■ Excel総合相談所 94 し' ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_)) ̄(_))
こっちがヤレヤレだぜ
Excelはプリンターによって微妙に印刷結果が異なるし、厳密に5mm方眼は難しい。 っぽいのならいくらでも作れるけど
>オフィス2000で >方眼紙を作りたいのですが そもそもここで聞くのが間違い。 wordスレへ行け。 という回答が正解なんだろうな。
>410,425 5ミリピッチで とか 青色い点線 とかなら、Jw_Cadなどの作図ソフトが最適では?
432 :
複乳 :2010/11/13(土) 12:21:57
433 :
410 :2010/11/13(土) 12:41:38
>>432 PDFダウンした。仕事はえぇな。
格子クリックで色が変えられたら最高なのに
お茶の出前ドゾ
~旦
~旦旦
∧_∧~旦旦旦
(*・∀・)ノ
( ο┳
◎-J┻◎
ワードの過疎ぶりに納得。
>>422 excelってお絵かきとゲーム以外何が出来るんだ?
>>434 整数の計算(`・ω・´) ただし、数がいっぱいになるとちょっと苦手(´・ω・`)
436 :
410 :2010/11/13(土) 18:45:21
>>436 意味不明な逆ギレは恥ずかしいぞ。もうやめとけ。
【1 OSの種類 .】 Windows VISTA
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 カウント・統計・種類別
http://loda.jp/0tm/?id=26 A列にあるIPアドレスの種類をC列のように分別し、それぞれいくつあるのかをD列のように示す。
URLにあるcsvはアドレス数が少ないので手作業で種類と個数を数えましたが、大量のアドレス数になると厳しいので、エクセルで解決できればうれしいです。
よろしくお願いします。
>>438 こういう場合はピボットテーブルが最強。ピボットテーブルで検索してみ。
慣れれば30秒も経たずに集計できる
440 :
名無しさん@そうだ選挙にいこう :2010/11/13(土) 20:36:59
質問です。 2007使っています。 マクロでa5にカーソルがあってマクロ作業してカーソルがa6に最後に行くようにすればどうすればいいですか? 例えばs7にカーソルがあったらs8に最後移動するようにしたいです。
>>440 Selection.Offset(1, 0).Select
>>441 上手く行きました。ありがとうございました。
>>439 即答ありがとうございます。
便利すぎワロタw
>>444 いや、印刷なめんな。それはみんな分かって言ってる
おまえの cmは ほんものか?
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】excel グラフ 質問です 上から1月から12月と言う順番に表に書いたのに グラフにすると12月から上になります 表を変えずにグラフの順番も1月からにする方法って無いですか
右クリック
軸の書式設定
目盛
軸の反転
452 :
複乳 :2010/11/14(日) 21:03:44
全国の複乳ファンの皆様こんにちは。ニセモノの複乳です。 さいきんずっと自宅PCからはアクセス制限で書き込めない状態が続いています(いま外から)。 / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
454 :
407 :2010/11/15(月) 08:53:19
>>408-409 お礼が遅れました。ありがとうございます。
>印刷プレビュー
職場で使っているブックなんですが、特にコマンドバーは隠しておらず
スタッフは皆、普通にコマンドバーの「印刷」ボタンをクリックする習慣があるので、
印刷プレビューでワンクッション置くのは難しい状況なんです。
>MsgBox
Msgboxだとキャンセルできるんですね。フォームでは厳しいでしょうか?
というのは、書き込むにあたりちょっと簡潔にし過ぎてしまったのですが、
正しくは、まずコマンドバーの「印刷」ボタンをクリックするとフォームが表示され、
フォーム上のリンゴ・みかん・バナナなど果物を選択するコンボボックスで
「バナナ」を選択した場合だけ印刷、それ以外のときは印刷キャンセル、
という流れなんです。
このような処理は可能でしょうか?
(無理ならもう Application.CommandBars("○○○").Visible = False
でバーごと消そうかと考えております。)
>>454 ツールバーはかなり自由に編集できるから、
「印刷」ボタンの実態を「印刷プレビュー」に変更してしまうという手もある
>>454 UserForm1.Show vbModeless
とかフォームを待たないように書いてない?
457 :
454 :2010/11/15(月) 12:46:36
>>455-456 ありがとうございます。「vbModal」にしたらうまくいきました。
フォーム表示より先に印刷が走っているような見た目だったんで、
「vbModeless」か「vbModal」かは関係無いと思い込んでましたが、
単にフォームの表示に時間が掛かって
処理の軽い印刷ダイアログの方が先に表示されてたんですね。
お騒がせしました。どうもありがとうございました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2007 for 文で i が特定の値の場合飛ばすにはどうしたらいいでしょうか。 28-50 106-115 119-141 ・・・ という風にランダムです。 if で一つ一つ飛ばすしかないんですかね?
>458 こんな感じではどうですか? 配列 = array(28,50,106,115,119,141・・・・・) i_max = UBound(配列) i = 0 Do For j = 配列(i) To 配列(i+1) 処理 Next j i = i + 2 Loop While (i < i_max)
461 :
459 :2010/11/15(月) 19:34:19
>459 のjとiを入れ替えてください>458 範囲の組み合わせが多いときは、シートに2次元の表にして、2次元の配列に読み込むといいかも。 >460 範囲の組み合わせが少ないときは便利ですね
>>458 Select Case i
Case 28 To 50
処理
Case 106 To 115
処理
Case 119 To 141
処理
End Select
とか
Select Case i
Case Is (28 < i) And (i < 50) Or (106 < i) And (i < 115) Or (119 < i) And (i < 141)
処理
End Select
とか
まあ後者だとIf文でも変わらんけどな
464 :
383 :2010/11/16(火) 23:52:39
>382,385,388,403 へ連絡です。 >385用のは、ほぼできました。必要ならVBAマクロのソースなどupできます。集計用とは別にシートを1枚追加する必要はあります。
465 :
名無しさん@そうだ選挙にいこう :2010/11/18(木) 00:03:04
【1 OSの種類 】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか 】 いいえ 【4 VBAでの回答の可否 】 可 A列、B列、C列に入力されている文字をD列にまとめたいのですが、 たとえば A列 B列 C列 エクセル ワード パワーポイント のように入力されていて、D列に、=A1&B1&C1と式を入れると エクセルワードパワーポイントのように区切りがなくまとまってしまいますよね?? そうではなく、D列にはエクセル,ワード,パワーポイントのように区切りをいれてまとめたいです。 でも、ABCのすべての列に入力があるわけではなく、 A列だけ入力されていたりの場合もあるので、区切りがつねに入るようにしておくと A列だけの入力をDに何らかの式で反映させると、エクセル,という風になってしまいます。 複数の入力があるばあいだけ点をいれて区切る、ひとつだけの場合は 点が入らずそのままD列に入力が落ちるというふうにしたいのですが どうすればいいでしょうか??説明が下手ですいません。
>>465 一発でやる方法はない
長〜い式を書くしかない
あるいはマクロ
>>465 =IF(A1="",IF(B1="",IF(C1="","",C1),IF(C1="",B1,B1&","&C1)),IF(B1="",IF(C1="",A1,A1&","&C1),IF(C1="",A1&","&B1,A1&","&B1&","&C1)))
>>465 =CHOOSE((A1="")+(B1="")*2+(C1="")*4+1,A1&","&B1&","&C1,B1&","&C1,A1&","&C1,C1,A1&","&B1,B1,A1,"")
>>465 =SUBSTITUTE(TRIM(A1&" "&B1&" "&C1)," ",",")
>>467 >>468 わ〜!すごい!!できました!!!
本当にありがとうございます!聞いて良かった!!!
>>469 おおっっ!これもできた!
いろいろあるんですね!ありがとうございます!
472 :
名無しさん@そうだ選挙にいこう :2010/11/18(木) 14:47:30
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 ._________ 143.1+√(143.1^2)-4×793.4 ──────────── 2 excelで上の式を計算使用として、セルに =(143.1+(143.1^2-4*793.4)^1/2)/2 と入力したら、答えが4397になりました。 137が本当の答えで、上の式は間違っていることになりますが どこが違うのか分りません。 ._________ 143.1+√(143.1^2)-4×793.4 ──────────── 2 を解くのに =(143.1+(143.1^2-4*793.4)^1/2)/2 はどこが間違っているのか、教えてください
=(143.1+(143.1^2-4*793.4)^(1/2))/2 かな?
>>472 「)^1/2」の部分で「^」の方が「/」より演算子の優先順位が高いので
1乗した後で2で割ることになります
475 :
名無しさん@そうだ選挙にいこう :2010/11/18(木) 15:01:55
【1 OSの種類 .】 Windows vista
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ピボッドテーブル 個数 集計 要素別 カウント
http://loda.jp/0tm/?id=36 添付したエクセルには、全データが羅列された「全番号」と、ピボットテーブルで「全番号」にある値の'種類'が若い順に分類された「番号別」という2つのシートがあります。
たとえば『0がいくつあるか』なら、「番号別」のB2に≪=COUNT(番号別!A1:A66673)≫とすれば答え(例では77)は出ますが、番号の要素が多いので一つ一つ
やっていては時間がかかってしまいます。
一度にすべての要素別の数を計算し、「番号別」のB列に数を表示する方法はないでしょうか?
お願いします。
>>476 0がいくつあるか・・・でcountを使うの? 意味が分からない。
countじゃなくてcountifでしょ。
なんでピボットテーブルでいっぺんに出さないのか疑問は尽きないけど、
b2に
=COUNTIF(全番号!A:A,A2)
下にオートフィル
意味を取り違えている可能性大だけど、質問が意味不明すぎる
479 :
名無しさん@そうだ選挙にいこう :2010/11/18(木) 22:24:57
質問です。2007を使用しています。 物質の粒子径の範囲にある個数を調べています。 とりあえずFREQUENCYを使っているのですが、区間配列(例:200μm〜210μm・・・)の 指定がよくわかりません。 よろしくお願いします。
480 :
名無しさん@そうだ選挙にいこう :2010/11/18(木) 22:28:23
すみません
>>479 です。テンプレ忘れてました
【1 OSの種類 .】 Windows vista
【2 Excelのバージョン 】 Excel 2007
物質の粒子径の範囲にある個数を調べています。
とりあえずFREQUENCYを使っているのですが、区間配列(例:200μm〜210μm・・・)の
指定がよくわかりません。
よろしくお願いします。
482 :
名無しさん@そうだ選挙にいこう :2010/11/18(木) 22:37:29
>>481 ありがとうございます。恐縮なんですが粒子径は小数点がダァーっと続くんです。
この場合はどうすればいいですかね。
>>477-478 詳細な回答ありがとうございました。初めに行った77という結果は間違っていたみたいです。
失礼しました。
484 :
名無しさん@そうだ選挙にいこう :2010/11/19(金) 08:48:06
Excel 2011 Mac OS10.6.5です。 以前使っていたファイルを開くと一部の数式が文字列扱いになっていました。 具体的には "=C8"がそのまま表示されるなどです。 セルの書式は標準ですので問題なく、またそこで見えるプレビューは正しく参照されています。 何か設定がおかしいと思うのですが、どうすればよいのでしょうか? よろしくお願いします。
全番号は1434以外のデータはないんだが? いずれにしてもCOUNTIFはいくらなんでもないな。 普通はピボットだよな。 要素に幅があるならピボットのグループ化か関数でやるならFREQUENCYだろ? どっちにしてもCOUNTIFはない。
>>484 詳細設定で「計算結果の代わりに数式をセルに表示する」になってない?
487 :
名無しさん@そうだ選挙にいこう :2010/11/19(金) 16:15:39
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Exce2007l 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 縦一列 自動 改行 エクセル プリントアウト A1〜A30000までデータが入力されています。 このデータ全てをプリントアウトしなければいけないのですがそのままプリントアウトすると一枚の用紙にA1〜A50までしかプリントされません。 そこで A51〜A100のデータをC1〜C50へ A101〜A150のデータをE1〜E50へ A151〜A200のデータをG1〜G50へ ・ ・ ・ と自動で移動させて少ない枚数でのプリントアウトにしたのですが何か良いては無いでしょうか?
488 :
複乳 :2010/11/19(金) 18:00:38
>>487 c1=INDIRECT("r"&(COLUMN()-1)/2*50+ROW()&"c1",0)
テキトーにオートフィル
489 :
複乳 :2010/11/19(金) 18:18:52
490 :
487 :2010/11/19(金) 18:56:43
>>488 ありがとうございます。
本当はもう少し複雑だったのですがただ関数さえわかればあとは応用でなんとかできるだろ。と思ってたらアホすぎて結局わかりませんでした。
今回は横着せずにきちんと書きます。
A1〜A30000 B1〜B30000 C1〜C30000 D1〜D30000 までデータが入ってます。
A51〜A100のデータをF1〜F50へ
A101〜A150のデータをK1〜K50へ
・
・
B51〜B100のデータをG1〜G50へ
B101〜B150のデータをL1〜L50へ
・
・
C51〜C100のデータをH1〜H50へ
C101〜C150のデータをM1〜M50へ
・
・
D51〜C100のデータをI1〜I50へ
D101〜150のデータをN1〜N50へ
・
・
といった感じにしたいのです。
何度も質問してすいません。
よろしくお願いします。
491 :
複乳 :2010/11/19(金) 19:37:34
>>490 えー
F1=INDIRECT("r"&INT(COLUMN()/5)*50+ROW()&"c"&MOD(COLUMN(),5),0)
492 :
名無しさん@そうだ選挙にいこう :2010/11/19(金) 19:47:01
グーグル検索 ↓ 念のためうぷ(´・ω・`)まわいが重要 グーグル検索 ↓ やらなくてもやられるし 日本語以外話せないし テレビやネットで説明
>>490 >>488 を元に改変。
F1=INDIRECT("r"&(INT((COLUMN()-COLUMN($F$1))/5)+1)*50+ROW()&"c1",0)
G1=INDIRECT("r"&(INT((COLUMN()-COLUMN($F$1))/5)+1)*50+ROW()&"c2",0)
H1=INDIRECT("r"&(INT((COLUMN()-COLUMN($F$1))/5)+1)*50+ROW()&"c3",0)
I1=INDIRECT("r"&(INT((COLUMN()-COLUMN($F$1))/5)+1)*50+ROW()&"c4",0)
J1は空白。
上記式をそれぞれ書き込んで、F1〜J1まで範囲選択(I1までじゃない)、そのまま横方向に3000列までフィル。
さらにその選択状態から下方向に50行フィル。以上。
>>488 COLUMNやROWって引数なしもアリだったのか。
知らなかった、ありがとー。
うん、こりゃ便利だわw (以前は自セル参照させてた)
494 :
493 :2010/11/19(金) 20:55:35
>>491 すでに遅かった上に式を長くしただけだった、すまんw
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 多少 【4 VBAでの回答の可否】 可 次のような表で、A列に記号、B〜G列に数字が入っています。 A列の記号の中で、いくつか"DC"を含むものと含まないものがあり、 "DC"を含む方へ合算して下段の表のようにしたいです。 (合算後は、DCを含まない方を0に置き換えます) AB-A123DCAA 0 100 200 100 0 100 AB-A123AA 200 200 100 0 100 100 CC-C3456DCCC 0 0 100 200 100 200 DC-B2345BB 0 100 0 0 200 0 CC-C3456CC 100 200 100 0 0 100 AB-A123DCAA 200 300 300 100 100 200 AB-A123AA 0 0 0 0 0 0 CC-C3456DCCC 100 200 200 200 100 300 DC-B2345BB 0 100 0 0 200 0 CC-C3456CC 0 0 0 0 0 0 このとき、対象となる"DC"は、左から8番目以降になっており、 "DC-*"とか"AA-DC*"のように左から7番目までのものは除外します。 今は手作業で"DC"を含むものを検索し、その中から"DC"を削除したものを 再度検索して該当するものがあれば抜き出し、2組を照合させて合算しています。 件数が少ないときは手作業でも良かったものの、ここ最近は500件くらいに 増えてきたので、マクロで処理できればと思い質問させて頂きました。 よろしくお願いします。
497 :
複乳 :2010/11/19(金) 21:31:19
>>495 「8番目以降」にハイフンは含める?含めない?
"AA-AAADC*"だとどっちだろう
498 :
複乳 :2010/11/19(金) 21:33:50
もう一つ質問。ハイフンはかならず入ると思っていいのかな
499 :
複乳 :2010/11/19(金) 21:38:05
あー違った AB-A123DCAA が除外で CC-C3456DCCC はその処理をするって認識でいいのかな
>495 DCを除いたものが一致するデータが1個だけなら、これでどうですか? Dim tate As Long, tate_strt As Long, tate_end As Long, yoko As Integer Dim moji As String, kensaku As String, c As Object Sub excel495() tate_strt = 2 tate_end = Range("A65535").End(xlUp).Row For tate = tate_strt To tate_end moji = Cells(tate, 1).Value If Len(moji) > 8 Then If Mid(moji, 8, Len(moji) - 7) Like "*DC*" Then kensaku = Replace(moji, "DC", "") Set c = Range(Cells(tate_strt, 1), Cells(tate_end, 1)).Find(kensaku) If Not (c Is Nothing) Then For yoko = 2 To 7 Cells(tate, yoko).Value = Cells(tate, yoko).Value + Cells(c.Row, yoko).Value Cells(c.Row, yoko).Value = 0 Next yoko End If End If End If Next tate End Sub DCを除いたものが一致するデータが2個以上のときは対応してません、あしからず
お尋ねします。 Excelの日付のシリアル値にはマイナスはないんでしょうか? 明治32年以前が扱えなくて困ってます。
>501 西暦年(4桁)+月(2桁)+日(2桁)の8桁の数字(数値or文字列)で記録するしかないと思う。 事務用プログラム言語である「コボル(COBOL)」では、表計算みたいな日付データ形式なんてなかった ので、こういう形で日付を扱っていた。というよりも、年を2桁でしか記録してなかったシステムが 多く、「コンピュータの2000年問題」で大騒ぎしたのは、もう一昔前か(遠い目)
>>501 マイナスは使えないし1900年3月1日以前を扱うと1日ずれるぞ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 sheet1印刷範囲のページ1枚目(A1:E35) に型枠があり、sheet2からデータを挿入するというマクロを作りました。 又、ページが1枚では足りない時の為に、あらかじめ型枠をページ1枚目以降にコピーしてあります。 ここで型枠をページ1枚目だけに書いておき、ページが2枚以上になる場合にはその都度型枠を追加していく という風にしたいのですがどうしたらいいでしょうか? ページが増えるタイミングで、ページ1をコピーして追加・挿入した文字等を削除という風にするしかないでしょうか?
>504 あらかじめ多めに「型枠」を作っておいて、印刷範囲を調整する方が簡単だと思う
506 :
504 :2010/11/20(土) 12:09:57
>>505 確かに印刷範囲を調整したほうが簡単ですね
回答ありがとうございました
507 :
500 :2010/11/20(土) 12:40:49
>500は Instr関数がいいかも If Instr(8,moji,"DC") > 7 Then '8は検索開始位置 kensaku = Replace(moji, "DC", "",8,1) '同上(次の1は置換回数 Set c = Range(Cells(tate_strt, 1), Cells(tate_end, 1)).Find(kensaku) If Not (c Is Nothing) Then For yoko = 2 To 7 Cells(tate, yoko).Value = Cells(tate, yoko).Value + Cells(c.Row, yoko).Value Cells(c.Row, yoko).Value = 0 Next yoko End If End If
>>501 Excelの一般機能のシリアル値にはマイナスはない。
VBAのシリアル値なら-657434(100/1/1)〜2958465(9999/12/31)まであるから
VBAを使えば出来る。
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ecxel xyグラフ 3つめの要素 x y z 1 2 1 2 3 4 ..... のようにある表のxyをグラフにして、 zごとに点の色を変えることはできますか? 出来るのなら教えてください。
510 :
495 :2010/11/20(土) 19:50:05
495です。
ご回答いただき、感謝いたします。
500さん=507さんのマクロで集計できました。
>>497 8番目以降にハイフンはありません。
"AA-AAADC*"だと合算の対象です。
>>498 ハイフンは左から2〜4番目が多く、必ず入るかはまだ分りません。
>>499 AB-A123DCAAは、"DC"が左から8番目以降なので除外しません。
511 :
名無しさん@そうだ選挙にいこう :2010/11/20(土) 20:53:38
ターゲット初心者です。 オッズをCSV出力させる方法について教えて下さい。 出力さえできればCSVという形でなくてもかまいません。 ターゲットの画面で枠連を人気順に表示させています。 それをエクセルに出力させたいのですができません。 「F8・出力キー」を押すと「オッズテキスト主力形式選択メニュー」 が表示されます。そこで「枠連人気順整形テキスト形式」を選択する と、「整形テキスト形式出力ファイルの指定」のダイアログボックス が表示されます。 アクセスフォルダ(D)を見ると「C:\TFJV\TXT\」となっています。 フォルダ内ファイルリスト(L)を見ると「POG_LIST.TXT」となって います。 これを選択し、OKボタンを押すと「同名のファイルが存在します。 処理を選択して下さい。」という同名ファイル処理選択ダイアログ ボックスが表示されてしまいます。 出力方法が間違っているようです。私はエクセルに出力させたいの ですが、それができません。どのようにすれば良いでしょうか? ターゲット板で質問したところ、エクセル板に行けと言われたので きました。エクセル2000です。 よろしくお願い致します。
それはエクセルでなくターゲットなる物の操作方法になるのではないか?
513 :
複乳 :2010/11/20(土) 21:09:41
>>509 希望通りの表示になるかわからんけど
とりあえずVBAでサンプル作ってみるよ。
とりあえずZの項目が始まるセル番地教えてください。
515 :
複乳 :2010/11/20(土) 21:22:17
>>514 自己解決しました。
お気持ち、ありがとうございます。
517 :
名無しさん@そうだ選挙にいこう :2010/11/21(日) 02:57:54
【1 OSの種類 .】 WindowsVista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 使おうと思えばある程度使える 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 確率 1/2 で 500 回試行 290〜310 回成功する確率 を求めたいのですが、どうすれば良いでしょうか。 BINOMDIST関数ではできませんでした。
518 :
名無しさん@そうだ選挙にいこう :2010/11/21(日) 02:59:05
519 :
名無しさん@そうだ選挙にいこう :2010/11/21(日) 03:05:29
>>517 =BINOMDIST(310,500,0.5,1)-BINOMDIST(290,500,0.5,1)
=0.014%
521 :
名無しさん@そうだ選挙にいこう :2010/11/21(日) 15:16:42
522 :
名無しさん@そうだ選挙にいこう :2010/11/22(月) 11:43:15
2007エクセル使っています。 コピペをマクロで貼り付けしているんですけど 間違えて貼り付けした場合マクロだと元に戻すが出来ないんですが どうすればいいでしょうか? 失敗するごとに一度ブックを閉じてしまいます。 お願いします。
>>522 とりあえず簡単な方法を3個。
@ マクロを使わない。
A 貼りつけるセルが決まっているのならそれもマクロに記述(記録)して使用する。
B 貼りつけるセルが決まっていない場合、メッセージボックスを付け加えワンクッション
置くように編集する。
524 :
複乳 :2010/11/22(月) 14:04:00
>>522 貼付け先のシートを先にコピーしておくとか
>>522 貼りつける前の状態にするマクロを組めばいいと思います。
2003と2007があります。
532 :
522 :2010/11/22(月) 20:52:17
みなさんありがとうございます。
ヤッパリ難しいですね。面倒ですけど貼り付ける前に上書き保存しておいて
失敗したらブックを閉じるしかないですね。
>>525 貼り付ける前のマクロって気になりますw
533 :
525 :2010/11/22(月) 21:49:50
>>532 例えば、コピペする前の値?を何処かに置いといて間違ったらそれをコピペするマクロ。
詳細kwsk
534 :
525 :2010/11/22(月) 22:10:56
>>533 コピペするのはいつも状況によって違います。
例えばある時は千葉の店舗、ある時は埼玉の店舗とか。
千葉を分析したいのなら
左ドラッグして範囲を選んでそれをコピペします。
あるところに貼り付けて分析するようにしています。
たまに間違えて東京都とか貼り付けてしまって面倒で。
失礼しました。
535 :
522 :2010/11/22(月) 22:14:15
>>534 それって本来はピボットでやる仕事だな
元のデータがきちんと正規化してあれば、いちいちコピペしなくても店舗ごとに分析できる
537 :
525 :2010/11/23(火) 00:02:04
>>534 IF文とVLOOKUP使えば解決すると思うんだよね。
もし千葉店舗なら○○値が出て、もし埼玉店舗だったら□□値が出てるとしたら
その○○、□□を制御出来ればコピペマクロも失敗しないと思うんだけどね。
>>534 手作業と組み合わせるから失敗する
何もかも全部マクロでやればいい
539 :
名無しさん@そうだ選挙にいこう :2010/11/23(火) 14:48:44
エクセル2007でデフォルトの表示を変えるには どうしたらいいですか? 例えば、Uは下線を引く Dは2重下線を引くで デフォルトではUのみ表示されていて、Dは隠れていますが Dをデフォルトで表示させて、Uは隠れさせたいのです。
>>539 リボンに並んでるボタンを入れ替えるには専用のフリーウェアが必要
541 :
名無しさん@そうだ選挙にいこう :2010/11/23(火) 15:11:24
>>539 クイックアクセスツールバーに追加して常に表示させておくという手もあるよ。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル(excel) ファイル パスワード 解除 マクロ
同一のパスワードがかかったエクセルファイルが50個ほど、定期的に送られてきます。
1日に何度も開くため、その都度パスワードを入力するのが非常に面倒です。
一括で50個全部のパスワードを解除できる方法はないでしょうか。
検索したところ、唯一参考になりそうなページがこれでしたが自力では無理でした。
ttp://questionbox.jp.msn.com/qa4453228.html どなたかよろしくお願い致します。
>>543 出来ることから始めよう
少しだけ楽になればそれでいいだろう?
マクロの記録をかけて、ファイルを開いてパスワード入力するとこまで記録させて
あとはそのマクロを編集すればよい
ファイル選択のあたりが、直接ファイル名になってるはずだから
そのマクロを実行するとそのファイルだけしか使えないけど
編集してファイル名を変数に修正して、ファイルを開いて選択した奴をその変数にぶち込むようにすれば
「ファイルを開く」の代わりにそのマクロを実行するだけで済む
545 :
名無しさん@そうだ選挙にいこう :2010/11/23(火) 20:09:12
546 :
534 :2010/11/23(火) 22:08:42
みなさんありがとう。 みなさんの言うとおりやってみます。
547 :
名無しさん@そうだ選挙にいこう :2010/11/23(火) 22:14:43
仕事上での売掛計算の合計値として SUMIF関数を使いたいのですが 条件設定が完全一致ではなく 一部一致で計算してくれる方法は無いですか? 現在、同一セル内に『人名(企業名) カード会社名』を表記してるのですが セル内にあるカード会社だけを抜き出して、合計するようにして欲しいのです。 例えば A1『田中 JCB』 B1『5000円』 A2『佐藤 JCB』 B2『3000円』 A3『●●●商事』 B3『2000円』 A4『大山 VISA』 B4『2000円』 A5『村上 JCB』 B5『500円』 という風にあるとして JCBだけを合計したい場合です。 現状だとセル内を JCB だけにすると合計値を計算してくれますが それ以外の文字が入っていると計算してくれないのです。 どうしたらいいですか?
548 :
複乳 :2010/11/23(火) 22:18:44
>>547 =SUMIF(A:A,"*JCB*",B:B)
ワイルドカード使うといいよ
549 :
名無しさん@そうだ選挙にいこう :2010/11/23(火) 22:27:47
>>548 うほっほほほほほほぉおおおおおおおお
うぁりぃいがとぉおおおおございますぁあああああああああああああああ
これで仕事の能率が上がり、仕事の終了時間が早くなります(`・ω・´)
550 :
複乳 :2010/11/23(火) 22:28:39
ワロタ。良かったね
551 :
382 :2010/11/23(火) 23:44:03
>>541 Custom UI Editor Tool
2007から画面のデザインがXMLになったので、ファイルを直接編集すれば
かなり自由に外観を変更することができるようになった
553 :
543 :2010/11/24(水) 11:00:21
>>544 回答ありがとうございます。
申し訳ありませんがVBAの知識がないため、この部分の具体的な方法が分かりません。
>ファイル名を変数に修正して、ファイルを開いて選択した奴をその変数にぶち込むようにすれば
>>543 のリンク先にあるように「フォルダ すべてのブック VBA」で検索しましたが
やはりよく分かりませんでした。
また、「パスワードの入力を楽にしたい」のではなく、
希望としては「同一フォルダに入った全ファイルのパスワード一括解除(なしで開ける状態にしたい)」なのですが・・・。
分かりづらくすみません。
あと念のため、
>>545 は自分のレスではありません。
>>553 ほい
Sub xxx()
ChDir ("C:\ExcelData") '処理するフォルダを指定
With Application
.DisplayAlerts = False '上書きの警告メッセージを出さない
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
.Interactive = False
fname = Dir("*.xls")
While fname <> ""
Workbooks.Open Filename:=fname, Password:="ぱすわーど" 'パスワードを指定して開く
ActiveWorkbook.SaveAs Filename:=fname, Password:="" 'パスワード無しで上書き保存
ActiveWorkbook.Close
fname = Dir()
Wend
.DisplayAlerts = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.Interactive = True
End With
End Sub
555 :
543 :2010/11/24(水) 13:31:16
>>554 ありがとうございます!!!!!
素晴らしい、感激です。
556 :
名無しさん@そうだ選挙にいこう :2010/11/24(水) 18:20:12
すいません。 例えば 『=SUMIF(D35:D50,"*クーポン*",E35:E50)+SUMIF(N35:N50,"*クーポン*",O35:O50)+SUMIF(X35:X50,"*クーポン*",Y35:Y50)+SUMIF(AH35:AH50,"*クーポン*",AI35:AI50)』 とあった場合 これをもっと短くするにはどうしたらいいですか? それともこれを短くすることは出来ないのでしょうか?
557 :
464 :2010/11/24(水) 19:01:13
>551 内容がだいぶ変わってしまったのでビックリしてます。いくつか質問を・・・ Q1 年月の部分(O1セル以降の部分)の数字は2バイト文字で間違いないですか? また、>385でアップされていたファイルでは西暦4桁年になっていましたが、 >551では西暦年の下2桁または1桁になっていますが、間違いないですか? Q2 9年11月より前の部分(件数がない)は、無視していいですか? いまさら2009年中の集計はないでしょ? というのは、集計処理の際、 集計対象列を設定する処理を Find関数 を使って行うことから、存在し ない列があってはまずいです。 Q3 前にもおたずねしましたが、データは右へ右へと伸びていくんですか? アップされたファイルには10年11月までしか見出しがありません。 それとも、昔のデータの列をまるごと削除して左へ詰める? Q4 シート「出力先6」(タイトル:チーム別成績分布表)は、○○万以上の人数 や割合などの意味がわからないので、当面考えないことにします。 Q5 シート「出力先4」(タイトル:新人単月ランキング)は、計上の条件が 「入社1年以下」ですが、単に処理日(このVBAマクロを実行する日) で1年以内と考えていいんですか? それとも、基準日のきまりがありますか? また、件数・成績は単月でいいですね? とりあえず、このくらい。またわからないことがあったら書きます。
>>556 うん、短く出来ない。
sumproductを使えば多少短くなるかも知れないけど、あんまり変わんない気がするし
>>556 作業列作って振り分ければ短くなるしトレースがとれる。
かもね。
>551 アプロダにUP済みです。2個同じものが続いているのでわかるはず。 わからなければおたずねください。 ※.vbsはインポートしてください。(メモ帳で開いて2行目以降をコピペでもいいです)
>>556 どうでもいいことだし、かえって分かりづらくなるかも、だけど
*クーポン*
というのをどこかのセルに入れておいて、検索条件でセルを参照させるようにするとほんの少し短くなるw
562 :
560 :2010/11/24(水) 23:26:48
>560の最後の行は ※ .VBSはインポートしてください。(以下同文 です。なぜ消えたんだろう
VBAで質問なんですが、よろしいでしょうか。 ちょっとやってみたいことがあって、イベントを試してみています。 で、実験してみたのはこんな感じ。 @実験の内容 Msgクラスのインスタンスからイベントを発行すると、 2つある別のクラスのインスタンスからそれぞれイミディエートウィンドウに メッセージを出すというもの。 ○標準モジュール ・宣言部 Msgクラスをとる変数を作成 ・Mainプロシージャ Msgクラスのインスタンス作成 Class1クラスのインスタンス・Class2クラスのインスタンスの作成 Class1.Aメソッド実行 ○Msgクラス ・Mメソッド イベントMessege(String)を発行 (続きます)
564 :
563 :2010/11/25(木) 01:21:37
○Class1クラス ・宣言部 Msgクラスをとる変数をPublic WithEventsで作成 ・Initialize 宣言部で作成したMsgクラスのインスタンスを代入 ・Messegeイベントのレシーバ イミディエートウィンドウに「Class1: 'Str'」を出力('Str'はイベントの引数) ・Aメソッド Msg.Mメソッドを実行 ○Class2クラス ・宣言部 Msgクラスをとる変数をPublic WithEventsで作成 ・Initialize 宣言部で作成したMsgクラスのインスタンスを代入 ・Messegeイベントのレシーバ イミディエートウィンドウに「Class2: 'Str'」を出力('Str'はイベントの引数) @結果。 実行するとClass1の出力はされるのですが、Class2の方にはされません。 @質問 1.Class2にもイベントをレシーブするようにするにはどうしたらよいでしょうか。 2.上の実験では何が問題だったのでしょうか。 よろしくお願いいたします。
565 :
複乳 :2010/11/25(木) 02:41:12
>>563 うん、わからんね。プログラム板のVBAスレ行った方がいいかも。
あとクラス使うならVBAよりVB2010の方が楽だよ
566 :
382 :2010/11/25(木) 03:05:09
>>557 A1 前回UPした385のように西暦4桁でお願い致します。
変に意識してしまい、変更してしまいました。
A2 9年11月以前は件数が見当たりませんでした。
多分製作者が10年から追加したものと思われます。
A3 右へ伸びていくのか製作者と連絡がとれず
過去のデータを検索中でございます。
出来るだけ早く見つけ出し回答させていただきます。
A4 出力先6は無視していただいてかまいません。
説明が下手で申し訳ありませんでした。
A5 基準日はありません。
処理月を基準に1年以内でお願いいたします。
成績・件数ともに単月でお願いします。
遅くなって申し訳ありませんでした。
よろしくお願いいたします。
567 :
名無しさん@そうだ選挙にいこう :2010/11/25(木) 15:23:12
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 初心者 【4 VBAでの回答の可否】 可 ユーザーフォームでテキストボックスを作りそこに入力した値を基に 別のテキストボックスに顧客名を表示させようとしています。 TextBox1 に入力した値を VLookup でTextBox1_2 へ表示という風にです。 問題はテキストボックスが1〜100まであるので下のような記述を100個しなければ ならないのでしょうか? それとも何か別に簡単な方法があるのでしょうか教えて下さい。 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If TextBox1.Value = "" Then Me.TextBox1_2.Value = "" Else On Error GoTo ExitER Me.TextBox1_2.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("顧客リスト"), 2, False) Exit Sub ExitER: MsgBox "一致する口座番号がありません" Me.TextBox1_2.Value = "" End If End Sub
568 :
複乳 :2010/11/25(木) 18:00:31
【1 OSの種類 .】 Windows VISTA
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル 一定の範囲 割合
http://loda.jp/0tm/?id=43 「時間シート」のA列にはパケットの飛来時間の間隔が入っています。「個数シート」には時間間隔の個数が書いてあります。
「時間シート」で時間間隔の範囲をB列のように0.1秒ごとに分けて、C列にある各範囲の割合を求めてグラフにしたいのですが、どのようにすればうまく表せることができるでしょうか?
求めたいことを「個数シート」で言うと、0.0~0.1秒の範囲を求めたいときは"A2:A478"(個数は"B2:B478")にあたるので、E2には490パケット/1226パケット=39.96%がでるようにしたいです。
わかりづらい説明で申し訳ないですが、どうかお願いします。
570 :
名無しさん@そうだ選挙にいこう :2010/11/25(木) 20:21:05
【1 OSの種類 .】 XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 変換 html css 条件付書式 選択したセル内容をhtml(テーブル)に変換したいです。 今使っているのが「ConvHTML」というアドイン?なのですが、条件付書式で指定した色が反映されたhtmlは作成してくれません。 条件付書式で指定した背景色も反映されるソフト、アドインを教えて欲しいのですが無いでしょうか?
571 :
複乳 :2010/11/25(木) 20:43:01
572 :
名無しさん@そうだ選挙にいこう :2010/11/25(木) 22:11:14
【1 OSの種類 】 XP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか 】 少し 【4 VBAでの回答の可否 】 可 初歩的な質問で恐縮ですが、よろしくお願いします。 セルに関数を設定しても、一発で正しい結果が反映されず、 そのセルをF2キーなどでいじって、やっと正しい結果が反映する状態です。 関数の計算元となるセルを変更して、即、関数のセルに反映するには どうしたらいいでしょうか?
574 :
名無しさん@そうだ選挙にいこう :2010/11/25(木) 22:48:09
>>573 レスありがとうございます!
自動計算になっているのに、反映されなかったので色々調べてみました。
Application.Volatileを書き加えたら、うまく行きました。
575 :
名無しさん@そうだ選挙にいこう :2010/11/25(木) 22:49:01
>>570 ですが自己解決しました。
ConvHTMLのver 2.0が公式以外のサイトにあったのでそれを使いました。
失礼しました。
576 :
563 :2010/11/26(金) 01:37:03
それでは、プログラマ版で聞いてみます。 ・・・そういえば、環境書いてなかったですね。済みません。 あと、VB2010はインストール不可の環境なので使えないのです。
【1 OSの種類 .】 Windows 7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 SUMIFSで、名前を条件に使いたい、どうすればよいでしょうか? たとえば、 合計範囲:B1:B5 条件範囲:A1:A5 条件範囲の値が、C1:C3のいずれかと一致するセルの合計を出す。 =SUMIFS(B1:B5,A1:A5,C1,A1:A5,C2,A1:A5,C3) とすればよいのですが、ただ、条件の数が増減するので、できれば名前で指定したいのです。 また、条件の数の増減時に数式の変更が必要ないものでお願いします。
578 :
577 :2010/11/26(金) 02:49:22
自レスで申し訳ありません。例中のものは動きませんね。間違えていました。 フィールドを作って、DSUMを使うことで一応解決することができました。 できれば、フィールドを使わずに名前を使いたいです。
579 :
577 :2010/11/26(金) 02:54:21
すみません。解決しました。 テーブルを作成し、そのテーブルを参照することでできました。 条件が増えても、テーブルを拡張することで対応できそうです。
580 :
名無しさん@そうだ選挙にいこう :2010/11/26(金) 12:21:21
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 セルの書式設定で 1000.00→1,000 1000.10→1,000.1 1000.22→1,000.22 と出るようにしたいのですが、どのように書式設定を行えばよいのでしょうか?
>>580 まずセルの書式を「#,##0.00」にする
次に条件付き書式で条件を「=A1=INT(A1)」にして、書式を「#,##0___」(後半は半角スペース3個)にする
最後にフォントを「MS ゴシック」に変える
Excel2007から条件付書式で表示形式を設定できるらしいので 値に応じて振り分けるようにすればいいと思います
コンマ区切りしたいんでは
585 :
584 :2010/11/26(金) 13:20:51
スマン584は無しで
>>580 ユーザー設定 #,##0.## で良さそうだよ。
587 :
580 :2010/11/26(金) 14:12:35
回答ありがとうございます。
>>582 の方法で、やりたいことが実現できました。
588 :
569 :2010/11/26(金) 16:28:57
>>571 ありがとうございました!
助かりましたm(_ _)m
>>580 >>582 惜しいね。
書式を「#,##0_._0_0」が正解。
MSPゴシックでも揃うぜ。
>>589 は誤解されるといけないから補足しとく。
まずセルの書式を「#,##0.00」にする
次に条件付き書式で条件を「=A1=INT(A1)」にして、書式を「#,##0_._0_0」にする
ってことな。
おっと1000.10のとき困るじゃねーか。訂正だな。 まずセルの書式を「#,##0.0?」にする 次に条件付き書式で条件を「=A1=INT(A1)」にして、書式を「#,##0_._0_0」にする。
まずセルの書式を「#,##0.??」にする。 とした方が分りやすいかもねぇ。 小数点下3けたならまずセルの書式を「#,##0.???」にして 以下」同じ手順で「#,##0_._0_0_0」 「#,##0_._8_9_3」でもえーよ。数字は文字幅一緒だから。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ(きのうから勉強はじめました)
【4 VBAでの回答の可否】 否(VBAでないと無理であればVBAでの回答お願いします)
ttp://www1.axfc.net/uploader/File/so/54761 PASS: kari
(うpしたファイルは2007ですが、実際に作業するのは2000です)
左側の表に不合格者の一覧、右側の表に合格者の一覧があります。
ただ、たとえば2回受験して1回目不合格、2回目不合格といった人は
左側の不合格者の表、右側の合格者の表両方に含まれています。
これを、「完全に不合格な人」だけを抜き出して表にするにはどうしたらいいでしょうか?
>>594 例えばE3に
=COUNTIF(G:G,B3)
として、下にコピー。これで結果が「0」の人が「完全不合格」
ただ、これは何回も受験して何回も不合格の人は重複して抜き出されるね。
596 :
594 :2010/11/26(金) 20:00:47
×1回目不合格、2回目不合格→○1回目不合格、2回目合格、でした
>>595 おお!抽出できました!どうもありがとうございます!
2007以降のオートフィルターって使いにくい。 1個選択したい時に、事前に「すべて選択」を押さないで良い方法ってないの?
598 :
名無しさん@そうだ選挙にいこう :2010/11/27(土) 21:21:11
関数を使って A1セルに数字が入力されるとC1からC5までのセルを塗りつぶす もしくはC5までのセル内の文字の色を変える ってできますか? できるなら教えて下さい。
>>598 条件付き書式で
c1〜c5セルに
「数式が」「=ISNUMBER($A$1)」と入れる
条件付き書式のやり方については、検索するべし
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい・ 【4 VBAでの回答の可否】 可・ 【5 検索キーワード 】 and 関数 計算式 セルに数式を入れたいことが質問内容です エクセル表にA列に数値データが入っています。 そのA列データに係数B列記を掛けて C列に C1=A1*B1のように数式を入れることはできます。 しかし、私はC列に数値データで数機をいれたいです。 たとえば A1=3 B1=2 C1=3*2 ようにC1に A1とB1から「値」を拾って、その値のかけ算をいれたいです。 いろいろ、調べたんですがマクロなしで、できますか? もし簡単にできるのでしたらご教授お願いします
>>600 よくわからないです・・
C1=A1*B1(一応確認ですがC1の内容が「=A1*B1」ということですよね)とすれば
A1の3とB1の2をかけられます。多分
>>600 さんの説明がおかしいです
>>600 C1をコピーした後、形式を選択して貼り付けではだめなん?
C10000まであったとしても1回で簡単にできるよ
そのくらい知っていて聞いているんだろうから的が外れた回答かも。
603 :
名無しさん@そうだ選挙にいこう :2010/11/28(日) 08:55:04
>>599 やってみます。ありがとうございました。
604 :
複乳 :2010/11/28(日) 12:32:56
>>600 文字列と考えればいいよ。
その例だと、C1は「="="&A1&"*"&"B1"」
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
605 :
複乳 :2010/11/28(日) 12:34:58
それを形式を選択して貼り付けの値でコピーする。それを計算された状態で表示させる方法は本物の人が教えてくれるよ。
>>597 >>606 フィルターをかける時に、何も表示されないような条件をセットするようなVBAを組んでおく。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
質問させてください。
設定した基準値と各参照値A,Bと比較した後に
”買い””売り””見送り”の3種類のいずれかを表示できるように書き上げたつもりなのですが、
覚えのない”0”という値が時々返ってきます。
(サンプルでは、F16、18、25、28がコレにあたります)
何が原因でそうなってるか自分でも分からず、詰まってしまいました。
原因が分かる方、どなたかアドバイスお願いします。
http://loda.jp/0tm/?id=48
>608 最後の評価式が空だからだろ IF(a=b,c,)とすると、a<>bのとき、常にFalse(=0)が返る
>>608 数式の一番最後の”偽”が設定されていません。
611 :
608 :2010/11/28(日) 18:47:02
ありがとうございます。 合点がいきました。 ただ、私の勉強不足もありましてあれ以上後ろに式を追加すると 「引数の限界・・・」と行った具合のエラーメッセージが表示されてしまいます。 偽の値を設定するにもどう書けばいいのか思いつかない次第です。 重ね重ねで恐縮ですが、アドバイスをもらえないでしょうか? よろしくお願いいたします。
最後の"見送り"の位置が違うだけだよ。
>>611 F16の数式の最後。"aaa"が追加したところ。
(中略) $2,D14>F$2),"売り","aaa")))),"見送り")
色々if分岐があるけど、全ての条件でなければこの"aaa"になるっぽい
あと
IF(AND(C17<=F$2,C16<=F$2,C15<=F$2),"買い",
IF(AND(C17<=F$2,C16<=F$2,C15>F$2),"買い",
IF(AND(C17<=F$2,C16>F$2),"買い"
の三行は
IF(C17<=F$2),"買い"
にまとめられたりするから、もっと式短くした方がいいと思う
>>607 vbaでは無理でしょ(´・ω・`) やっぱりダメか(´・ω・`)ショボーン
615 :
名無しさん@そうだ選挙にいこう :2010/11/28(日) 21:45:47
windows7,excell2007ユーザーです。 本当に初歩的な質問で恐縮なんですが、A列に日付をずーっと並べて、 今日の日付の行だけ色を変えたいのです。 2007以前のバージョンだとそういうことができたみたいなんですが、 2007だと行単位で色を変えることができない。(日付のあるセルだけ なら変えられる)。 そういうものなんでしょうか。なんかやりにくくなってるような気がします。
>>615 いや、できるから。
B1に「数式を使用して・・・」で
=$A1=TODAY()
上下左右に書式のみコピー
上下左右じゃねーか。上下右か・・
相談じゃなくて申し訳ないですけど、以前Excelを使って地図を書いてみよう!みたいな 書籍を見かけた気がして、ググっても見つからず。ご存知の方いますか?
>>601 説明が下手で申し訳ございません。
>>602 値のはりつけだとだめです。 セルの中に数式が残っていて欲しい
>>604 ありがとうございます。私が欲しい結果と違ったので 教えて頂いた式を改造して以下のようにしました。
="="&A1&"*"&B1&""
そうすると 表示は A1=3 B1=2 の場合 C1の表示は「=3*2」となりました
私がやりたいことは、C1の表示が「6」 でC1セルをクリックしたら 数式で「=3*2」
としたかったんです。
もし、回答に対する質問と判断されたらもうわけございません
>>619 多分オプション設定をいじっている
2003しか無くて申し訳ないが
メニューのツール→オプション→表示タブ→ウィンドウオプション
で「数式」にチェックが入ってない?(2007だと違う場所にこのオプションがあると思うけど)
デフォルトでは外れてて、初期の状態が
>C1の表示が「6」 でC1セルをクリックしたら 数式で「=3*2」
になってるんだ
もしかしたらテンプレートか何かいじったんじゃないかな
エスパー
>>600 はC列の数式をA列とB列の値を使って自動的に書き換えたい
それはVBAを使わないと無理
【1 OSの種類 .】 Windows*xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】エクセル ログイン エクセルの中でログインの機能みたいなのを作って、個人を認証するようにしたいんですけどどうすればいいでしょうか?簡単に関数を使って作成していって最後にボタンで登録(認証)みたいにしたいんですけど、報告書で個人事に使用できるようにしたいんで。
>>623 ログインなんてあったっけ?
パスワードでもつけて個人ごとにシート・ブックを分けて、
別ブックでまとめるとか
>>623 Workbook_Openイベントでパスワードダイアログ表示
マクロに読み取りパスワードかける
626 :
464 :2010/11/29(月) 21:18:45
>551 例のところにうpしました。探してもわからなければ、おたずねください。
627 :
382 :2010/11/30(火) 00:30:38
>>626 感謝してもしきれないくらいです。
ありがとうございます!
自分自身でも作れるように
日々精進させていただきます。
改めてありがとうございました!
628 :
615 :2010/11/30(火) 08:03:20
>>616 ありがとうございます。一度やってみますね^^
>627 ちょっと修正があります。19,20行目(インポートした後で)の sort_key1 = sh_s.Range("B6").Value & 2 ←最後の2を tate_i_strt に変更 sort_key2 = sh_s.Range("B7").Value & 2 同上 にしてください。 出力側のソート部分は変数で指定してたけど、入力側の最初のソートの部分で変更しそこねてました。 あと、疑問点をふたつ・・・ その1 出力先1シート「単月チームランキング」には「グループ名」の列は不要では? チームの中にグループがあり、グループに個人が属する訳だから、例えるならば、都道府県別 ランキングになぜか市町村名の欄があるようなもの。 その2 出力先3シート「グループ単月ランキング」にはチーム名の欄はあるけどグループ名の欄が なかったので、B列はグループ名とみなしています。
excel2003で会社の日別成績グラフを作ったのですが 支店が5つあり、それぞれに予算・実績・挙績で15本の折れ線グラフになっています 15本ということで若干みずらくなっているのでデータテーブルで数字を載せたいと思ったのですが 挙績だけデータテーブルを表示する方法はありませんか?
631 :
名無しさん@そうだ選挙にいこう :2010/11/30(火) 23:11:38
falseってどう読むのが正解? ”ファルス””フォルス””フォールス”
632 :
複乳 :2010/11/30(火) 23:16:16
>>631 フォールスです
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel vba 複数条件 a b c d e 名前 産地 備考 値段 個数 りんご 青森 直送 200 2 りんご 青森 倉庫経由 180 1 りんご 福島 直送 200 1 みかん 愛媛 直送 100 1 みかん 愛媛 倉庫経由 80 2 もも 岡山 直送 150 1 sheet1に上のような表があり、 sheet2に名前(a列)、産地(b列)が完全合致、備考(c列)が部分合致した行のデータを 引っ張ってくるような形にしたいのですが、どうでしょうか? 例えばsheet2に a b c りんご 青森 経由と入力すると、d1に180、e1に1が入力される感じです。 みかん 愛媛 直送なら、d1に100、e1に1です。 実際の表にはe1以降のデータもあり、それも引っ張ってきたいです。
634 :
複乳 :2010/12/01(水) 01:26:17
>>633 そのためにオートフィルタという便利な機能があるのじゃ
単に知らなかっただけ?それともそういうふうにしたいこだわりがある?
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
Select Caseで出来て、Ifで出来ないことってありますか?
636 :
複乳 :2010/12/01(水) 03:10:11
>>633 ・文字列を結合させてvlooklup
D列に一列挿入して、「りんご青森直送」というセルを作る
sheet1!d3=A3&B3&C3
で、シート2でvlookup
=VLOOKUP(A1&B1&C1,Sheet1!D:F,2,0)
・VBAで検索。A列をforloopで検索、ABC列が探してるものと同じなら・・
って感じで
・2007か2010を導入してsumifs関数。
・SUMIFSを2003で実装
ttp://takashixxx.blog88.fc2.com/blog-entry-27.html vlookupが一番楽とは思う
>>636 有り難うございます。
vlookupで試して見たのですが、
c列の文字が合致していないとエラーが出てしまいます。
633で情報不足していたようで申し訳ないのですが、
備考蘭には実際には英数文字を含めて文字列が入っており、
その中でキーワードとして単語を抽出したくて「部分合致」した検索結果が欲しかったです。
なぜc列が必要かと言うと、a列とb列だけの検索では重複する列が数多くあり、
c列を加えることで重複しなくなるからです。
もしお暇ならご教授お願いします。
639 :
複乳 :2010/12/02(木) 01:03:02
>>638 *おおっと*部分一致か、ゴメン。vlookupは使えないな
http://www1.axfc.net/uploader/Sc/so/179269.xls 説明が長いのでアップロードしておいた
test1シートについて
F-H列で、検索したい結果通りなら1が返るようにする
その三列で合計が3ならIJで結果が返り、IJの一行目に答えが返ってくる
IJ列はA-E列と同じだけ伸ばしておいてね。先に65535行目まで入れておいてもいいけどね
test2シート
やってる事は同じ。少し見やすいように変えて、式も1セルにまとめてある
条件は色々増えるようだから、多分test1を改良するのがいいと思う
>>639 検索値にヒットした別列の合計が欲しいならDsum関数があるけど。
レコード引っ張りたいならDget関数。
テーブルでデータ保存されてるならDatabase関数おすすめ
641 :
名無しさん@そうだ選挙にいこう :2010/12/02(木) 08:54:47
EXCEL2010です。 小計、中計、大計と集計する時、 3つのキー項目を指定する方法を教えて下さい。 リボンに小計(1項目しか指定できない)しかないのですが・・・
誰かexcel2007以外で日付の表示形式を試してくれない? 2010/12/2を平成22年12月2日と表示するなら表示形式はggge"年"m"月"d日"が普通だと思うが rr"年"m"月"d日"でも同じように表示されることをたった今知ったんだが、これってExcel2003などでも同じ? また英語版Excelだとrrは何になるのかなぁ。
Excel2003でも同じ
2003。rだと22、rrだと平成22が表示されるね それぞれもう一度見るとeeとgggeeに変わってる 理由は探したけど見つからなかった
>>644-645 サンクス。
なるほどgggeeに変わってたのか、そこまで気がつかなかったわ。
ちなみにbbbbは仏暦ね。今は2553年だよ〜。こんなのをエクセルで求める人がいるとは思えないけど
648 :
名無しさん@そうだ選挙にいこう :2010/12/02(木) 20:53:47
仏は仏教に関連?それともフランスに関連?
フランスはないでしょwwww
650 :
648 :2010/12/02(木) 21:22:59
釣れたwwwwwwww
開発チームにSGI関係者がいたら池田大作歴とか作るかもな。
「=1+1」という式を設定したセルの値を、 単純に「2」にするにはどうすればいいですか?
くだらねえ。馬鹿が住み着いてしまったようだね。 せっかくの良いスレだったのに。
657 :
名無しさん@そうだ選挙にいこう :2010/12/03(金) 05:04:52
マクロの自動記録について教えて下さい。 自動記録でマクロを組んだのですが、入力されないページがあります。 sheet1です。自動記録の内容は以下の通りです。 sheet4に外部データの取り込み→テキストファイルのインポート→ sheet4にインポートされたデータを並べ替えや、書式設定をしてsheet1 とsheet2に入力します(コピペです)。 完了後、マクロの記録を終了します。 その後、そのマクロを実行したのですが、sheet2には正常に入力されて (表示されて)いました。しかしsheet1は何も入力されて(表示されて)お らず、空のセルのままです。 どのような原因が考えられるでしょうか? sheet1とsheet2に入力(コピペ)したのは数字のみです。それぞれ同じ 数字ですが、並べ替えなどはしていますから順番通りには並んでいま ん。 先にコピペしたのはsheet1のほうです。完了後、今度はsheet2にコピペ しました。sheet1のコピペ完了後、sheet2にいく前(移動する前)に何か 操作するべきだったでしょうか?例えば上書きボタンを押すべきだった など・・・。上書きボタンは押していませんでした。マクロの記録中な ので押すべきではないと思いました。全ての操作を完了してから最後に 押しました。 Excel2000です。 解決方法を教えて下さいますようお願い申し上げます。
自動記録の内容をマクロではなく文章で一生懸命説明しようとしてる○カ
>>657 ・ctrl+zで戻した
・別のモノをコピーした
・別の作業をしてコピーの内容が消えた
っていうかそれだけじゃ分からない。
もっかい記録したら?
アップロードしてくれたら調べるよ
まずはステップイン(F8)で確認するといいと思う
>>658 なるほど、
>>658 のことですね!よくわかりました。ありがとうございました。
XPとEXCEL2kでうs ソニー銀行の人生通帳のような支払予定カレンダーを自作したいと思ってます。 別のシートに年月とクレカ会社の出納簿のようなものがあるので、 カレンダーシートで年月を指定して出納簿から該当のデータを支払日のところに呼び出すってイメージです。 VBAもがんばります。よろしくお願いします。
>ソニー銀行の人生通帳のような と言われても見たことない人が多いと思うけど。俺も見たこと無いけど。 VBAでfornextを使ってvlookupみたいなものを作って、別シートから引っ張ってくるのが分かりやすいと思う それか、簿記をちょっと覚えて貸借対照表/損益計算書作った方が早いし勉強にもなりそう
662 :
複乳 :2010/12/04(土) 01:27:34
>ソニー銀行の人生通帳のような わたしも見たことないな / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
俺も見たことないわ 想像すると、家計簿に何十年も先の予定まで書くみたいな物じゃないのかな はっきり言っちゃうと、予定通りに進む人生なんて実際にはありえないから まあ、予想からどれだけ外れたかを振り返って楽しむ物、という考え方もあるけどね いい大人の作った「よげんのしょ」みたいなね
人生通帳って名前は大層ですが、そんな大したもんじゃないです。 一部のクレカ情報をひっぱってきてカレンダーに支払を一覧表示してくれるものです。 一部しか対応してないのが不便なので自分で入力してやりたいなと思いました。
Excel2010。10MBくらいのシートがやけに重くなってコピペするたびにしばらく 止まったり、異常終了するようになった。しらべてみたら、条件付き書式が ひとつのセルに同じものが数十個もついてるのがわかった。先月分をコピペ して追加してるうちに重複して増えたらしい。 ぜんぶ削除するとびっくりするくらい快適動作。困ったときにはお試しください。
条件付き書式が無制限に増えたからこういうケースも増えるのかな でも、なんで数十個もついたのか分からない
669 :
複乳 :2010/12/04(土) 10:13:01
>>664 >>665 手伝ってあげましょう。ちょっと待っててね。
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
>>668 ありがとうございます。
日付と支払先・額がイメージできればいいのでカレンダーそのものは適当でいいです。
出納簿が月ごとになってて、そこからカレンダーで指定した月のデータをひっぱってきて
該当する支払先(日付)のところに入れるって感じです。
VLOOKUPでいいような気がするのですがなんかうまくいきませんです。
VBAは、マクロの記録して適当にいじったりはできますが、ゼロから記述は無理です。
シートを月ごとにわけるのはやめとけ 管理が面倒になるだけ 入力と出力はわけるのが基本
672 :
670 :2010/12/04(土) 13:06:16
シートは月ごとじゃないです。 月ごとに1行の出納簿のシートと、カレンダーのシートの2枚です。
>>672 月に一行はダメ
一行に出金か入金一つにしないと
イメージとしては、銀行の紙の通帳と同じ並べ方にする
Excelってのは縦一列に並んだ数字を処理するのが一番得意な構造になってるから、
今はまだ理解できないと思うけど、とりあえず言われた通りにしとけ
675 :
670 :2010/12/04(土) 19:07:39
>>673 通帳と同じ並べ方ですか・・
まずそこから考え直さないといけないんでしょうか・・
>>674 たしかに説明下手で通じてないと思います。すいません。
あらためて書かせていただきますと
・現在、クレカの出納簿っぽいものをつけています。(要改造)
・それを利用して、1週x4行的なカレンダーっぽいのをつくれないかと思いました。
(日付の並びは固定でよい)
ひと月1列で、支払日が会社ごとに決まっているので
例えば平成22年12月10日にA社の支払いなら、
カレンダーで「平成22年12月」を指定(選択)すると、出納簿のシートを見て、
「平成22年12月」の行の、左から何番目か(A社の支払額の列)を、
カレンダーの10日のところに張るだけでいいんでないかなと思いました。
676 :
670 :2010/12/04(土) 19:21:17
みなさんすいません、できました。 範囲指定と列番号間違ってましたm(_ _)m
それだと、何かの理由で月に2回以上支出や入金があったときに、 明細を残せないことになるね。
678 :
670 :2010/12/04(土) 19:40:09
そうなんですよね。要改善ですね。 クレカなので月1回の請求と支払が前提です。
679 :
670 :2010/12/04(土) 19:49:37
出納簿はクレカが5社も6社もあっても縦一列でやるべきなんでしょうか?
年月と項目と金額で3列かな。
それを
>>674 さんご指摘の方法で抽出すると。
なんか入力から難しくなりそうな悪寒がしますが・・
>>679 その通り。列を増やして、そこに会社名を入れるのが基本
ただ、余計なことを言わせてもらえばクレカを6枚も持つのはちょっとどうかと思う
持つだけならいいとしても、普段から使うのはせいぜい2〜3枚にしとかないと…
ピボットテーブルの引き算について教えてください。 集計アイテムとか集計フィールドとかを使うと思うんですが。 日付 区分 金額 1/1 入金 500 1/1 出金 300 というテーブルを元に 日付 入金 出金 残額 1/1 500 300 200 というピボットテーブルはできますか? いまは出金を-300にして500+(-300)=200で表示してます。
>>681 ピボットだけだと無理だと思う
ピボットテーブルを作ったあと、残額の列だけ手動で数式を追加するか、
ピボットテーブルを作る前に作業列に出金をマイナスした物を入れて、そこからテーブルを作るか
学校勤務で成績処理で悩んでいるので、質問させてください。 【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 なるべく否 観点別評価でA1〜A4にそれぞれA・B・Cの評価が入っている状態です。 AAAAなら5、AABBなら4、BBBBなら3…と評定を出す基準が決まっているのですが、 A5に評定を自動で表示させる技はあるでしょうか? 数字を合計して判別する方法はわかったのですが、アルファベットの個数からの判別は可能でしょうか。 よろしくお願いします。
>683 A6セルに下記の式を入れると、3桁の数列(文字なので数字とは書きません)が出ます。 左から"A"の個数、"B"の個数、"C"の個数を連結しただけのものです。 =COUNTIF(A1:A4,"A")&COUNTIF(A1:A4,"B")&COUNTIF(A1:A4,"C") A1:A4の4個のセルがすべてAなら、"400"・・・という風に組み合わせを調べると全部で15個 400,310,301,220,211,202,130,121,112,103,040,031,022,013,004(見落としはないかな?) です。それぞれに応じた評定を指定してVLOOKUPとかHLOOKUPとかと組み合わせればできると思う。 今はとりあえず、ここまで。
685 :
684 :2010/12/05(日) 20:20:37
>683 続きです。例としてC1:D15の範囲に表を作ります。C列は400,310,301,220,211,202,130,121,112,103,040,031,022,013,004を あらかじめ書式を文字列にしておいたセルに入力して昇順に並べ、D列はとりあえず上から連番(1〜15)を入れておきます。 A5セルに計算式 =VLOOKUP(A6,C1:D15,2,0) を入れると、A,B,Cの個数に応じた評定が表示されるはずです。 A1:A4の内容を変化させて、問題がないようであれば、D列の内容を本来設定したい評定の内容にしたらいいです。 A6セルを使わず、A5セルで直接全部処理したいのであれば、式が長くなるけど =VLOOKUP(COUNTIF(A1:A4,"A")&COUNTIF(A1:A4,"B")&COUNTIF(A1:A4,"C"),C1:D15,2,0) こんな感じでいいと思います。(当方、Excel2003で確認済)
>>684 >>685 >>683 です。
ありがとうございます!!できました!!
これで2学期の成績間に合います!!
ここの人ほんと凄いです…。
関数もっと勉強します。
>686 実際に使うときは、A,B,Cの個数の組み合わせと評定の表(例ではC1:D15の部分)の範囲は $C$1:$D$15 みたいに、絶対座標指定(って言うのかな?)をしてください。 コピーしても内容がズレません。 あと、くれぐれも間違いのないようにお願いしますよ。大事な生徒さんの将来を左右するかも しれないので。
688 :
名無しさん@そうだ選挙にいこう :2010/12/05(日) 23:22:13
質問です。 NO.54623を54623のように数字だけにしたい時はどうすればいいですか? 検索しようがないと言うか、お願いします。
>>688 関数で?
=SUBSTITUTE(A1,"NO.","")*1
直接だったら、置換とか
>>689 すいません。複雑じゃなくてただ数字だけにしたくて。
A2にTEL88544だったら88544だけ数字を取りたいです。
>>690 置換じゃだめなの? TELだかNO.だかをブランクに置換すればOK
>>691 すいません。置換って意味ですか。検索してみます。ありがとう。
>>690 数字の前のアルファベットが「TEL」の他にも何種類もあるのかな?
数字の前のアルファベットの文字はバラバラだけど文字数が固定されているのであれば
LEN関数とLEFT関数またはRIGHT関数を使えばいけるかも
「TEL88544」ならアルファベット3文字なので
数式=RIGHT(A2,(LEN(A2)-3) で88544だけ抜きだせる。
他には抜き出したい部分が数字のみで構成されているのなら
>>691 の言うとおり
置換でA〜Zをブランクに変えていけば最大26回で数字だけが残る。
勘違いしてたらごめんなさい。
>>693 サンクス 文字としてならrightとかでいいんですけど数字が左寄りになってしまうので。
数字入れるとセルの中で右寄りになりますからね。それでいいました。
すいません。TELってのは例で言っただけでそれ自体には意味はありません。
ありがとうございました。
>>694 rightでも数式の最後に*1を
>>689 のように付け加えれば数値扱いになって右寄りになるよ
ただし電話番号みたいにあたまが0だと消えちゃうけど
>>673 > Excelってのは縦一列に並んだ数字を処理するのが一番得意な構造になってるから、
> 今はまだ理解できないと思うけど、とりあえず言われた通りにしとけ
こういう暗黙のルールみたいなのってどこかに一覧ないですか?
697 :
641 :2010/12/06(月) 08:37:18
>>642 レスありがとうございます。
ご回答のホームページ(集計機能での集計)の2番目に書かれている
「並べ替え」(集計キーを3つ指定できる)の画面(相当のもの)を
EXCELe2010で表示するには、どうすれば良いのでしょうか?
【1 OSの種類 .】 Windows7 x64 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 わからない 【4 VBAでの回答の可否】 できれば否、使用しないと無理ならば可 【5 検索キーワード 】 Excel 数え上げ 集計 Excelの表組みが、例えば、 | 3 | Firefox | | 2 | Opera | | 6 | Firefox | | 1 | Chrome | となっているものを、Firefoxはいくつか、Opera、Chromeはいくつかを数え上げて | 9 | Firefox | | 2 | Opera | | 1 | Chrome | のように集計結果(同一文字列の行を足し合わせたもの)を出力したいのですが、 よろしければどういった方法で行えばいいのか、教えてください。よろしくお願いします。
画面サイズが1366x768だと、Excel 2010の全画面表示で何行目まで表示されますか?
>>698 関数ならsumifを使う。
上でも出ているけど、ピボットテーブルが最強に便利
経過時間を、「◯日と△時間□分◇秒」と表示させたいのですが、どういうユーザー定義にすればいいんでしょうか? A 1| 2010/11/14 23:33:15 | 2| 2010/11/23 12:46:09 | 例えばこういったセルがあったときに、「A2-A1」を計算すると、差分が出てきますよね? そこで、[h]:mm:ss のユーザ定義を使うと、差分が「△時間□分◇秒」で表示出来ると思うのですが、 それを、「◯日と△時間□分◇秒」 という表示にしたいのです・・・
>>703 d"日と"hh"時間"mm"分"ss"秒"
>>701 まぁ35前後だと思いますが、PC屋の店頭の機械さわらせてもらうのがいいと思います
人によって色々、メニューバーの有無や拡大率、行の幅を変えている可能性が有りますので
偶然同じ環境であったとしても違う結果が返ってくる可能性が有りますので
>>704 ありがとうございます、出来ました。助かります。
707 :
kafu :2010/12/07(火) 16:53:52
お願い致します。 【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可、極力なしでできればと思います。 【5 検索キーワード 】 Excel 重複 A 1りんご 2すいか 3なし 4めろん 上記入力していく際、A5に再度すいかと入力した場合に重複したキーワードのセルに色が付いたり ポップアップで教えてくれたりという機能はありますでしょうか? 抽出が出来る事は分かっております。 何卒宜しくお願いします。
>>707 条件付き書式で
=(COUNTIF(A:A,A1)>1)
709 :
kafu :2010/12/07(火) 18:15:39
>>708 ありがとうございました。感謝です。
早速試してみます。
>>708 逆にBにもすいか、めろんとかあったらどうなるんですか?
=(COUNTIF(A:B,A1)>1)とかですか?
>>707 条件付き書式で「数式が」
=1<COUNTIF($A$1:A1,A1)
A1に入れて、適宜下にコピー
ちなみに値や数式が入っていても、
コピーで値を貼付けの書式で条件付き書式を設定できる
枠線とか消えるけど
初歩的な関数の使い方や入力の仕方などに 関する質問はここではNGですか?
>>712 とくにルールはないけど回答者は気まぐれ
【1 OSの種類 .】 WindowsVista 64 【2 Excelのバージョン 】 Open office 【3 VBAが使えるか .】 使えない 【4 VBAでの回答の可否】 できれば否、使用しないと無理なら可能 【5 検索キーワード 】 @open office 標準偏差 Aopen office 残差 A 1.8 4.2 5.8 6.1 この4行をグラフにし、散布図にします。そのあと、トレンド線(回帰直線)を挿入します。 このトレンド線(回帰直線)までの残差を数値で出すことは可能でしょうか?また、標準偏差の数値を出すことは可能でしょうか?
717 :
714 :2010/12/07(火) 23:18:39
>>716 わざわざ誘導ありがとうございます。そちらで質問してきたいと思います。申し訳ありませんでした
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ユーザーフォーム 自動実行 ある処理をマクロでさせているのですが、実行するかどうかをユーザーフォームを使って、 はい、いいえで選択させています。 これを、なにも押さなければ、10秒後に自動実行みたいに変えたいと思います。 Application.Ontimeでやろうとしたのですが、うまくできません。 よい方法があれば教えてください。
ユーザーフォームをモードレスで立ち上げるようにしてみましたが、うまくできません。 Application.OnTimeでやるには、根本的に間違ってる気がしてます。 こんな感じでコード書いてますが、いいえを押しても押さなくても、10秒後には実行されてしまいます。 コードを見ると当然のように思いますが・・・ ほかに方法がわかりません。 Private Sub UserForm_Initialize() Dim waittime waittime = Now() + TimeValue("00:00:10") Application.OnTime waittime, "実行するマクロ" End Sub Private Sub はい_Click() Call 実行するマクロ Unload ユーザーフォーム End Sub Private Sub いいえ_Click() Unload ユーザーフォーム End Sub
>720 10秒後に実行するのは「実行するマクロ」ではなくて、実行するかどうかチェックするマクロ ではないでしょうか? フォームを表示した時点でマクロの変数か、どこかのセルに「実行する」状態をセットし、併せ て10秒後に「実行するかチェックするマクロ」を実行するようにしておきます。 フォームの「はい」をクリックしたら「実行しない」状態をセットしてから実行したいマクロを 実行し、「いいえ」をクリックしても「実行しない」状態をセットしてフォームを閉じるように したらいいのではないでしょうか? なにもしない状態で10秒経過すると「実行するかチェックするマクロ」が起動し、「実行する」 状態をチェックし、本来の実行したいマクロを呼び出す訳です。
ページ全体にあるhttp・・・とうアドレスを全部リンクしたいんですができますか? リンクの仕方自体はわかったのですが、大量に一度にというのがわかりません。
>>722 データの区切り位置でそのままOKにすればリンクが貼られるよ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 ユーザーフォーム 自動実行
【添付図】
ttp://deaimail.from.tv/up/src/up3425.jpg ユーザーフォームのイメージボックスでの質問です。
添付図のようにイメージボックスに表示させる画像ファイルを選択し、表示させた後
テキストボックスに書かれた文字をファイル名にして画像をデスクトップに
保存させたいのですが、
保存させるときの記述で
Image1.picture.saveas filename := ・・・の後の表記をどのように書けば良いか分かりません。
どなたか知恵をお貸しください。
>>724 TextBox1.Text
とかじゃないの?
IFERRORかよ。
>>165 はExcel2007以降ってどっか書いてる?
さすがに最近は2003以前のユーザーより多いのかねぇ。
誤爆すまん、ここは総合相談所だった。
728 :
722 :2010/12/10(金) 01:26:19
既にエクセルにあるアドレスということです。
>>728 URLが大量にあるんならVBA使った方が早い
Sub aaa()
With ActiveSheet
For Each c In .UsedRange.Cells
If Left(c, 7) = "
http:// " Then
.Hyperlinks.Add Anchor:=c, Address:=c
c.Font.Underline = xlUnderlineStyleSingle
c.Font.ColorIndex = 41
End If
Next
End With
End Sub
>>728 =HYPERLINK(A1)で下にコピー
いまどき2007つかってないひとなんているの?
732 :
名無しさん@そうだ選挙にいこう :2010/12/10(金) 09:04:49
職場はまだ2000と2003。2007は使いにくかったので導入していない バンドルでついてこない限り買い換える理由がない スライサーとかsumifsとか便利そうな機能はあるんだけどねー 無くても何とかなるしなぁ
今日日2010だろjk
俺は2010使うときだけコンパネで日付を1年戻して使ってるぜ。 評価期間が過ぎたとか怒られるんでね。
うちはPC3台に入ってるのが2003(モバイル)、2007(自分のデスク)、2010(親の)とバラバラ どれもまんべんなく使ってて、それぞれ一長一短て感じだけどな
構造化テーブルつかうと もう古いバージョンに戻れないよね
740 :
名無しさん@そうだ選挙にいこう :2010/12/10(金) 16:42:53
あまり詳しくは書かれてないが一応ヘルプにも載ってるぜ。 Microsoft Office Excel 2007 の新機能→テーブルの拡張。 俺はセル範囲を指定しなくて済むので重宝してる。
742 :
名無しさん@そうだ選挙にいこう :2010/12/10(金) 17:56:03
重複する行だけを削除する方法はどうすればいいのでしょうか? AAA ABB ABC AAA ABB というデータがあった場合、これを、 AAA ABB ABC と、重複しているものだけ消して一つにまとめたいのですが・・・
747 :
745 :2010/12/11(土) 06:35:41
すみません。Excel 2007です。
いまどき「すみません」なんて正しい日本語使えるとは感心だ。 2007なら重複の削除ってあるだろ?
750 :
728 :2010/12/11(土) 17:44:37
レスくれた人ありがとうございます。 729さんの方法でなんとか全部にリンクできました。
751 :
745 :2010/12/11(土) 21:11:24
ありがとうございます。出来ました。
URLが大量にあるんならVBA使った方が早い
Sub aaa()
With ActiveSheet
For Each c In .UsedRange.Cells
If Left(c, 7) = "
http:// " Then
.Hyperlinks.Add Anchor:=c, Address:=c
c.Font.Underline = xlUnderlineStyleSingle
c.Font.ColorIndex = 41
End If
Next
End With
End Sub
↑これでリンクできたんですが、いままでと違ってクリックしてもリンクの
色が変わらなくなってしまいました。対処法をお願いします。
>>752 この2行削除してもう一度実行
c.Font.Underline = xlUnderlineStyleSingle
c.Font.ColorIndex = 41
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 × A列 B列 1 名前 購入品 2 小林 茶碗 3 遠藤 帽子 4 安田 バット 5 安田 PS3 6 小林 パソコン 7 樋口 PS3 8 小林 茶碗 9 安田 指輪 こういう表があったとして、名前ごとの購入品の種類数を出すにはどうすれば良いのでしょうか?
>>754 C1=A1&B1ってしてC列で重複データを削除したあとA列をピボットで集計
756 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 10:04:55
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel 2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 ○ 毎月、カテゴリーごとの予算額と実績の差異を直近4ヶ月分出さなければならないのですが、 引っ張ってくるEXCELデータが予算額と実績しか記述されておらず、 わざわざ手動で=実績−予算額を求め、ピボットで集計している状態です。 これを効率よく求める方法はありますでしょうか? 引っ張ってくるEXCELデータの例は下記になります。 (例)4月分 カテゴリー 名前 4月予算額 ・・・7月予算額 4月実績・・・7月実績 果物 りんご 500円 500円 500円 800円 果物 ばなな 500円 400円 300円 400円 野菜 トマト 100円 600円 600円 300円 5月分 カテゴリー 名前 5月予算額 ・・・8月予算額 5月実績・・・8月実績 果物 りんご 500円 500円 500円 800円 果物 ばなな 500円 400円 300円 400円 野菜 トマト 100円 600円 600円 300円
>>755 俺だったらわざわざ重複削除したりしない
名前縦、購入品横で購入品数をピボットで集計すれば、
購入品数の手動COUNTで種類数は出る
>>756 >手動で=実績−予算額を求め、ピボットで集計
この作業をマクロで記録して保存
次からこのブックにコピーしてマクロで一発じゃないのん
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 写真サイトやニコニコ動画などで使われているキーワードタグのような データ形式をExcelで再現する場合、定番の方法などありますでしょうか? つまり、任意にタグを追加できて、 そこから重複検索するのに適したデータ形式を求めています。 タグ用の列を10個なり固定で持たせればOKな気がするのですが もしもっといい方法がありましたらよろしくお願いします。
固定で持たせると増えたときが面倒だし減ったときに無駄 ファイル名−タグ1 ファイル名−タグ2 みたいに縦2列がいいと思う
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 office 2007 【3 VBAが使えるか .】 使えない 【4 VBAでの回答の可否】 できれば否、使用しないと無理なら可能 【5 検索キーワード 】 excel 範囲 操作 関数 範囲名(外部インポートしたもの)からその範囲の一行目 (フィールド行)のみを取得できないでしょうか? 最終目的はVLOOKUPの取得列のインデクス指定を MATCH({フィールド名記述セル},{フィールド行},FALSE)とすることで 動的に行うことです。フィールド行の範囲を手動で指定するのではなく FirstRow({範囲名}) ←実際にはない関数だと思います で一行目が返ってくるような範囲の選択操作が行えないかと思い 最初の質問をしました。vba利用や外の解決手段でもかまいません。
762 :
複乳 :2010/12/12(日) 12:21:51
今年もお世話になりました 来年もよろしくお願いします よいお年を / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
763 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 12:35:56
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel 2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 検索したけど、解決できませんでした。excel2010 ポップアップ 関数 入力 EXCEL 2010をWin7とビスタの2台で使っています。 Windows7のとき、関数を手入力すると関数の入力要素が表示されます。 たとえば、=eomonthと入力すれば、(開始日、月)みたいにカッコつきで表示されるため関数入力が非常に楽にできます。 一方、ビスタで使うときは、=eomonthと入力しても、カッコつきの入力要素が表示されないために上手く 関数入力ができないです。おそらくビスタOSの設定に起因しているとも思うのですが、関数を手入力したときに カッコつきで入力要素が表示されるようにすることは可能でしょうか。 ご存知の方いらしたら、ぜひご教授いただきたいです。 どうぞ、よろしくお願いいたします。
765 :
759 :2010/12/12(日) 12:57:08
>>760 >固定で持たせると増えたときが面倒だし減ったときに無駄
まさしくその通り
なるほどタグに特化すれば縦2列も悪くなさそうです。
ただ記入日などの固定データを増やすと
データの重複が多くなってしまうので
そこは割り切るしかなさそうですね。
>>765 そういうのはタグとは別にテーブルをつくる
ファイル名かファイルIDでリレーションさせればいい
767 :
763 :2010/12/12(日) 13:44:36
解決しました。
768 :
759 :2010/12/12(日) 13:59:28
>>766 イメージできてきました。
ありがとうございます。
769 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 15:34:22
Excel 2007 1000行4列のデータがあり、そのうち1000行3列のデータでグラフを作成したいのですが、 マウスのドラッグで選択範囲を指定するとスクロールに時間がかかります。 一気に前データ範囲を指定する方法はないですか?
>>769 範囲が正確にわかってるなら、先にグラフを挿入してから「データの範囲」を開いて「A1:C1000」みたいに
キーボードから打ち込めばいい
Ctrl+Endで一気にラストまで飛ぶとか、Ctrl+Homeでシートの先頭にジャンプする機能なんかもあるから
そういうのを活用する
データがA1から始まってるんなら、まずラストに飛んでから、Shift+Ctrl+Homeで一気に選択できる
771 :
>>769 :2010/12/12(日) 15:45:33
意外とみんな知らない基本技 [Ctrl]+[Shift]+"*"
772 :
>>769 :2010/12/12(日) 15:46:27
で、Shift押しながら[←]1回
結構ショートカットキーは好きだけど、
>>771 のは知らんかった。
CurrentRegionって感じなのね
できました。 ありがとうございました
775 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 18:35:18
[Ctrl]+[Shift]+"*" なにもおこらないんですが
ABCDのうちABCを選択したい場合はCtrl+*、Shift+左 BCDを選択するにはB1を選択したあとShift+Ctrl+End
778 :
名無しさん@そうだ選挙にいこう :2010/12/12(日) 21:51:09
[Ctrl]+[Shift]+[け]
フルキーの*はShift押さないと出ないからな まあ正確に書くなら「Ctrl + Shift + : 」または「Ctrl + *」ってとこかな
Excel2007の、ピポットテーブルのフィールドの設定に 「行方向の比率」がリストの中にないのですが、何か理由はありますか? (データによりリストに出ないことがあるなど) フィールドの設定ウィンドウの、計算の種類の下にあるリストBOXの一覧に ないということです。列方向の比率はあります。
「Ctrl + Shift + : 」 「Ctrl + *」ってフィルタオプションのリスト範囲じゃ効かないのね。 矢印2回かぁ。
質問です。 色々なワードが並んだデータがあり、このデータをある法則で置換したいのですが、その法則が、 Me、2000、XP、Vista、7 という名前のセルは「Windows」 Panther、Tiger、Leopard、Lion という名前のセルは「Mac」 としたいです。これをExcelで行うにはどの機能を使えばいいでしょうか? (Excelでなくてもいいのですが、Excelで行うのが適切なのかな、と) OSはWindows7、バージョンはExcel 2007、VBAは使用したことは無いですが、 使わなければ不可能ならば、可です。よろしくお願いします。
>784 >(Excelでなくてもいいのですが、Excelで行うのが適切なのかな、と) 実際の処理対象となるデータは何ですか? CSVファイル? 単なるテキストファイル? 実際の処理対象のワードって数百種類?数千種類? 例にあげられた程度で、本当に「置換」するだけでいいのなら 検索/置換だけで済みますよ。 [Ctrl]+[H] で検索文字列、置換文字列を指定するだけ、>784ならばこれを9回繰り返すだけ。
786 :
名無しさん@そうだ選挙にいこう :2010/12/13(月) 11:40:11
わが社の40過ぎたおっさん社員にエクセル仕込みたいのですが、一体どうすりゃ良いでしょう。 おっさんのレベルは、文字は打てる、ファイルとフォルダって何が違う?関数なにそれ?ってくらいです。
>>786 Excelに限らず、人に何かを教えるには「教える」という技術が必要
Excelがどんなに詳しくても教える技術がなければ無謀
教え方が悪いと教えられる方も混乱するだけ
どうしてもやらなくちゃいけないのなら、
何から順番に教えるかってのが結構重要なので、
初心者向けの入門書を買ってきて、それを教科書として
最初のページから順番にやらせてみたら?
788 :
784 :2010/12/13(月) 13:17:10
>>785 レスありがとうございます。
データはテキストファイルですが、カンマ区切りなのでExcelでも読める状態です。
例は、2種類しかあげていませんが、手動の置換を繰り返すのは骨が折れる数あります。
Me、2000、XP、Vista、7 : 「Windows」
Panther、Tiger、Leopard、Lion : 「Mac」
Firefox、Chrome、Opera : 「Browser」
Google、Yahoo!、Bing : 「Search」
...
のような感じで数百個あり、理想としては、A列に「置換先のワード」、B列以降に「マッチさせるワード」を置いて、
そのシートを元に置換を行えたらな、と思ったのですが・・・
>>788 本来ならsedとか使う領域だな
ExcelでやるならVBA使わないと無理
>>788 カンマ区切りになってるなら1セルに1単語になると思うんで
A列に「置換先のワード」、B列以降に「マッチさせるワード」を置いた表を作って
Vlookupで参照したらどうだろう
791 :
784 :2010/12/13(月) 14:01:49
>>789 >>790 ありがとうございます。
色々Excelで試してみたんですが、もしかして、正規表現使って秀丸のreplaceマクロで処理すれば・・・
と思ってやってみたら、そっちで出来そうでした orz
レスありがとうございました。
793 :
784 :2010/12/13(月) 14:18:39
>>792 ありがとうございます。いいですね!見てみます。
>>753 目的の動作ができました。m(_ _)m
795 :
名無しさん@そうだ選挙にいこう :2010/12/13(月) 15:45:53
質問です。 A5 9 A6 11 A7 4 A8 7 A9 2 と特定のセル範囲に数字があってそれを横に C3 D3 E3 F3 G3 2 4 7 9 11 と並べ替えたいのですがどのようにすればいいですか? RANK関数しかないでしょうか?
796 :
795 :2010/12/13(月) 15:47:58
すいません EXCEL2007です
>>796 ソートしたあと行列を入れ替えて貼り付け、とか
行列を入れ替えて貼りつけてからソート。 これなら元のデータが残るぜw
その程度のデータ数ならSMALL関数でもいいな。 =SMALL($A5:$A9,COLUMN(C1)) ただし数千、数万だったら重くて駄目だからやはりソート。
あまり横に長いと見渡せないからあってもせいぜい数十までだろうな。 SMALLで十分だな。
みなさんありがとう
>>795 です。
>>799 くぐりました。 コラムの所は番号でいいんですね。
しかしコラムって初心者には難しですねw ありがとう。
条件付き書式によってセルの色を変えた後、 その色を固定することって出来ますか? 例えば「A列で重複しているセルを赤く」という条件付き書式にした場合、 重複セルを消して重複していないように変えると、色が消える訳ですが、 一度着色したら、重複を消しても色が残るようにしたいです
書式で貼りつけ
804 :
fuku :2010/12/14(火) 13:04:24
>>802-804 作業列と反復計算使えば条件付き書式のみでも出来なくはないが、いつも反復計算にしてるわけにはいかないから実用的じゃねーな。
ブックレベルで設定出来ればいいが出来ないからな。
Excel 2007で「重複の削除」を、大文字小文字を区別して行いたいんですが、 どのようにすればいいのでしょうか?
質問させてください。 1月 2月 3月 ・・・ a1 a3 a1 a5 a7 a4 a23 a44 a20 a44 a21 a23 のようなデータが一年分あり、a1 から a100 までの、月の内訳を出す為に 1月 2月 3月 ・・・ Total a1 1 1 ・・・ 2 a2 ・・・ 0 a3 1 ・・・ 1 a4 1 ・・・ 1 a5 1 ・・・ 1 ... ... のような表を作成したいのですが、ピボットテーブルによって、 ・ALL(a1からa100が並んだ行) → 行ラベル ・1月〜12月 → 値ラベル、データの個数 としても、正しく内訳が出来ません。何が間違っているかわかりますか? もしくは、別の方法があれば教えてください。よろしくお願いします。
>>807 元のデータを↓みたいにしないといけないんじゃないの?
月 データ
1月 a1
1月 a5
1月 a23
1月 a44
2月 a3
2月 a7
2月 a44
3月 a1
3月 a4
3月 a20
3月 a21
3月 a23
初心者です 只今PCに最初から導入されているエクセルソフトが諸事情で使用出来ないため キングソフトのoffice2010を購入しインストールして使用しております その際貼り付け等した場合に『かばん』が表示されると思うのですが、このソフトは 表示されません。かばんの表示方法を教えていただけませんか? これをクリック出来ないと作業が進みません… よろしくお願いいたします
811 :
名無しさん@そうだ選挙にいこう :2010/12/14(火) 16:57:28
excel 2000で計算書を作っています。数量のランク付けをしているのですが 順番を連番にしたいのですが、色々調べてもできません。 どなたか教えて下さい、お願いします。 例 3 270 1 90 1 90 4 400 ↑ これを 2 270 1 90 1 90 3 400 この式に変えたいです。例は4行としましたが、計算書では 50行はあります
法則がよくわからない
813 :
名無しさん@そうだ選挙にいこう :2010/12/14(火) 17:15:13
スイマセン No 数量 3 270 1 90 1 90 4 400 ↑ これを No 数量 2 270 1 90 1 90 3 400 rankでやるとNoが同じ90の数字があると1134となり2番がなくなります。 それを1123とランク付けしたいのです
>811,813 元データから「重複なしにしたデータの並び」を作り、rank関数で順位付けしてから match/indexで元データの方に順位を引用したらできそう。
個数の逆数を個数ぶん足してを繰り返す =ROUND(SUMPRODUCT(($B$1:$B$4<B1)*1,1/COUNTIF($B$1:$B$4,$B$1:$B$4)),0)+1 とか ROUNDは演算誤差対策だからなくてもいけるかも
816 :
814 :2010/12/14(火) 17:51:47
>811 作業列を2列(E、F)使ってやってみました。 E1セルに =IF(COUNTIF($B$1:$B1,B1)>1,"",B1) F1セルに =RANK(E1,E:E,1) と入れて、それぞれデータ最下行までフィルコピーします。 E列は重複なしになり、F列には求めたい順位が表示され、重複データの行には #VALUE! と表示されます。 A1セルに =IF(ISERROR(F1),INDEX(F:F,MATCH(B1,E:E,0)),F1) と入れて、データ最下行までフィルコピー すると、求めたい結果になるはずです。(当方Excel2003) >815 スゴイですね!
817 :
名無しさん@そうだ選挙にいこう :2010/12/14(火) 18:09:47
>>815 ありがとうございます。
さっそくやってみて出来たんですが
行間にスペースがあるとエラーがでます。表にスペースをなくせばいい事ですが
>>816 さんもありがとうございます。1度試してみます
並び変えれば簡単 説明を書きづらいので式をB列にした。 数量 90 1 90 =IF(A3<>A2,B2+1,B2)または=B2+(A3<>A2) 270 400 値貼りつけしてから元の並びに戻せばいい。 元に戻すには作業列に連番をあらかじめ振っておけばいい。 50行じゃなくて5000行のときはこう汁。
819 :
名無しさん@そうだ選挙にいこう :2010/12/14(火) 19:38:19
シートの最下方にある一定の範囲のデータを削除したら 空白セルの行が大量に残ってしまったのですが、 これらを消す方法はあるのでしょうか。 今データがある最終行の下の余白部分は多くても 5行ぶんくらいまでにしたいのですが・・・ 印刷とかではなく、ただ見栄えを考慮してのものです。 行選択で選択した一定の行数を削除しても特に変化が ないので困っています。よろしくお願いします。
1 hogehoge 2 hoge 3 hoge- 4 hohoge ・・・ のように1から100まで、対応した文字列が入ったデータに対して、 3 4 6 10 12 のように、数字が指定されたデータで、「リストにある数字の行だけを抽出する(それ以外の行は削除する)」 という動作を行いたいのですが、どうすればいいでしょうか?
質問です。2007です。 りんご あまい 赤 青森 りんご ふつう 青 千葉 みかん あまい 橙 愛媛 すいか あまい 青 千葉 すいか ふつう 青 茨城 すいか あまい 緑 栃木 ってあります。 それを 1りんご あまい 赤 青森 2りんご ふつう 青 千葉 3 4 5 6みかん あまい 橙 愛媛 7 8 9 10 11すいか あまい 青 千葉 12すいか ふつう 青 茨城 13すいか あまい 緑 栃木 14 15 みたいに5単位で分けて整列したいんですが どのような方法がよろしいでしょうか? お願いします。
>821 りんご の行が5行だったときは、みかん はどこから始まるの? 6行目から?それとも11行目から? 実際のデータ量はどの程度?しょっちゅう同じようなことするの?
823 :
821 :2010/12/14(火) 21:13:45
>>822 りんごとかみかんは最大で5までです。
みかんは6行目からです。すいかは11行目からです。最大が5なので5単位で。
実際は5でなく20ぐらいありますが、例で短めに5単位にしました。
しょっちゅう使います。
824 :
822 :2010/12/14(火) 22:42:39
>821,823 当方Excel2003なので、ひょっとするとうまくいかないかも知れません 行をあけるのではなく、下の方に行番号を振って、最後にソートする方法です Option Explicit Dim tate As Long, tate_e As Long, tate_strt As Long, tate_end As Long Dim yoko_key As Integer, yoko_line As Long Dim sv_key As String, j As Long, k As Integer Sub ex821() yoko_key = 2 'キー項目の列番号 yoko_line = 10 'ソート用一連番号を振る列番号 tate_strt = 2 'データ先頭行 tate_end = Range("B65535").End(xlUp).Row 'データ終了行 tate = tate_strt tate_e = tate_end + 1 '空白行用一連番号出力開始行 j = 1: k = 1 'j:一連番号、k:1〜5のループ用 Cells(tate, yoko_line).Value = j sv_key = Cells(tate, yoko_key).Value Do tate = tate + 1 j = j + 1 If tate > tate_end Then Exit Do End If 続きます
825 :
822 :2010/12/14(火) 22:48:01
続きです If Cells(tate, yoko_key).Value = sv_key Then Cells(tate, yoko_line).Value = j k = k + 1 Else Do While (k < 5) '5行単位で一連番号を振るための処理 Cells(tate_e, yoko_line).Value = j j = j + 1 tate_e = tate_e + 1 k = k + 1 Loop k = 1 Cells(tate, yoko_line).Value = j sv_key = Cells(tate, yoko_key).Value End If Loop MsgBox ("ソート開始します") ActiveSheet.Range(Cells(tate_strt, 2), Cells(tate_e, yoko_line)).Sort _ Key1:=Cells(tate_strt, yoko_line), Order1:=xlAscending End Sub 1件目のデータが2行目から始まるものと仮定しています。 ソートのための行番号を10列目(J列)に設定しています。適当に変えてください。 ソートの前にメッセージボックスを表示して一時中断するので、クリックする前に 行番号がどのように振ってあるか、見てください。 ※ソート範囲にA列は含めていません。
>>819 deleteじゃなく右クリック→削除
保存して再度立ち上げると戻るはず
そうじゃなければ新規ブックに残った部分だけコピーしちゃえ
>>820 上のリストをAB列、下のリストをC列とすると
D1=IF(COUNTIF(C:C,A1)=1,A1,"")
E1=IF(COUNTIF(C:C,A1)=1,B1,"")
>>821 インデックスを設定してvlookupで引っ張る。VBAの方が良さ層だけどねぇ
http://www1.axfc.net/uploader/Sc/so/183448.xls リストをB-Eに。A1=1、A2=CEILING(A1,IF(B2<>B1,5,1))+1
F列からI列下にも適当に=IF(ISERROR(VLOOKUP(ROW(),$A:$E,COLUMN()-4,0)),"",VLOOKUP(ROW(),$A:$E,COLUMN()-4,0))
827 :
822 :2010/12/14(火) 23:02:26
>実際は5でなく20ぐらいありますが、例で短めに5単位にしました の部分を見落としていました。 20行単位に変更するには、 Do While (k < 5) '5行単位で一連番号を振るための処理 を Do While (k < 20) '20行単位で一連番号を振るための処理 に変更してください。
828 :
822 :2010/12/14(火) 23:11:05
修正箇所がまだあったorz Excel2007からは最大行数がだいぶ増えていました。 tate_end = Range("B65535").End(xlUp).Row 'データ終了行 の B65535 はExcel2003までの行数の最大値を元にしているので、適当に変更してください。
>>828 物凄くありがとう。君はいい奴すぎる。
僕の質問は簡単かなと思ったけど空白になる部分もあるから難しいんですね。
オートフィルでやってコピペしていたんですけどかなり手間を食うので。
毎回これだと大変なので助かります。
ちょっと参考にして勉強してみます。
>>828 最大行数、列数はRows.Countとか書けばバージョンの違いは気にしなくてよくなる
Range("A" & Rows.Count) みたいに
831 :
819 :2010/12/15(水) 00:46:21
>>826 ありがとうございます。
右クリック削除しても下からまた新たに追加されて
いるのか、結局できなかったので質問しました。
新規シートにコピー→元を削除 でできました。
感謝です。
質問です。
Excel2003で下のURLにあるマクロをURLの説明どおりに登録していたところ、
初めてVBエディタを触ったので、これどうやって保存すんの?とかいじってる内に
オブジェクト名をプロシージャというところと同じ名前(koukan)
にしてしまったのですが、この2つを同じ名前にすると
マクロ名が「Book1!koukan.koukan」となっていてショートカットキーを登録しても
使えない状態になりました(マクロを直接実行すると問題なく実行できます)。
オブジェクト名を別のものに変えるとマクロ名は「koukan」になっていて
ショートカットキーも使えました。
最初からオブジェクト名をいじらなければ良かっただけの話なんですが
この2つは同じ名前じゃまずい理由とかあるんでしょうか?
マクロ自体初めて触るので訳の分からない質問だと思いますが
なんか気になるのでよろしくお願いします。
ttp://soudan1.biglobe.ne.jp/qa74186.html
>>832 確かに機能しないねぇ。名前を変えればokなのにね
理由はサッパリわからん。
どうしても気になるなら、プログラム板のVBAスレに行ってみるといい。誰かわかる人いるかも
あと質問は4-7行目だけでわかるぞ
834 :
名無しさん@そうだ選挙にいこう :2010/12/15(水) 14:19:41
【1 OSの種類 .】 WindowsVista SP1 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 シート名 変更 レジストリ WindowsVistaでOffice2010を使っていますが、シート名が薄い というか灰色なので、どのシートがアクティブが分かり辛いです。 そこで、試しにシートの色を白にした所くっきり見えるようになったので デフォルトのシート色を白にできれば…と思ったのですが方法がわかりません。 どなたかシート名を黒く見やすくする方法を教えて下さい。 ちなみにVistaですがぼやけた文字が見づらいので、Windowsクラシックの テーマを使用しています。
835 :
834 :2010/12/15(水) 14:36:09
すみません自己解決しました。 実は、「"3D オブジェクト"の色を変えれば良い」という情報は見かけたのですが 『それはVista表示の話で、クラシック表示にしているから関係ないな』 と思っていたのですが、よくみたらクラシック表示の項目にも"3Dオブジェクト"があり、 それを灰色から白に変えたらアクティブシートの表記が「白地に黒文字」の 状態になり、見やすくなりました。お騒がせしました。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 1500と4000の二つの数値を足していって出る全ての数値を表にしたいのですが、 1500 3000 4500 5500 6000 のように、コレをエクセル関数で作成する事は可能でしょうか?
837 :
名無しさん@そうだ選挙にいこう :2010/12/15(水) 18:27:27
こんにちは。 競馬で3連単ってありますが あれってエクセルだとどういう仕組みなんでしょうか? A B C 1 4 2 4 2 5 4 8 3 7 8 11 だとしたら 4→2→8みたいに数字が重複しないで 何通りになるのか知りたいです。 お願いします。 エクセルは2007です。
z=ax+by (a=1500、b=4000、xとyは0〜無限大の正数)をどうしろと?
840 :
fuku :2010/12/15(水) 22:44:18
>>836 みんな意地悪ねぇ。それともわかんないのかしら?
A1=IF(INT(ROW()/3)=ROW()/3,ROW()/3,0)
B1=IF(INT(ROW()/8)=ROW()/8,ROW()/8,0)
C1=IF(0<(A1+B1),ROW()*500,0)
ABCを下にいっぱいオートフィル
でC列をコピー、貼付け。並び替えで0を削除。やってる事は1/500にしてAB列で行数で倍数の判定、Cで500倍よ
ウフフ
>>837 ギャンブルはよくわかんないけど3練炭がどうとかは「行列」や「組み合わせ」、「3連単 組み合わせ」で検索してお勉強するといいわよ
四則演算の範囲だから電卓でやったほうが早いわよ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 管理費を計算するため1月〜12月までをD〜P列に割り振った表を作り、 そこに計算のための各月の電力使用量を月ごとに入力しています。 1月分ならD列に、5月分ならH列に入力・・・といった感じです。 毎月入力している値(使用量)は累計のものです。 で、その量をもとに単価をかけて算出しているのですが、今は 当月分の使用量(今月は12月なのでP列) - 先月分の使用量(O列) とわざわざ引いてから計算を行っています。 該当する列に入力した値に対して、その一つ左の列の値を参照して引く このような数式を、管理費を算出するための別のシートのセルに入力したいと思っています。 どのようにすればいいのでしょうか。よろしくお願いします。
842 :
841 :2010/12/16(木) 20:46:22
すいません、上の方法だと来月分(1月-12月)だけは データが表の左端と右端にあるからできなくなっちゃいますね・・・ 申し訳ありませんが、何かいい方法がありましたらよろしくお願いします。
いい方法はないと思うよ。自分で書いているとおりにつくるしかない。
>841,842 表の形式を変えてもいいの? 連続するものはできるだけ縦方向に並べた方がいいけど、Excel2007からは 列数(横方向)が大きくなったから、横方向でもかまわないか。 >当月分の使用量(今月は12月なのでP列) - 先月分の使用量(O列) >とわざわざ引いてから計算を行っています。 使用量じゃなくて、メータの累積電力量のことだと思うけど、今月の数値から 前月の数値を引いて当月の使用量を求めようとするなら、今年の12月の次、 来年1月以降は左に戻るんじゃなくて右へ伸びるようにしないといけないよ。 12列で順繰りにするなら、累積使用電力量を入力じゃなくて、当月の使用量 を入力するようにすべき。検針の紙に表示されているから簡単でしょ。
>>841 ”串刺し計算”を応用したレイアウトにすればいいとおもいますよ。
あとD列からP列って13ヶ月じゃね?
846 :
名無しさん@そうだ選挙にいこう :2010/12/16(木) 22:40:09
>>841 電気代ぐらいならD2-P2に表示させて、累計をD3-P3に入れた方が見やすいと思うけどなぁ
あとは折り返して、D4-P4と下に伸ばしていいと思うけどね
>>837 馬の数をnとしてn*(n-1)*(n-2)通り
>841,842
今ある形の表にそのままあてはめると、こんな形になります。
http://www1.axfc.net/uploader/Img/so/102905.gif 画面ハードコピーしたものです
Sheet2の方で引き算までして当月分の使用量を出しておき、元の表の方はVlookupで
引用してます。vlookupのためのキーは、4桁年と2桁月を組み合わせた6桁の数字です。
Sheet2は縦方向に累積消費電力量を入力していきます。年が改まってもずーっと下方向に
データを入力し続けていきます。
>>840 >>836 へのアンサーすばらしい返答ですが
9500(4000*2+1500)が出ないですねぇ。
850 :
名無しさん@そうだ選挙にいこう :2010/12/16(木) 23:27:06
質問です。2007です。 a1からn24まで数式とか値を残してその範囲以外をクリア、セルの書式もクリアするにはどうすればいいでしょうか?
>840,849 なんで9500がでないんだろう、と考えてみたら単純な事でしたね。 1500と4000の数の組み合わせは、どちらも500の倍数なので 1500×a+4000×b=(3×a+8×b)×500 (ただし、aとbは0以上の正数だけど、a,bが同時に0はない) >840さんの式だと 3の倍数と8の倍数 を拾っているだけなので (3×a+8×b)が19になる場合(a=1、b=2)を飛ばしてました。 他にも漏れはいくつも見つかります。11,14,17,19,20,22・・・ 漏れができるだけないようにするには、ひとつのシートすべてのセルの 計算式を =(COLUMN()-1)*3+(ROW()-1)*8 で埋め尽くして、別のシートで ×500の計算でもさせるしかないでしょう。まずは256列×256行 程度で試してみたらいいですね。
>850 最初にA1:N24も含む、クリアしたい範囲全体を選択してから、次に CTRLキーを押しながら除外したい範囲(A1:N24)をドラッグで選択 してみたらどうですか?
>>850 A1:N24を別シートにコピーするのが一番早い
画面のスクロールなんですけど、横スクロールを楽にする方法ってないですかね?? 今はホイールクリックで右にずらしたりしてるんですけどすごいコントロールしにくい・・。 例えば、キーボードの何かのキーを押しながらホイール回すと左右に動く。みたいなことはできないんでしょうか?? 今のマウスがかなり気に入ってるので買い換えるってのはナシで・・
856 :
841 :2010/12/17(金) 18:30:58
>>843-846 >>848 返事がおそくなってしまって申し訳ないです。
みなさん回答ありがとうございました。
今回は
>>848 さんのアドバイスを参考に
アレンジして作ることにしました。
色々な案をくださったこと本当に感謝します。
>>855 すいませんぐぐったら簡単に出てきました・・・orz
859 :
名無しさん@そうだ選挙にいこう :2010/12/18(土) 13:14:43
こんなサイトか本はないですか? ExcelからWordに資料の一部をコピペして再利用することは頻繁にあると思うんです。 それだけじゃなく、Web資料からExcelやWordに文書をコピペして再利用することもあるでしょう。 これらの「文書」を扱うときのスキルというかコツみたいなのが紹介されてるサイトや本はないですか? 具体的に申すと、WebからコピペしてExcelに貼り付けたけど、よけいな飾りがついてるのをはずしたり、フォントがバラバラなので統一したり、 表をはりつけたはいいが余白が大きすぎるなどもっとシンプルにしたい、 さらには、正規表現(少ししかしりませんがしくみが分かればかなり便利そう)という検索や置換のときにものすごく便利なシステムがあるのですが この正規表現のしくみ、あるいは検索や置換のコツなど、 そういうスキルを身につけたいのです。
>>859 >ExcelからWordに資料の一部をコピペして再利用することは頻繁に
無い
メモ帳に貼りつけてからコピーすれば修飾は取れる
正規表現の置換は別のソフトでやってた。あんまり使わないしなぁ
861 :
複乳 (=859) :2010/12/18(土) 18:43:48
>>860 おひさしぶりです、レスありがとうございます。
メモ帳の技、こんどためしてみます。
ところで正規表現のこことを詳しく学びたいのですが、どのソフトが便利でしょうか?
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
862 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 09:00:17
A1のセルへ始業時間「8:00など入力」B1のセルへ終業時間「17:30など入力」し C1のセルへその残業時間を「1.5時間」などと表示させる為の方法を教えて下さい 姉から頼まれて余裕顔で受けたんですが全くわかりません もう二度とかっこつけませんので助けて下さい
引き算
864 :
複乳 :2010/12/19(日) 11:09:00
>>862 C1セルは「=(B1-A1)*60」にして、
C1セルの「セルの書式設定」で「表示形式」タブの分類を「標準」にしてやる。
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
865 :
複乳 :2010/12/19(日) 11:11:42
あるいは C1セルは「=(B1-A1)*60」にして、 C1セルの「セルの書式設定」で「表示形式」タブの分類を「ユーザ定義」にして右側の種類のところに「#.#時間」と書いてやる。 / ̄ ̄ ̄ ̄ ̄ ̄\ / \ / ヽ l:::::::::. | |:::::::::: (●) (●) | |::::::::::::::::: \___/ | ヽ:::::::::::::::::::. \/ ノ
>>862 タイムカードの再現は意外にめんどくさい。初心者が最初にはまる課題の一つ。
まず、終業時間が決まってないと残業時間は出せない。これは16:00に固定でいいの?
それとも始業時間+8:00で計算するの?
次に、結果は「1:30」ではなく「1.5時間」と表示すればいいの?
とりあえず終業16:00で1.5時間表記でいいんなら
C1の数式を
=(B1-"16:00")*24
としてからセルの書式を
G/標準"時間"
にする
こら複乳 60倍してどうすんだよ それから計算したいのは残業時間だっつってるだろ 質問をよく読め
868 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 11:28:26
こんなざっくり質問に的確に答えてくれてありがとうございます
以前もお世話になりましたがやっぱ凄いッス
>>866 定時は9:00-17:00です(早出も残業で)
結果は後者の「1.5時間」の表示でしたいんです
教えてもらった通りにやってみます
本当に助かります
EXCEL2007で条件付書式の範囲を=A:Dとしています はじめはAからD列まで書式が適応されているのですが、 値を変更などの操作をしていると、設定した範囲が変わって適応されていないセルが発生します。 操作をしても変わらないように出来ませんか?
870 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 11:41:03
追記 ごめんなさい 早出も計算するとなるとややこしくなるようです
>>870 要は基準労働時間が8時間で、早出でも残業でも超過分は残業時間になるんでしょ。
遅刻は考慮しない完全フレックスタイム制、A1に出社時間、B1に退社時間として
C1=(B1-A1-(8/24))*24
C1の書式 0.0 "時間"
でどう?
今の残業話と競馬の3連単って意外と難しいんだよなw
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 勤務時間を管理するシートをExcelで作成して使用しています。 アルファベットと記号の2文字で勤務シフトを定義しています(A1、G3など) VLOOKUP関数で出勤時間、勤務時間などを呼び出すようにしているのですが、 「F1」というシフトだけ#N/Aのエラーが出ます。 以下詳しい内容です =IF(C1="";"";VLOOKUP(C6;$N$7:$O$25;2)) C列にシフトを入力するとN7〜O25の範囲で2列目を拾うようにしたつもりです VLOOKUPの範囲の「F1」を他のもの(F2など)に置き換えるときちんと表示されます 全角、半角もチェックして問題なし、セルの書式も他のセルと同じになっています 原因がさっぱりわからなくて困っています、指摘事項などありましたらレスお願いします
>>874 なんで;を使っているのか分かんないけど、完全一致の「0」がないのが間違い
=IF(C1="","",VLOOKUP(C6,$N$7:$O$25,2,0))
876 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 13:01:37
>>876 へ〜はじめて知った。じゃあ検索の型はいらない?それともやっぱりいるのかい?
B列の文字を参照してA列に指定した点数の合計を出す表を作りたいのですが、 どういった関数を使えばよいでしょうか。 A列 B列 得点 正/否 5 ○ 3 ○ 5 × 10 × 合計 8
879 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 13:29:29
>>877 必要だった。エラーも同じN/Aエラーになったし、正解だろうね
>>874 N7:O25をN列基準に並び替えしてもいける。けど普通は
>>875 だね
>>878 自己レスですが・・・
SUMIFでしたね、
度忘れしてました。
【1 OSの種類 .】 Windows7 【2 Excelのバージョン 】 Excel2010 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 抽出,重複 1. A , Bの父 2. C , Bの母 3. D , Aの父 4. F , Gの子 5. H , Iの妻 6. I , Jの祖父 上記のようなデータがあります。 同世帯のデータだけを抽出してまとめるにはどうすればいいでしょうか? よろしくお願いします。 上の例だと、(1,2,3),(5,6)は同世帯になります
>881 VBA使うしかないと思うけど、実際のデータはどういう風になっているんですか? A列 B列 C列 1 a b 父 aはbの父の意味 こんな感じであれば、D列以降に関係するA列のデータを元データの行のところに追加していってできると思う。 元データに住所があれば、住所をキーにして一発なんだけど・・・
C列に世帯番号を手入力でつくる
>>881 A列とB列に含まれるアルファベットを相互に検索して、同じ物があればグループ化すればいいんでしょ
C1=LEFT(B1,1)
D1=MATCH(A1:C:C,0)
E1=MATCH(C1:A:A,0)
F1=MATCH(C1:C:C,0)
とやって、D列〜F列に出てきた結果を長〜いIF分でまとめればいい
VBAでやった方が早いかな
885 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 16:03:26
>>871 ありがとうございます
条件は全くその通りです
が、その式でA1に「9:00」B1に「17:00」と入力したら
C1へ「−8時間」と表示されました
886 :
885 :2010/12/19(日) 16:06:18
↑申し訳ありませんわたしの勘違いです
>>871 助かりました
887 :
868 :2010/12/19(日) 16:55:14
なんどもすみませんがもう一つだけ(汗) どうやら条件がもう一つあって 終業時間が15:00以降の場合 昼休憩が1時間入るらしいのです 要するに 終業時間が15:00を超えた場合12:00−13:00の1時間を引きたいのですが (基本的には始業時間が5:00前になることと、 終業時間が23:00を超えることが無い前提で) どうかお助け下さい
>887 就業時間が15:00を超えた場合って、15:00は含まないということであれば =IF(B1>(15/24),(B1-A1-((8+1)/24))*24,(B1-A1-(8/24))*24) でいいと思います。 (8+1)の部分は12:00〜13:00の1時間を引いている部分です。
889 :
881 :2010/12/19(日) 17:15:19
レスありがとうございます。
実際のデータは
>>882 の言われるようになっています。
A列 B列 C列
1 a b 父 aはbの父の意味
項目はもっと多いですが、住所のように同世帯を一発で判断
できるような項目はありません。
また、例が悪かったかもしれませんが、同世帯のデータが続けて並んでいる
わけではなく、バラバラの1000〜2000件のデータの中から、1,2,3
のようにA列またはB列に名前が重複しているデータをまとめて抽出して、
それを一つの世帯として世帯番号を付けようと考えています。
同姓同名もありますので、そのあたりの修正は手作業になりますが、
そこに至るまでを自動で行いたいのです。
>>882 >D列以降に関係するA列のデータを元データの行のところに追加していって
すみませんが、いまいちどういうことかわかりません。
>>883 それを自動でやりたいので・・・
>>884 Excel関数もいまいち理解せずに質問してしまってますが、
上で言ったデータの形式ではC1=LEFT(B1,1)は不要ですね?
そして、D1=MATCH(A1:C:C,0) 以下ですが、
matchでは下のように同じ列にBが三度以上出る場合に
使えないのではないでしょうか?
A,B,父
C,B,母
D,B,祖父
よくわかってないので見当はずれのことを言ってたらすみません
890 :
684 :2010/12/19(日) 18:32:22
>889 vbaで作ってみました。当方Excel2003なので不具合が出るかも知れません。 Option Explicit Dim tate As Long, tate_strt As Long, tate_end As Long Dim yoko_key1 As Integer, yoko_key2 As Integer, yoko_setai As Integer Dim key_2 As String, setai_no As Long, c As Range Sub excel_889() tate_strt = 2 'データ開始行 tate_end = Range("A" & Rows.Count).End(xlUp).Row 'データ終了行 yoko_key1 = 1 'A列 yoko_key2 = 2 'B列 yoko_setai = 5 'E列 setai_no = 1 '世帯番号の初期値 tate = tate_strt Do Until (tate > tate_end) key_2 = Cells(tate, yoko_key2).Value If (Cells(tate, yoko_setai).Value = "") Then '世帯番号がない If (key_2 <> "") Then Set c = Range(Cells(tate_strt, yoko_key1), Cells(tate_end, yoko_key1)).Find(key_2) If Not (c Is Nothing) Then If Cells(c.Row, yoko_setai).Value > 0 Then 'すでに世帯番号がある場合 Cells(tate, yoko_setai).Value = Cells(c.Row, yoko_setai).Value Else Cells(tate, yoko_setai).Value = setai_no Cells(c.Row, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If 続きます
891 :
890 :2010/12/19(日) 18:39:57
>890の続きです (684は以前の書き込みなので関係ありません) Else '相手方が見つからない場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If Else '単身世帯の場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If End If tate = tate + 1 Loop End Sub この処理では、E列に世帯番号を1から付与しています。関係の列(想定ではC列ですが プログラムには利用していません)に関わらず、B列の内容でA列を検索しています。 B列の内容がA列から探し出せない場合は、単身世帯とみなしています。
892 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 18:59:09
>>890 A2-A4にABC、B2にBだけいれたけど全くうまくいかんぞ
縦に123456・・とだけ続く
>892 Do〜Loopの部分だけを、編集を加えずにそのまま貼り付けるので、これで試してみてください。 当方ではちゃんと1,1,2と出力しました Do Until (tate > tate_end) key_2 = Cells(tate, yoko_key2).Value If (Cells(tate, yoko_setai).Value = "") Then '世帯番号がない If (key_2 <> "") Then Set c = Range(Cells(tate_strt, yoko_key1), Cells(tate_end, yoko_key1)).Find(key_2) If Not (c Is Nothing) Then If Cells(c.Row, yoko_setai).Value > 0 Then 'すでに世帯番号がある場合 Cells(tate, yoko_setai).Value = Cells(c.Row, yoko_setai).Value Else Cells(tate, yoko_setai).Value = setai_no Cells(c.Row, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If Else '相手方が見つからない場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If Else '単身世帯の場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If End If tate = tate + 1 Loop
894 :
名無しさん@そうだ選挙にいこう :2010/12/19(日) 19:25:30
895 :
893 :2010/12/19(日) 19:43:48
>894 確認しました、ご指摘ありがとうございます。 E〜G〜I〜L〜・・・という風にどんどん先へ先へリンクしていくのを追って同一の世帯番号を振るのが今後の課題ですね。 ちょっと考えて見ます。(再帰処理になるのかな?)
896 :
874 :2010/12/19(日) 20:02:38
無事解決しました、
>>875 さんありがとうございました
>>876 さんのご指摘どおりOOoでした
職場ではExcelで作ったのですが自宅にはないのでOOoで開いてコピペしたのですが
まさか微妙に表記が異なるとは…
その辺も含めて勉強になりました、ありがとうございました
897 :
895 :2010/12/19(日) 20:30:46
>894 これでどうでしょう? Do Until (tate > tate_end) key_2 = Cells(tate, yoko_key2).Value If (Cells(tate, yoko_setai).Value = "") Then '世帯番号がない If (key_2 <> "") Then Set c = Range(Cells(tate_strt, yoko_key1), Cells(tate_end, yoko_key1)).Find(key_2) If Not (c Is Nothing) Then If Cells(c.Row, yoko_setai).Value > 0 Then 'すでに世帯番号がある場合 Cells(tate, yoko_setai).Value = Cells(c.Row, yoko_setai).Value Call oikake(c.Row, Cells(c.Row, yoko_setai).Value) Else Cells(tate, yoko_setai).Value = setai_no Cells(c.Row, yoko_setai).Value = setai_no Call oikake(c.Row, setai_no) setai_no = setai_no + 1 End If Else '相手方が見つからない場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If Else '単身世帯の場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If End If tate = tate + 1 Loop 続きます
898 :
897 :2010/12/19(日) 20:31:51
続きです 'リンク先をおいかける処理 Private Sub oikake(wk_tate As Long, wk_no As Long) Dim cc As Range, key_11 As String, key_22 As String key_22 = Cells(wk_tate, yoko_key2).Value Set cc = Range(Cells(tate_strt, yoko_key1), Cells(tate_end, yoko_key1)).Find(key_22) If cc Is Nothing Then 'リンク先がない Exit Sub Else If Cells(cc.Row, yoko_setai).Value = wk_no Then '堂々巡りを防ぐ Exit Sub Else Cells(cc.Row, yoko_setai).Value = wk_no Call oikake(cc.Row, wk_no) '自分自身を呼ぶ(再帰処理) End If End If End Sub
注意 >897 は、Do〜Loopの部分だけをupしてます。(その前後は変更なしのため)
>898 の key_11 As String は不要でした
901 :
881 :2010/12/19(日) 21:57:20
>>895 色々とありがとうございます。
試してみたのですが、うまくいきませんでした。
簡略化のためにA列、B列だけでデータを作成実行したところ
以下のような結果になりました。
・B列が同じ場合を同一世帯と認識していない
・先へ先へのリンクがうまくいっていない
というような問題があると思います
A列 B列 E列 正解?
1 a b 1 1
2 c b 2 1
3 d e 3 2
4 f a 1 1
5 g h 4 3
6 i e 5 2
7 j k 6 4
8 l m 7 5
9 n f 8 1
>901
データbがA列に存在しないためと思います。
>894さんの指摘は、
ttp://squid.axfc.net/uploader/Img/l/1185853427/Img_103141.jpg の状態で
E〜G〜I〜L〜・・・という風に B列のデータからA列のデータの向きにリンクするというもので、
これは897,898で対応していますが、リンク先(B列)がA列に存在しなければ対応していません。
Set cc = Range(Cells(tate_strt, yoko_key1), Cells(tate_end, yoko_key1)).Find(key_22)
の yoko_key1 を yoko_key2 の場合も調べたらいいのかな?(検索範囲はtateより下で)
明日の今頃まで待ってもらえれば対応を考えたいと思いますが、他にアイデアがある方、よろしく。
>>881 これでどうだ。相変わらずfornextばっかの処理だ。いけるか。
http://www1.axfc.net/uploader/File/so/55821.xls Sub unko()
bango = 0 '世帯番号
gyo = Range("A65535").End(xlUp).Row
For i = 2 To gyo
Columns("D:E").ClearContents
If Cells(i, 6) = "" Then '番号振り分け前なら以下の処理
Range("d" & i & ":" & "e" & i).Value = Range("a" & i & ":" & "b" & i).Value
bango = bango + 1
Cells(i, 6) = bango
For k = i + 1 To gyo 'DE列を検索して、一つでもあれば世帯とみなしDE列に書き込む。
If (Application.WorksheetFunction.CountIf(Range("D:E"), Cells(k, 1)) + _
Application.WorksheetFunction.CountIf(Range("D:E"), Cells(k, 2))) > 0 Then
Range("d" & k & ":" & "e" & k).Value = Range("a" & k & ":" & "b" & k).Value
Cells(k, 6) = bango
End If
Next
End If
Next
End Sub
904 :
902 :2010/12/19(日) 23:08:01
>901 データbがA列にないなら、書き込めばイイ! ということで解決しました。以下ソース全部を分けて書き込みます。 Option Explicit Dim tate As Long, tate_strt As Long, tate_end As Long Dim yoko_key1 As Integer, yoko_key2 As Integer, yoko_setai As Integer Dim key_2 As String, setai_no As Long, c As Range Dim er_cnt As Long, kensaku_area As Excel.Range '追加 Sub excel_889() tate_strt = 2 'データ開始行 tate_end = Range("A" & Rows.Count).End(xlUp).Row 'データ終了行 yoko_key1 = 1 'A列 yoko_key2 = 2 'B列 yoko_setai = 5 'E列 setai_no = 1 '世帯番号の初期値 er_cnt = 0 '追加 Set kensaku_area = Range(Cells(tate_strt, yoko_key1), Cells(Rows.Count, yoko_key1)) tate = tate_strt Do Until (tate > tate_end) key_2 = Cells(tate, yoko_key2).Value If (Cells(tate, yoko_setai).Value = "") Then '世帯番号がない If (key_2 <> "") Then Set c = kensaku_area.Find(key_2) If Not (c Is Nothing) Then If Cells(c.Row, yoko_setai).Value > 0 Then 'すでに世帯番号がある場合 Cells(tate, yoko_setai).Value = Cells(c.Row, yoko_setai).Value Call oikake(c.Row, Cells(c.Row, yoko_setai).Value) Else Cells(tate, yoko_setai).Value = setai_no Cells(c.Row, yoko_setai).Value = setai_no Call oikake(c.Row, setai_no) 続きます
905 :
902 :2010/12/19(日) 23:13:45
続きです setai_no = setai_no + 1 End If Else '相手方が見つからない場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no 'ここから3行追加 tate_end行の次から リンク切れのデータを世帯番号と併せて書き込む er_cnt = er_cnt + 1 Cells(tate_end + er_cnt, yoko_key1).Value = Cells(tate, yoko_key2).Value Cells(tate_end + er_cnt, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If Else '単身世帯の場合でも世帯番号を付与 Cells(tate, yoko_setai).Value = setai_no setai_no = setai_no + 1 End If End If tate = tate + 1 Loop End Sub 'リンク先をおいかける処理 Private Sub oikake(wk_tate As Long, wk_no As Long) Dim cc As Range, key_22 As String key_22 = Cells(wk_tate, yoko_key2).Value If key_22 = "" Then Exit Sub End If Set cc = kensaku_area.Find(key_22) 行数が制限を越えたのでさらに続きます
906 :
902 :2010/12/19(日) 23:16:20
If cc Is Nothing Then Exit Sub Else If Cells(cc.Row, yoko_setai).Value = wk_no Then Exit Sub Else Cells(cc.Row, yoko_setai).Value = wk_no Call oikake(cc.Row, wk_no) '自分自身を呼ぶ(再帰処理) End If End If End Sub 以上です。
907 :
902 :2010/12/19(日) 23:28:29
A列も探してB列も探して・・・というのがややこしかったので、 A列になければ最終行の次に書き足せばいいじゃないか!と考えました。 そうすると、Findの検索対象を最終行までとしていると具合が悪いので、 Findの検索範囲を Set kensaku_area = Range(Cells(tate_strt, yoko_key1), Cells(Rows.Count, yoko_key1)) として、エクセルのとりうる最下行までに広げています。 本当は、列番号=1 から Range(A:A) みたいに設定したかったけど、わからなかったので 上記のようになりました。
908 :
881 :2010/12/19(日) 23:43:52
どうやら自分で考えていたよりもずっと大変な作業のようですね
お手数をおかけしています。
>>903 >>904 >>901 のデータで両方試してみましたが、どちらも
9行目の n f が世帯番号6になります
これは1行目、4行目、9行目の関係から世帯番号1に
ならないといけません
>>901 にはありませんが、更に10行目 o, n といった
データがあれば、これも世帯番号1になります。
(どんどん世代を遡っていきます。最大5〜6世代ほど)
すみませんがよろしければ改善をお願いします
>>881 面白そうな問題なんで俺も参加させてくれ
効率よくシンプルにやるのは難しそうだから、とりあえず結果を出すことを第一目標に
これでどうかな?
Sub リストの関係性を調べる()
rEnd = ActiveSheet.Cells.SpecialCells(xlLastCell).Row
For r = 1 To rEnd
Cells(r, 5).NumberFormat = "@"
Cells(r, 5) = "," & r & ","
Next
For ra = 1 To rEnd - 1
For rb = ra + 1 To rEnd
If Cells(ra, 1) = Cells(rb, 1) Or Cells(ra, 1) = Cells(rb, 2) Or Cells(ra, 2) = Cells(rb, 1) Or Cells(ra, 2) = Cells(rb, 2) Then
s = Cells(ra, 5) & Cells(rb, 5)
w = ","
For n = 1 To rEnd
If InStr(s, "," & n & ",") > 0 Then w = w & n & ","
Next
For r = 1 To rEnd
If InStr(w, "," & r & ",") > 0 Then Cells(r, 5) = w
Next
End If
Next
Next
For r = 1 To rEnd
Cells(r, 5) = "(" & Mid(Cells(r, 5), 2, Len(Cells(r, 5)) - 2) & ")"
Next
End Sub
911 :
881 :2010/12/20(月) 00:29:22
>>909 問題を出題しているつもりはありませんがw
参加してくださってありがとうございます。
できれば
>>901 のデータで試してもらえればと思います。
で、試したところやはり9行目の n , f が仲間外れに
なりました。
912 :
909 :2010/12/20(月) 00:33:24
913 :
909 :2010/12/20(月) 00:41:29
追加
>>909 の結果が出たあと、F列に世帯番号を入れる
ちゃんと
>>901 と一致してるよ
ttp://windyakin.if.land.to/src/up38_2395.png Sub 世帯番号セット()
rEnd = ActiveSheet.Cells.SpecialCells(xlLastCell).Row
n = 0
For i = 1 To rEnd
If Cells(i, 6) = "" Then
n = n + 1
For j = i To rEnd
If Cells(i, 5) = Cells(j, 5) Then Cells(j, 6) = n
Next
End If
Next
End Sub
914 :
881 :2010/12/20(月) 00:44:14
ああああああああああ
どうやら私が
>>901 の元データをどこか間違えていたようです
>>903 >>904 >>909 どなたの案でもしっかりと動作して結果も合っていました
本当にすみません
そしてどうもありがとうございました。
>914 解決したようでなによりです。ただ、自分の方法だと世帯番号でソートしたときに 元データとプログラムで追加したデータの区別がつかなくなるので、 er_cnt = er_cnt + 1 Cells(tate_end + er_cnt, yoko_key1).Value = Cells(tate, yoko_key2).Value Cells(tate_end + er_cnt, yoko_setai).Value = setai_no の次に Cells(tate_end + er_cnt, ここに適当な列番号).Value = "追加したデータであることを示すもの" を加えるといいかも。 それじゃ、みなさんお休みなさい。
予言 追加の仕様が書き込まれる
素人質問で申し訳ないのですが、 excelが必要になったので購入しないとあかんのです。 2010の単品を買う予定ですが、 32ビットと64ビット両方に対応してるのでしょうか? それとも32ビット対応製品の64ビット対応製品の2つあるのでしょうか? 当方XPなので32ビット製品が欲しいのです。 知ってる方いらっしゃったらよろしくお願いします
>>918 解答ありがとうございます!
助かりました!
ヤフオクで箱付き買えば問題ないみたいですね。
Sheet1に、 A - 1 B - 2 C - 3 のようにアルファベットと数字が関連付けられているセルの並びがあったとします。 Sheet2には、 C A B とアルファベットだけが入っているとき、Sheet2のアルファベットの隣のセルに、 Sheet1で関連付けられた数字を表記するには、どうすればいいのでしょうか?
>>920 えーと、「関連付ける」の意味がよくわからないんだけど、
Sheet1の方は1つのセルの中に「A - 1」というデータが入ってんの?
それとも2つのセルに「A」「1」というデータが別々に入ってんの?
>>914 笑った。お疲れ様。おやすみ。ちょっと楽しかったです。
色の表示に関して質問させてください。 つい最近バージョンを2007版にしたのですが、 ネットカフェにあるspeedsheetで開いたところこの時を境に 表に色づけしていた部分がすべて無効化されていました。 (それまでの2003の形式では普通に表示されていました) 実際にxlsxには対応していない云々のメッセージもありました。 1.会社によってはexcel以外の疑似ソフトを使っているところもあるのでしょうか? 2.同じexcelの場合でも2003以前のバージョンだと色によっては対応していないために 表示されなくなってしまうケースを危惧しておく必要がある・・・ものなのでしょうか? これら2点について教えてくださると助かります。 よろしくお願いします。
>>924 2003と2007とOOoは互換性低い
単純に数字が並んでるだけならいいけど、
色を付けたり図形をかいたりすると、化けたり崩れたりする
>>924 1.可能性は十分にある。不安なら電話で聞いたら?
2.普通シート見出しに色なんて付けないからどうでもいいと思う
余計なことするから対応がどうとか考えないと行けなくなる
と言っても業務上の慣習などで必要な場合は
「シート見出し 色 バージョン」あたりでぐぐって勉強する事
927 :
924 :2010/12/20(月) 21:08:17
>>925-926 お二人ともありがとうございます。
アドバイス大変参考になりました。
省けるところは省くようにしながら
もう少し自分で調べてみたいと思います。
928 :
862 :2010/12/20(月) 22:00:41
みなさんご協力ありがとうございました 全て上手くいきました
929 :
名無しさん@そうだ選挙にいこう :2010/12/20(月) 22:31:42
お聞きしたいのですがマクロはctrl+?でやりますけど これをセルの中にボタンみたいなのを作ってクリックしたらマクロが出来たりするもんでしょうか?
>929 ? マクロが出来るんじゃなくて、マクロを実行させることはできますよ
>>930 二つのキーを押さずに一つのキーであるいはクリックのやり方を教えてください。
1 2 3 4 .... と並んでるセルがあったとき、「その行とその上の数の最小公倍数(LCM)」を求めたいのですが、 どのように指定すればいいのでしょうか? (つまり、1の行には「1の最小公倍数」、2の行には「1と2の最小公倍数」、 3の行には「1と2と3の最小公倍数」、4の行には「1と2と3と4の最小公倍数」、のように、 徐々に選択範囲を増やしていく動作)
935 :
920 :2010/12/21(火) 06:37:14
すみません、遅レスになってしまうんですが、
>>922 隣合わせのセルに、「A」と「1」が入っていて、その下に「B」と「2」、「C」と「3」という風に並んでいます。
A 1
B 2
C 3
という感じです。このシートを使って、
C
A
B
という別のシートを、
C 3
A 1
B 2
という風にしたい(対応した数字をつけたい)のですが・・・どういう処理をすればいいのか・・・
937 :
名無しさん@そうだ選挙にいこう :2010/12/21(火) 12:19:02
先日は残業計算の件でお世話になりました ちょっとまたお聞きしたいのですが わたしの会社の(設計部門)の人たちが使っているエクセル の画面が普通じゃないんです どう普通じゃないかというと セルが狭いんです 横のアルファベットのセルの幅がすっごい狭いんです 設計の他の人もみんなそうなんですが これってなんかりてんがあるのですか? 遠目ですが碁盤みたいになってて凄く見づらいような・・・
>>937 複雑な表作るときはその方が楽なんよ
そのかわり計算とか並べ替えとか面倒だけど
939 :
名無しさん@そうだ選挙にいこう :2010/12/21(火) 13:50:08
なるほど それならわたしには無縁ですね・・・ ちなみにあれはそういう複雑な表を作るデフォルトモードがあるんですか? それとも手動で幅値を自分の使いやすい値に設定するんですか?
>>934 A列に1,2,3,4,・・と入ってるとして、B1=1 B2=LCM(A2,B1) 下にオートフィル・・であうのか?バカだからわかんねーぜ^p^
↓のマクロなら確実
Sub Macro1()
siki = "a1"
For i = 1 To 29
Cells(i, 2).Formula = "=lcm(" & siki & ")"
siki = siki & ",a" & i + 1
Next
End Sub
>>937 クレイジーだと言われてる
ttp://news4vip.livedoor.biz/archives/51390007.html ただ履歴書や扶養控除申告書のような、罫線がいろんなところにあるモノを作るならそれなりに作りやすいよ。
普段からそれは無いと思うけど、設計の人がエクセルで図を作るのに慣れてるならそれはそれでいいと思う。使い易いのが一番。
941 :
名無しさん@そうだ選挙にいこう :2010/12/21(火) 19:24:14
質問です。2007です。 a1 b1 c1 a2 b2 c2 a3 b3 c3 a4 b4 c4 それぞれに数式があるんですが場合によってエラーになり#N/Aが画面に出てきます。 それはいいんですが、見た目的に#N/Aを画面から消したいのです。 数式の前のiferrorを一つずつつけるのは大変なのでいっぺんに数式の前に iferrorをつけることは出来ますか? =iferror(数式,"")でエラーが出たら画面を空欄にしたいです。
>941 VBAでそれぞれの数式を変換するといいです。下記のマクロをシートに登録してやってみてください。 (当然、バックアップはとってくださいね)当方はExcel2003なので、変換後は#NAME?となってしまいましたが、 式そのものは =iferror(数式,"") の形になっています。 Sub excel_941() For Each c In UsedRange If Left(c.Formula, 1) = "=" Then '=で始まるのは計算式 siki_old = c.Formula siki_new = "=IFERROR(" & Right(siki_old, Len(siki_old) - 1) & ","""")" ' MsgBox (siki_new) '置き換え後の式を表示して確認するときにコメントをはずす c.Formula = siki_new End If Next c End Sub
>>934 >>940 マクロ使わないで数式のみなら
B1に =LCM($A$1:A1)
でオートフィルでいいんじゃね?
うち分析ツール入れられない環境だから試してないけど。
ペリー?
【1 OSの種類】 WindowsXP sp3 【2 Excelのバージョン】 Excel2002 sp3 【3 VBAが使えるか】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード】 検索キーワード「エクセル マッチング コピー」 こんにちは。 シート1のA列とシート2のA列を参照し、 それらの文字列が合致した行のみ シート2のB、C列をシート1のB、C列にコピーする。 空欄の行同士は合致してもコピーせず、無視する。 という作業のやり方がまったく分からず困っています。 どのように進めるのが良いものでしょうか。。。 ちなみに扱う文字列は半角数字です。 ご指導のほど、お願いいたします。
>>948 「コピー」という動作はマクロ使わないとできないと思うが表示するだけなら
B1に
=IF(OR($A1="",シート2!$A1=""),"",IF(EXACT($A1,シート2!$A1),シート2!B1,""))
とコピーしてオートフィルして値の貼り付け。
950 :
948 :2010/12/22(水) 17:26:17
>>949 ありがとうございます。
しかし申し訳ありません!大切なことを書いていませんでした。
シート1、シート2それぞれのB列は
それぞれ順不同で並んでおり、保有している行数も異なるのです。
以下のようなご説明で伝わりますでしょうか。
●シート「2」
A列|B列
0012|バナナ
0023|みかん
0003|メロン
0091|ぶどう
●シート「1」
A列|B列
0001|
0003|メロン ←A列の文字列がシート2にも存在するので、B列がコピーされた
0004|
0091|ぶどう ←同上
0002|
どうぞよろしくお願いいたします。
>>950 =IF(ISERROR(VLOOKUP($A1,シート2!$A:$C,COLUMN(),0)),"",VLOOKUP($A1,シート2!$A:$C,COLUMN(),0))
↑はB、C列に表示させることを想定した式なのでうまくいかないようなら
B列に
=IF(ISERROR(VLOOKUP($A1,シート2!$A:$C,2,0)),"",VLOOKUP($A1,シート2!$A:$C,2,0))
C列に
=IF(ISERROR(VLOOKUP($A1,シート2!$A:$C,3,0)),"",VLOOKUP($A1,シート2!$A:$C,3,0))
とコピーしてオートフィル後値の貼り付け。
953 :
950 :2010/12/22(水) 17:46:38
>>951 >>952 ありがとうございます!
あとでやってみます&VLOOKUP勉強してみます。
夜、自宅からだとアクセス規制で書き込みできないので、
結果報告やお礼は休み明け(次スレ?)になってしまうと思います。。。
すみません。
954 :
名無しさん@そうだ選挙にいこう :2010/12/22(水) 20:02:09
文字列が50行くらいあって、それぞれの行につき最初の5文字を消去する(つまり50行すべてて最初の5文字が消える)方法はありますか? ありそうな気はしてるんですがExcelでできますよね? 特定のソフトじゃなく汎用性のあるExcelでできればそれでしたいです。Wordでもいいけど。 実はこれいがいにも文字列に関するさまざまな操作スキルを学ぶにはどうしたらいいですか?
955 :
954 :2010/12/22(水) 20:05:02
データの区切り位置?
956 :
名無しさん@そうだ選挙にいこう :2010/12/22(水) 20:06:36
955ので左端の文字列は消去できました。 こんなスキルって、Excelでもできますかね?例えば右端3文字消去とか
957 :
名無しさん@そうだ選挙にいこう :2010/12/22(水) 20:09:18
例えば数行にわたってA列とB列をコピペすると ペースト先が「タブで」分断されてるんです。 そのままくっつけるにはどうすればいいでしょうか?
958 :
957 :2010/12/22(水) 20:11:19
いまC列に 「=a1&b1」 として、それをオートフィルで下すべて適用して C列のほうをコピペする方法を思いついたけど A列B列をコピーした状態で、それをタブじゃなくくっついた状態で着地させる方法ってないものなんでしょぅか?
>>958 無理
VBAでクリップボードの内容を書き換えるとか思いつくけど、
それなら最初からデータのコピー自体をVBAでやった方が早いし
961 :
名無しさん@そうだ選挙にいこう :2010/12/22(水) 21:21:02
こんばんは。 果物を仕分けしたら下のようになりました。 りんご 12 青 みかん 11 オレンジ りんご 5 赤 ぶどう 4 紫 ってあるとします。 りんごの5個の時の色が赤と出したいのですが、 indexでりんごをA1からA4の間でりんごを探すと青が出てしまいます。 りんごと5個の時の色を出したい時はどういう数式がいいでしょうか? 積とかじゃなくて出来ますでしょうか? ちなみにエクセル2007です。
積っていうか りんごと5を連結したのをキーにしてVLOOKUP()でいいじゃん
>959 LENとRIGHTを組み合わせなくても、>943(>942のより簡潔な方法)で示している通り、 MID(元の文字列のセル参照、6)でいけると思います。
>>962 >>964 ありがとうございます。
くぐりたくてもその関数が分らないので助かります。とにかくありがとうです!
>>965 INDEXとMATCHの組み合わせの場合
A1からC4までデータが入ってるとして
りんご 12 青
みかん 11 オレンジ
りんご 5 赤
ぶどう 4 紫
D1に りんご E1 に 5 と入力
F1に =INDEX(A1:C4,MATCH(D1&E1,A1:A4&B1:B4,0),3)
と入力たあとセル内にカーソルがある状態で Ctrl+Shift+Enter で確定
>>966 おお、やってみました。
Altキーと間違えていました。上手く行きました。ありがとうです。
968 :
954 :2010/12/23(木) 11:48:38
こんにちは
>>959 ありがとうございます。複乳さんですね。調べてみます。
>>963 ありがとうございます。それは便利ですね。やってみます。
969 :
名無しさん@そうだ選挙にいこう :2010/12/23(木) 13:02:12
セル内のある条件を満たした文字列を消去したいのですが、どうすればいいでしょうか? その条件とは、○○・・・・□□□の部分をいっぺんに消したいんです。・・・は任意の文字で、文字数は決まってません。 具体的にセルを例示すると 01abc0112xyzapple 02abc032xyzorange 03abc00100xyzlemon 04abc010xyzmelon 05abc07xyzstrawberry のセルたちを 01apple 02orange 03lemon 04melon 05strawberry にしたいのです。
置換で一種類ずつ消してったほうが地道に速いかもね
>>969 abc*xyzを置換
もっと条件が複雑ならWordで置換してからコピペという手もある
972 :
名無しさん@そうだ選挙にいこう :2010/12/23(木) 14:34:16
>>971 ありがとうございました!
あっという間にできました。
こんなに簡単だったとは。
うわさに聞いてた*や?のなんて言うんだっけ。ただ置くだけでよかったのですね。
973 :
名無しさん@そうだ選挙にいこう :2010/12/23(木) 14:37:00
いま文字列の作業をしてまして、 下準備として●をあるルールで挿入しました。 そして ●のところは「(1of1)」に、 ●●のところは「(1of2)」に、 ●●●のところは「(1of3)」に、 ●●●●のところは「(1of4)」に、 ・ ・ ・ <続く> それぞれ置換したいのです。 この文字列は大量にあります。 上記のルールで一括で置換する方法はありますか?
974 :
名無しさん@そうだ選挙にいこう :2010/12/23(木) 14:38:18
さいご●●●●●●●のところは「(1of7)」なので まあ最悪7回置換すればいいけど、もっと簡単な方法はあるかと思って・・。
975 :
名無しさん@そうだ選挙にいこう :2010/12/23(木) 14:39:15
今後いろんな作業(例えば●が30個がさいごの場合とか)が考えられるので これを機会にいろんなスキルを学びたいのです。
●の数を数えて、それによって数時を返すようにすれば? かまってちゃんの匂いがプンプンするからあとは黙ってググれ。
>>973 君の作業はVBA向き。VBA学べばどんな状態になっても解決できる
>>973 自体はsubstituteで置換して、LENで何箇所変わったかを取得
あとは
>>977 みたいに分割してくっつければok
>>969 関数でなら
=CONCATENATE(LEFT(A1,2),MID(A1,SEARCH("z",A1)+1,LEN(A1)-SEARCH("z",A1)))
で。
【
980 :
名無しさん@そうだ選挙にいこう :2010/12/23(木) 19:01:12
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 マクロ メール作成 マクロを使ってOutlookExpressのメールを作成はできますか? EXCELでマクロ実行 ↓ Outlook起動(宛先、題、本文はマクロにより記入済) ↓ 手動で添付ファイルつけて送信 といった流れを実現させたいんです。 取りあえず、セルA1に宛先、B1にCC、C1にタイトル、D1〜H1に本文(改行あり)が 入っているものとして、できるのであれば回答お願いいたします。
982 :
名無しさん@そうだ選挙にいこう :2010/12/23(木) 20:42:52
2007使っています。 東京都100鈴木とか 北海道函館市500吉田貴子さんとかあるとして それぞれ100 500とか 数字だけ抜き出すこと出来ますでしょうか? 数字は左から何番目とか決まっていません。
>>982 もっと良い式あると思う
=LOOKUP(10^10,RIGHT(LEFT(A1,MATCH(9,INDEX(MID(A1,ROW($A$1:$A$50),1)*1,))),ROW($A$1:$A$50))*1)
>>983 サンクス しかしあんた凄いなぁ 何でこんな式が出来るんだよw
>>984 あ、ごめん
=LOOKUP(10^10,RIGHT(LEFT(A1,MATCH(10,INDEX(MID(A1,ROW($A$1:$A$50),1)*1,))),ROW($A$1:$A$50))*1)
に直して。見てるといいけど。途中の9→10 に変わってる。すいません。
>>980 「OutlookExpress vba 起動」
でぐぐればいくらでも出てくる。特にこれの一番上の検索結果ならセルのvalue当てはめるだけでとっても簡単。
コマンドプロンプト(MS-DOS)使う奴はめんどくさいからやめた方がいい
>>983 すごい。感動した。MIDに配列なのか?式の内容すらあんまりわかんねーぜ^p^
987 :
973, 969 :2010/12/24(金) 00:38:25
みなさんレスありがとうございます。
>>976 数える関数ってありましたっけ?調べてみます。そのあとも大変そうだけど。
>>978 substituteとLENの関数を使うことはわかりました。がんばってみます。VBAってそんなに便利なのですか!
>>979 すごい!でも最初数字が一桁しか出てこないのはどこか書き換える必要あり?? そういう手品みたいなマニアックな式ができるようにスキルアップしたいです。
/ ̄ ̄ ̄ ̄ ̄ ̄\
/ \
/ ヽ
l:::::::::. |
|:::::::::: (●) (●) |
|::::::::::::::::: \___/ |
ヽ:::::::::::::::::::. \/ ノ
うめ
989 :
950 :2010/12/24(金) 09:33:37
>>952 できました!すごいです。ありがとうございました!
まだ計算式の仕組みは理解できていないので、
今後応用できるように復習しておこうと思います。
本当に助かりました。ありがとうございました。
元はエクセルで作成したと思われる、 ダブルクォーテーションとカンマで数多く区切られた テキストがメールで届きました。 これを元のセルに区切られた状態にするには、 エクセルにどのような方法で貼り付ければ良いのでしょうか? (そのまま貼り付けただけだと、A列だけになってしまいます)
>>991 貼り付けたあと区切り位置→カンマ
ダブルクォートは置換で消す
993 :
fuku :2010/12/24(金) 12:17:28
>>990 暇なので俺も考えてた。ワークシート分析→数式の検証使うといいぜ
ff23gyという文字列とする。まず、INDEXの中身から見る
index(mid("ff23gy",row($a$1:$a$50),1)*1,)
・row(a1:a50)は1-50の数字を配列で返すために使っている(COLUMN($A$1:$AX$1)でも同じ結果になる)
index(mid("ff23gy",{1;2;3; ・・(中略)・・ 49;50},1)*1,)
・MIDで1-50文字目を一文字ずつ取り出し、配列で返す。中身は一文字ずつの文字列
index({"f";"f";"2";"3";"g";"y";"";"";・・(中略)・・"";""}*1,)
・配列の中の文字列それぞれに*1。文字列や""はエラー値となり、数値だけが残る
index({"#VALUE!";"#VALUE!";"2";"3";"#VALUE!";"#VALUE!";・・(中略)・・"#VALUE!";"#VALUE!",)
・index終わり。MATCH関数で並び替え無いまま第三引数を1にすると、第一引数未満・空白以外の配列の最後にある数字の場所を返す・・のか?エラーも無視するっぽい。で、LEFTでA1を切り出す
=LOOKUP(10^10,RIGHT(LEFT(A1,4),ROW($A$1:$A$50))*1)
=LOOKUP(10^10,RIGHT( "ff23" ,ROW($A$1:$A$50))*1)
・RIGHTは上のMIDと同じ。ROWで配列を返し、RIGHTでも配列を返す。{3;23;"f23";"ff23"}に*1で数値以外はエラーになる
=LOOKUP(10^10,{3;23;"#VALUE!";"#VALUE!"})
・で、これを10^10という大きい数字で検索。やはり配列の後ろから空白以外の数字で10^10未満を検索するようで、エラーも無視してくれる。MAXはエラーを返すのでここで使えない。
→23が返る。お疲れ様でした。
・難しいように見えるが、文字列を配列に格納し、最初と最後の数値をとっていた訳だな。匠の技だな。
ところで"ff03gy"だと03ではなく3だけが返ってくるけど大丈夫か。まぁいいか
994 :
991 :2010/12/24(金) 12:18:48
だれか 次スレ たのむ
>>990 ROW($A$A1:$A$50)は{1,2,…,50}という配列に展開される
文字列を1文字目から50文字目まで順番に切り取ってみて、
その中からLOOKUPで10^10にもっとも近い数値を検索している
数字そのものは変化しないので、結果的にもっとも桁数の多い状態の物が選ばれる
だから元の文字列が50文字を超えていたり、
含まれる数字が10桁より大きいと結果がおかしくなる
頭にゼロが付いていると文字列としては正確に切り出せない
テスト用データとして「あい12345678うえ」を用意して
10^10の部分を10^5に変えたり$A:$50を$A$5とかに変えてみると
動作の変化がわかるかと
997 :
名無しさん@そうだ選挙にいこう :2010/12/24(金) 12:35:41
Excel2000で「PHONETIC」関数を使うのですが 「結果」として“ひらがな”がでず、入力された漢字になっています。 他に設定する箇所があるのでしょうか?
998 :
名無しさん@そうだ選挙にいこう :2010/12/24(金) 12:37:52
仕事ではみんなに分かりやすい式を書かないとみんなが修正や編集できないから疲れるのよね。
Function 数字(s) n = 1 While (Mid(s, n, 1) < "0" Or "9" < Mid(s, n, 1)) And n < Len(s) n = n + 1 Wend While "0" <= Mid(s, n, 1) And Mid(s, n, 1) <= "9" t = t & Mid(s, n, 1) n = n + 1 Wend 数字 = t End Function
>>997 csvとかテキストファイルを読み込んだりデータをExcel以外の所からコピペするとそうなる
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。