Excel総合相談所 130
■ このスレッドは過去ログ倉庫に格納されています
▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
▼━関連スレ━━━━━━━━━━━━
前スレ
Excel総合相談所 129
https://find.5ch.net/search?q=excel
Excel VBA 質問スレ Part51
https://find.5ch.net/search?q=excel+vba
【質問不可】Excel総合相談所スレの雑談・議論スレ4
https://find.5ch.net/search?q=excel+%E3%80%80%E7%9B%B8%E8%AB%87%E6%89%80 エクセル2010です。
下記の数式を条件付き書式に入れて、1行ごとに白と黄色で色分けしてます。
=MOD(ROW(A1),2)=1
質問なのですが、黄色がついてる行にあるセルを、別の色で塗りつぶしたい
のですが、できません。どうしたらいいのでしょうか。
(白の行は他の色で塗りつぶせます。)
宜しくお願い致します。 216です。VBAは使えません。
ウィンドウズ7です。 >>216
自分で塗った色より、条件付き書式で塗られた色が優先して表示されてるだけだから、書式設定を解除したら、塗った色が残るはずだよ
ベースにしている白と黄色が、もし見やすくするだけとかなら、そっちを条件付き書式じゃなくてテーマとかテーブルで変えた方がいいかも >>218
早速、ありがとうございます!!
テーマ、テーブルを調べてみます。
=MOD(ROW(A1),2)=1
この式はズレも生じず、コピペするだけだったので
簡単だなと思ってたら思わぬ落とし穴がありました。
上の式はそのままで、
条件の優先で塗りつぶしを優先させるとかはないのでしょうか。
もしお分かりになるようでしたらご教授いただければ幸いです。 >>219
無い。
同一サイズの表をも一個作って、条件付き書式を追加して優先度を高くして色付させることはできるけどオススメは出来ない。
オススメなのは条件付き書式を一切使わずVBAで処理する。
表が大きくてリアルタイム更新にすると重くなるけどな >>219
条件付き書式の追加だけで実現する方法を考えてみました。
特別に塗りつぶしたいセルの列が事前に決まってなくても、当該行でひとつの列だけ
なら対応できます。ただし、塗りつぶす色の変更は面倒です。
まず、作業列を用意します。例ではZ列とします。
次に、1行おきに行着色しているセル範囲全体(例ではA2:Y30とします)を選択のうえ、
条件付き書式で 条件 =COLUMN()=$Z2 の数式と塗りつぶしたい色を指定します。
この条件を1行おきの塗りつぶしより上位にします。(後から設定した条件が優先されるはず)
特別に塗りつぶしをしたい行のZ列のセルに、塗りつぶしたい列の番号を入力すると
当該セルだけ別の色になるはず。
もし、当該行で2個のセルの着色をしたい、ということであれば、作業列をもうひとつ設けて(例:AA列)
条件付き書式で 条件 =COLUMN()=$AA2 の数式と塗りつぶしたい色を指定するだけです。
1行の中で塗りつぶすセルの個数分、作業列と条件付き書式を増やせばOK。
何色にするかは作業列で、どの列のセルをには入力する数字で決まります。 >>220 221
お忙しい中ありがとうございます。
VBAは私には手が出そうにもありませんので諦めます。。。
条件書式追加も考えてくださってありがとうございます。
こちらも難しそう(行ごとの手間?)で中の文字の強調や色で
対応したいと思います。
本当にありがとうございました。 >>222
条件付き書式の設定は、セル範囲を選択してからの操作になるので 1度 で済みますよ。
そのための =COLUMN()=$Z2 $がZの前だけにあることに注意
当該行で2個以上のセル(列)の着色をしたいのならば、続けて条件付き書式を増やすだけです。
面倒がらずに試してみては? >>198
公式サポートでアプデが来るまでの修正案だそうだ
ttps://sway.com/8S8jEXJdpUsa8r0m >>216
その特定のセルに対して条件付き書式で設定してやればよい 使いやすい計算シートをつくりたいんだがヒントがほしい
何か良い本はないか >226
・入力と出力を分ける
・正規化
この辺を覚えれば基本はわかる
エクセルよりもデータベースを覚えたほうがいい >>227
入力と出力を分けるってシートで分けるの?それとも同一シート内で? シートで分けるってことだと思うよ
全てをシート一枚に詰め込んでしまい、大変苦労したことがある
入力セルの右に計算セル、その下に出力セル、のような作りにしてしまうと
後から列・行の追加削除が起きた時の修正に手間がかかるのだ
入力シート・計算シート・出力シートの3つに分けると、そういう苦労が大分減る
計算シートは非表示にしてユーザーに見せないようにするとなおよい
こういうのは本には書いてなくて、みんな経験則でやってると思う
ITというよりデザインの領域だから >>228
知らん。無いんじゃないか
>>229
別シートにする。>>230と完全に同意見
ついでに入力シートは
・見出しは一行のみ。改行の必要があればセル内改行を使う
・セル結合は使わない
・vlookupは使わずにindex+matchを使う
この辺を遵守すれば、まぁ大きな問題は起きないんじゃないか >>230
何を入力したらどんな結果になるってのが一覧で見たいんだけどシート分けてたら見づらくない?
画面を分割して表示すればpc上は良いけれど、紙で出力して人に説明することを考えるとやはり微妙なきがする
かつ、1つの入力でいくつも計算するので、計算シートや出力シートが10枚ぐらいになるんだよね…シートが多いのもわかりづらいかなあとか。
悩んでるんだよね
後出しで申し訳ないけど 入力シートは入力に専念して、比較が必要なら出力シートに入力データも引用させればいい
出力シートで入力データの桁合わせとか整形すると見やすかろう >>232
俺の基準は
ミスの減少・保守のしやすさ>みやすさ
なので、入力と出力を分けている
見やすさや変更点の確認を優先するなら、一緒にすればいいんじゃないか
それは別に間違いじゃない
俺は絶対にしないけど >>232
まずはわざと低機能なサンプルを作り、ユーザーに意見を聞いてみたら?
実際、現場でよく使う機能は実はごく少なかったり、結果データは
これとこれだけ見れればOKとか、CSVファイルに吐き出してくれれば
後は他のアプリで処理するわっていう方向になることもある
Excelはブック・シート・セルの呪縛から逃げられないから
その機能の範囲を超えたものを作ろうとするとユーザー側・開発側ともに不幸になる 印刷しても白紙になってしまう、アドバイスが欲しい
普通に印刷は出来る、インクもある、でもエクセルだけダメ
検索して出てくるヒントは全部試したが、全滅・・・
プリンタは問題ないんで、ソフト側なのは間違いないのだが・・・
https://support.microsoft.com/ja-jp/help/882120
https://support.microsoft.com/ja-jp/help/882241
【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可・否 >>232
アウトラインのグループ化で計算式の部分を非表示にしておけばいい
+と−を押すだけで表示/非表示を切り替えられるから便利 思い当たるフシ
たった1枚印刷しただけでも大量の白紙が吐き出される
恐らく設定のどこかをミスってると思うのだが・・・ >>238
問題なく表示可能
だが白紙・・・
うーん、長年使ってるソフトだが、こんなの初めてだな。 もうひとつフシ
印刷途中で黒インクが切れたので補充した
現在もカラーだけは印刷可能
ソフト内のカラー設定がどこか変・・? >>241
それ、プリンター側じゃないのかな?
インク補充がうまくいってないのでは?
プリンターに問題ないという根拠は?
ほかのパソコンからは印刷できるとか? >>242
恐らくだがプリンターは問題ないと思われる
他のソフトでの印刷は全て可能だった
このスレも印刷できた(笑
初めてのことで困惑しているが、
エクセル印刷中にインク切れしたことによる
一時的な本体設定の変更で
それを戻してないから
印刷できないのかなあとか・・・が仮説
うーんだめだ、完全ギブアップ >>243
とりあえずプリンター再起動。
黒インクを外してもう一度つけてみる。 >>233
まあそうだよね
今そうしてるんだけどね
>>235
私自身がユーザーで、どこまで見れればオーケーか、とか自己判断で作ってるんだけど、人によってその基準が本当ばらんばらんなんだよね
>>237
やってる
なんかそれでも使いづらいんだよねなんでだろうね >>244
どっちも、何度も試したが、ムリだった・・・
うーむ・・・ >>236
ファイルアップすれば一瞬で解決しそう
ファイルが壊れてる可能せいもあるから、
新規ブック作って一個一個シートをコピーしていくんだ >>246
プリンター関連のレジストリー削除してみたらどう?
あとはプリンタードライバー入れ直してみる。
他のパソコンに繋いでみてどうなるかみてみる。 プリンタードライバー入れ直しは絶対にヤッたほうがいいな
そういやそれで昔解決したことあるわ プリンター関係、確かに
ちょっとやってみる!
>>247
それはやってみたが、ムリだった・・・ うっそーん
PDFにしてもドライバ修正しても白紙だわ・・・
マジでどうなってんだこれ・・・
もうエクセルで300ファイルくらい作成してるのにマジで
初めての解決不可能なトラブルに困惑・・・ テキトーなシート1つにしてファイルアップロードしてくれ
速攻で解決するから >>253
もちろん
>>254
>>255
テキストごと?仕事で明日使うやつなんで、ちとマズイ・・・
というかウチの経理に電話したら分からないといわれた
冗談めかして2ちゃんねるのみんなに聞いてみたって言ったら、
彼らが分からないなら僕もわからないですねえ(笑)だってさ
まあしゃーない、明日早朝出勤して社蓄らしく印刷してくるわ・・・
答えてくれた人達、サンクス いや、ファイル(book)のせいだとすれば、新規ブックで印刷してみれば印刷できるはず。
なので、ファイルアップしても意味ないでしょ。
自分だったら、他のpcをそのプリンターに繋いでみる。
ダメならプリンター、印刷できればパソコンと、原因が絞れる。 黒インクでの印刷がちゃんとできてないのでは?
黒インクのモノクロ印刷と、カラーインクでの黒印刷は別だよ 【1 OSの種類 .】 Windows 10
【2 Excelのバージョン 】 Excel 2017
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
リストにある文字列を検索したいときに、
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12155311782
の例のように、
=IF(D2="","",IFERROR(LOOKUP(1,0/COUNTIF(D2,"*"&$A$2:$A$9&"*"),$B$2:$B$9),"該当無"))
とやると確かに出来るのですが、
0/COUNTIF(D2,"*"&$A$2:$A$9&"*")
の部分は何をやっているのでしょうか? >>262
こちらです。
区切りが上手く反映されてなければ、うpろだにcsvファイルそのものをupします。
リスト,返したい文字,,対象,返す文字欄
りんご,果物,,明日はハンバーグがいい,料理
みかん,果物,,りんごは野菜ではない,果物
すいか,野菜,,今年はスイカが豊作だ,該当無
きゅうり,野菜,,ビールのあとに風呂にはいる,飲み物
ハンバーグ,料理,,牛乳とごはんは合わない,飲み物
ビール,飲み物,,大根おろしとご飯,野菜
にんじん,野菜,,スプーンとフォークがない,食器
じゃがいも,野菜,,,
ほうれん草,野菜,,,
もも,果物,,,
大根,野菜,,,
白菜,野菜,,,
牛乳,飲み物,,,
スプーン,食器,,,
ジュース,飲み物,,,
器,食器,,,
,,,,
E2の式:,"'=IF(D2="""","""",IFERROR(LOOKUP(1,0/COUNTIF(D2,""*""&$A$2:$A$17&""*""),$B$2:$B$17),""該当無""))",,, >>263 の「E2の式:」の部分が上手く貼れなかったので、
こちらに訂正します。
=IF(D2="","",IFERROR(LOOKUP(1,0/COUNTIF(D2,"*"&$A$2:$A$17&"*"),$B$2:$B$17),"該当無")) 基本的にファイル出すのはやめたほうがいいと思うけどな
LOOKUP は検索してもない場合 ない を返さないので
COUNTIF の 0/0 でゼロ割エラーを戻り値にする
IFERROR で拾って該当無を出す >>265
0/0でエラーにするのは分かるのですが、
0/1で0となった場合、LOOKUPの構文は、
・ベクトル形式?:LOOKUP(検査値, 検査範囲, [対応範囲])
・配列形式?:LOOKUP(検査値, 配列)
のどちらなのでしょうか?
・前者の場合、0は"検査範囲"にはなりそうもないですし、
・後者の場合、この例では引数の3つ目"$B$2:$B$17"があるので、はて?
となりまして。 単純に
0だと検査範囲にならないからエラーになって
"該当なし"になると思うんだが >>267
"該当なし"になるのは理解出来るのですが、
0/1で該当がある場合の、ちゃんと結果が得られる仕組みが分からないのです。 0/COUNTIF(D2,"*"&$A$2:$A$9&"*") は一つの値が返ってくるわけではないよ
分解していくと
"*"&$A$2:$A$9&"*" → {*$A$2*; *$A$3*; *$A$4*; ... ; *$A$8*; *$A$9*}
COUNTIFが終わった時点で(値は適当。D2にA4の文字列だけが含まれていた場合。エラーを#で表す)
0/{0; 0; 1; ... ; 0; 0}
={#; #; 0; ... ; #; #}
なので LOOKUP(1,0/COUNTIF(D2,"*"&$A$2:$A$17&"*"),$B$2:$B$17) は
LOOKUP(1, {#; #; 0; ... ; #; #}, $B$2:$B$17) となる
LOOKUP 第一引数の1に最も近い第一引数以下の最大値を選ぶと、 3番目の0が採用されるから B4の値が出る >>269
ということは、この構文は配列形式なのでしょうか? LOOKUP(1, {#; #; 0; ... ; #; #}, $B$2:$B$17)
の
{#; #; 0; ... ; #; #},
の部分が配列になっているだけじゃん
LOOKUP(1, A1:B2, $B$2:$B$17)
とかと対して変わらん
もっと素直に考えればいい 非常に初歩的な質問で申し訳ないのですが、エクセル起動時にプリンターに接続しない方法ってありますでしょうか?無駄に時間だけかかる上にエクセルを印刷することもそんなにないのでこの起動時に読み込む機能自体がいらないんですが。。。
2013です。 >>272
嫌になる。俺は使わない
>273
んなわけねーだろ、と思ったらそんな仕様があったのか
エクセルでそういう設定は無いっぽい
プリンタはOSが選ぶものなので、OS側で選んでおくしか無いな
もしくはbatファイルでも用意して、batファイルを選択→プリンタをpdfなどにする→エクセル起動・・・など
全く現実的ではないけど 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】否
テキストから数字のみを抽出する方法を教えてください。
A列に文章があったとして、文章内のどこかに7桁の数字が入っていたらB列にその数字を表示させたいです。 >>275
ISNUMBER関数とIF関数の組み合わせで VBA使えるならASC関数で数字だけ抜き出す方法があるけど、
VBA使えないならば人力しか思い浮かばんな >>275
拡張子が.xlsxから変えられませんが、それでもできる方法があれば教えてください。 >>275
配列数式で
B1=MID(A1,LEN(A1)+1-MAX(
(LEN(A1)+1-ROW(INDIRECT("1:"&LEN(A1)-(7-1))))
*ISNUMBER(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1)-(7-1))),7))
*NOT(ISNUMBER(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1)-(7-1)))+7,1)))
*NOT(ISNUMBER(1*MID(A1,ROW(INDIRECT("1:"&LEN(A1)-(7-1)))-1,1)))
),7) >>281 追伸
最初の1個だけじゃなくて全部抜き出すなら
MAX(〜) じゃなくて LARGE(〜,ROW(INDIRECT("1:"&LEN(A1)-(7-1)))) >>274
ありがとうございました。なんとか回避するように調べて見ます。現状プリンターのない環境でもプリンターに接続しようとしているんですよね。
どう考えても時間の無駄です。 >>283
そんなに遅いのか気になるならパソコン買い換えた方が良いと思う。
この仕様を直して欲しいのには同意するけど。 >>284
会社のPCなので変えられないんですよね。
加えて、特定のエクセルファイルを開くときだけ特に遅いので何かあるとは思うのですが。。 >>285
パソコンの買い換えは無理でもOS側のプリンタの設定変更は可能な状況? 【1 OSの種類 .】 Windows10
【2 Excelのバージョン 】 Excel2013
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
A1-1、A1-2、〜A1-○(←増えていく)
A2-1、A2-2、〜A2-○
〜
A6- ○
Aがと終わると次B項、C項と同じように続いていく番号が振られているデータの並び替えについて
上記のような番号が振られているデータを番号順に並べたいのですが、通常の昇順、降順でやると、A1-1の次がA1-2ではなくA1-10が来てしまいます。
なにか良い方法はありますか >>289
A1-1を1001
A1-10を1010に変換するなどの式を作ってそれでソートするしか方法はない 作業列使っていいなら関数でできるし、もちろんvbaでもできます。
その置換する方が難しいような。 >>289
作業列にコピペ、区切り位置→「-」マイナスで区切ってソートしたら作業列を消す 【1 OSの種類 .】 Windows7
【2 Excelのバージョン 】 Excel2010
【4 VBAでの回答の可否】 否
検索値から結果をランダムに得たいです。
画像にようにA列に項目、B列に取得したい数値があります。
そしてD3に検索値があり、それをキーに項目からランダムに数値を取り出す方法を教えてください。
VLOOKUP、INDEX、RANDBETWEENなどを組み合わせてやってみましたが、項目数が一定ではない為、うまく出来ませんでした。
https://i.gyazo.com/da3f9520c04559a4c4239a6a3d53e309.png >>294
ひとつずつ解決していけばできそうですよ。
MATCH(D2,A2:A11,0)で、同じ値のグループの先頭位置:あ を
COUNTIF(A2:A11,D2)で、同じ値のグループの行数(個数):い を
INT(RAND()*い) で、0からい - 1 までの整数の乱数:う を求めることができます。
なので F2セルには =OFFSET(B1,あ+う) で求めたい値が出ると思います。
あ、い、う をそれぞれセルに表示してみればわかりやすいと思います。 >>295
ありがとうございます!
MATCHと言う便利なものがあったんですね。無事に解決できました!
=INDEX(A2:B11,RANDBETWEEN(MATCH(D2,A2:A11,0),MATCH(D2,A2:A11,0)+COUNTIF(A2:A11,D2)-1),2) プログラムっぽく数値を入力して、結果が出るみたいなの作りたいんだけどどうしたらいいの >>297
まず数値を入力するセルを一か所に決める
別のセルに数式を書けば、そこに結果が出るようになる >>297
まず何をしたいのかをもう少し具体的に考えたほうがいいと思う
家計簿なのか、ゲームの銭湯シミュレータなのか グラフを作りたいのですが、列Aの上から下に日付、列Bの上から下に売り上げとなってるばあいに、グラフの縦軸を売り上げ、横軸を日付にしたいのですが、まったくできません。
2列を選択した状態でグラフ作成しても上から下に表が表示される状態です。蒸気のグラフの作り方を教えてください。 ▼━質問テンプレ (出来れば使ってね) ━━━
【1 OSの種類 .】 Windows8.1
【2 Excelのバージョン 】 Excel2010
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
条件付き書式設定についてです。
A列に商品コード、B列に商品名、C列に金額があります。 >>301
A1、B1にそれぞれ見出しがあって、
A1:Bxを選択して自動でグラフを作成させたとき、
上手く認識出来なくて、A列を横軸でなく、系列と認識されてしまうときがある。
その時は手動手直しが必要かと。
オイラは自動で作成されたグラフを右クリックして
「データの選択」呼び出し、
・「凡例項目(系列)」に「日付」が入っていたら削除し、
・「横(項目)軸ラベル」の編集でA2:Axを選択し直す、
・(場合によっては「行/列の切り替え」が必要なときも)
なんてことしてる。
「グラフデータの範囲」はそのまま。
もっといい範囲指定方法があるのかも知れないけど。 >>224
198だがアプデでも治らなかったんでそれ試したら治ったわ
サンクス エクセルを使って仕事してるんですが、転職することになって更に使うことになりそうです。
エクセル作業を最大限効率化したいんですが、テクニックを学べる本ありますか? その前にキーボードショートカットは一通り使えるのかい? >>306
vba覚えろ
この本はかなりオススメ
http://amzn.asia/auAlgRf
立ち読みでもいいから読んでおくといい
>>309
キーボードショートカットを駆使して超高速で作業w
あれやってるの見ると大変そうだなと思う
ショートカットなんてコピーペーストとctrl+Dぐらいでいい ピボットテーブルしらないなら 最優先で覚える 関数で集計するのがバカバカしくなる >>310
効率の話をするんならキーボードショートカットは大事でしょ
某超大手外資系なんてまずはマウスをひっくり返すとこから始めるんだよ… >>301
なにグラフを書こうとしてるん?棒グラフ?折れ線グラフ?
日付はどのようにいれているの?
日付書式で入っているんでしょうか。
あるいは単純に数値として4日なら4とか入っているんでしょうか? ■ このスレッドは過去ログ倉庫に格納されています